Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add linkedBoard Activities to sidebar #4396

Merged
merged 2 commits into from
Mar 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
69 changes: 26 additions & 43 deletions client/components/activities/activities.jade
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,17 @@ template(name="activity")
img.attachment-image-preview(src=activity.attachment.url)

//- board activity ------------------------------------------------------
if($eq mode 'board')
if($eq activity.activityType 'createBoard')
| {{{_ 'activity-created' boardLabelLink}}}.
if($eq activity.activityType 'createBoard')
| {{{_ 'activity-created' boardLabelLink}}}.

if($eq activity.activityType 'importBoard')
| {{{_ 'activity-imported-board' boardLabelLink sourceLink}}}.
if($eq activity.activityType 'importBoard')
| {{{_ 'activity-imported-board' boardLabelLink sourceLink}}}.

if($eq activity.activityType 'addBoardMember')
| {{{_ 'activity-added' memberLink boardLabelLink}}}.
if($eq activity.activityType 'addBoardMember')
| {{{_ 'activity-added' memberLink boardLabelLink}}}.

if($eq activity.activityType 'removeBoardMember')
| {{{_ 'activity-excluded' memberLink boardLabelLink}}}.
if($eq activity.activityType 'removeBoardMember')
| {{{_ 'activity-excluded' memberLink boardLabelLink}}}.

//- card activity -------------------------------------------------------
if($eq activity.activityType 'createCard')
Expand Down Expand Up @@ -166,42 +165,27 @@ template(name="activity")
= activity.comment.text

//- date activity ------------------------------------------------
if($eq mode 'card')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.

if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.

if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.

if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.

if($eq mode 'board')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.

if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.

if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.

if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.

//- customField activity ------------------------------------------------
if($eq mode 'board')
if($eq activity.activityType 'createCustomField')
| {{_ 'activity-customfield-created' customField}}.
if($eq activity.activityType 'createCustomField')
| {{_ 'activity-customfield-created' customField}}.

if($eq activity.activityType 'setCustomField')
| {{{_ 'activity-set-customfield' (sanitize lastCustomField) (sanitize lastCustomFieldValue) cardLink}}}.
if($eq activity.activityType 'setCustomField')
| {{{_ 'activity-set-customfield' (sanitize lastCustomField) (sanitize lastCustomFieldValue) cardLink}}}.

if($eq activity.activityType 'unsetCustomField')
| {{{_ 'activity-unset-customfield' (sanitize lastCustomField) cardLink}}}.
if($eq activity.activityType 'unsetCustomField')
| {{{_ 'activity-unset-customfield' (sanitize lastCustomField) cardLink}}}.

//- label activity ------------------------------------------------------
if($eq activity.activityType 'addedLabel')
Expand Down Expand Up @@ -238,12 +222,11 @@ template(name="activity")
| {{{_ 'activity-removed' memberLink cardLink}}}.

//- swimlane activity --------------------------------------------------
if($neq mode 'card')
if($eq activity.activityType 'createSwimlane')
| {{_ 'activity-added' (sanitize activity.swimlane.title) boardLabelLink}}.
if($eq activity.activityType 'createSwimlane')
| {{{_ 'activity-added' (sanitize activity.swimlane.title) boardLabelLink}}}.

if($eq activity.activityType 'archivedSwimlane')
| {{_ 'activity-archived' (sanitize activity.swimlane.title)}}.
if($eq activity.activityType 'archivedSwimlane')
| {{{_ 'activity-archived' (sanitize activity.swimlane.title)}}}.


//- I don't understand this part ----------------------------------------
Expand Down
45 changes: 38 additions & 7 deletions client/components/activities/activities.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,22 +70,51 @@ BlazeComponent.extendComponent({

boardLabelLink() {
const data = this.currentData();
const currentBoardId = Session.get('currentBoard');
if (data.mode !== 'board') {
return createBoardLink(data.activity.board(), data.activity.listName);
// data.mode: card, linkedcard, linkedboard
return createBoardLink(data.activity.board(), data.activity.listName ? data.activity.listName : null);
}
else if (currentBoardId != data.activity.boardId) {
// data.mode: board
// current activitie is linked
return createBoardLink(data.activity.board(), data.activity.listName ? data.activity.listName : null);
}
return TAPi18n.__('this-board');
},

cardLabelLink() {
const data = this.currentData();
if (data.mode !== 'card') {
return createCardLink(data.activity.card());
const currentBoardId = Session.get('currentBoard');
if (data.mode == 'card') {
// data.mode: card
return TAPi18n.__('this-card');
}
else if (data.mode !== 'board') {
// data.mode: linkedcard, linkedboard
return createCardLink(data.activity.card(), null);
}
return TAPi18n.__('this-card');
else if (currentBoardId != data.activity.boardId) {
// data.mode: board
// current activitie is linked
return createCardLink(data.activity.card(), data.activity.board().title);
}
return createCardLink(this.currentData().activity.card(), null);
},

cardLink() {
return createCardLink(this.currentData().activity.card());
const data = this.currentData();
const currentBoardId = Session.get('currentBoard');
if (data.mode !== 'board') {
// data.mode: card, linkedcard, linkedboard
return createCardLink(data.activity.card(), null);
}
else if (currentBoardId != data.activity.boardId) {
// data.mode: board
// current activitie is linked
return createCardLink(data.activity.card(), data.activity.board().title);
}
return createCardLink(this.currentData().activity.card(), null);
},

receivedDate() {
Expand Down Expand Up @@ -304,8 +333,10 @@ Template.commentReactions.helpers({
}
})

function createCardLink(card) {
function createCardLink(card, board) {
if (!card) return '';
let text = card.title;
if (board) text = `${board} > ` + text;
return (
card &&
Blaze.toHTML(
Expand All @@ -314,7 +345,7 @@ function createCardLink(card) {
href: card.originRelativeUrl(),
class: 'action-card',
},
DOMPurify.sanitize(card.title, { ALLOW_UNKNOWN_PROTOCOLS: true }),
DOMPurify.sanitize(text, { ALLOW_UNKNOWN_PROTOCOLS: true }),
),
)
);
Expand Down
10 changes: 9 additions & 1 deletion models/boards.js
Original file line number Diff line number Diff line change
Expand Up @@ -773,7 +773,15 @@ Boards.helpers({
},

activities() {
return Activities.find({ boardId: this._id }, { sort: { createdAt: -1 } });
let linkedBoardId = [this._id];
Cards.find({
"type": "cardType-linkedBoard",
"boardId": this._id}
).forEach(card => {
linkedBoardId.push(card.linkedId);
});
return Activities.find({ boardId: { $in: linkedBoardId } }, { sort: { createdAt: -1 } });
//return Activities.find({ boardId: this._id }, { sort: { createdAt: -1 } });
},

activeMembers(){
Expand Down
18 changes: 16 additions & 2 deletions server/publications/activities.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,23 @@ Meteor.publish('activities', (kind, id, limit, hideSystem) => {
check(limit, Number);
check(hideSystem, Boolean);

// Get linkedBoard
let linkedElmtId = [id];
if (kind == 'board') {
Cards.find({
"type": "cardType-linkedBoard",
"boardId": id}
).forEach(card => {
linkedElmtId.push(card.linkedId);
});
}

//const selector = hideSystem
// ? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: id }] }
// : { [`${kind}Id`]: id };
const selector = hideSystem
? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: id }] }
: { [`${kind}Id`]: id };
? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: { $in: linkedElmtId } }] }
: { [`${kind}Id`]: { $in: linkedElmtId } };
return Activities.find(selector, {
limit,
sort: { createdAt: -1 },
Expand Down
2 changes: 1 addition & 1 deletion server/publications/boards.js
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
checklists.push(cardId);
checklistItems.push(cardId);
parentCards.push(cardId);
cardCommentReactions.push(cardId)
cardCommentReactions.push(cardId);
},
);

Expand Down