Merge pull request #4396 from Ben0it-T/add-linkedBoard-activities-to-sidebar

Add linkedBoard Activities to sidebar
This commit is contained in:
Lauri Ojansivu 2022-03-06 17:48:19 +02:00 committed by GitHub
commit a2beaa6e83
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 90 additions and 54 deletions

View file

@ -59,18 +59,17 @@ template(name="activity")
img.attachment-image-preview(src=activity.attachment.url) img.attachment-image-preview(src=activity.attachment.url)
//- board activity ------------------------------------------------------ //- board activity ------------------------------------------------------
if($eq mode 'board') if($eq activity.activityType 'createBoard')
if($eq activity.activityType 'createBoard') | {{{_ 'activity-created' boardLabelLink}}}.
| {{{_ 'activity-created' boardLabelLink}}}.
if($eq activity.activityType 'importBoard') if($eq activity.activityType 'importBoard')
| {{{_ 'activity-imported-board' boardLabelLink sourceLink}}}. | {{{_ 'activity-imported-board' boardLabelLink sourceLink}}}.
if($eq activity.activityType 'addBoardMember') if($eq activity.activityType 'addBoardMember')
| {{{_ 'activity-added' memberLink boardLabelLink}}}. | {{{_ 'activity-added' memberLink boardLabelLink}}}.
if($eq activity.activityType 'removeBoardMember') if($eq activity.activityType 'removeBoardMember')
| {{{_ 'activity-excluded' memberLink boardLabelLink}}}. | {{{_ 'activity-excluded' memberLink boardLabelLink}}}.
//- card activity ------------------------------------------------------- //- card activity -------------------------------------------------------
if($eq activity.activityType 'createCard') if($eq activity.activityType 'createCard')
@ -166,42 +165,27 @@ template(name="activity")
= activity.comment.text = activity.comment.text
//- date activity ------------------------------------------------ //- date activity ------------------------------------------------
if($eq mode 'card') if($eq activity.activityType 'a-receivedAt')
if($eq activity.activityType 'a-receivedAt') | {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt') if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}. | {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt') if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}. | {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt') if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}. | {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq mode 'board')
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-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
//- customField activity ------------------------------------------------ //- customField activity ------------------------------------------------
if($eq mode 'board') if($eq activity.activityType 'createCustomField')
if($eq activity.activityType 'createCustomField') | {{_ 'activity-customfield-created' customField}}.
| {{_ 'activity-customfield-created' customField}}.
if($eq activity.activityType 'setCustomField') if($eq activity.activityType 'setCustomField')
| {{{_ 'activity-set-customfield' (sanitize lastCustomField) (sanitize lastCustomFieldValue) cardLink}}}. | {{{_ 'activity-set-customfield' (sanitize lastCustomField) (sanitize lastCustomFieldValue) cardLink}}}.
if($eq activity.activityType 'unsetCustomField') if($eq activity.activityType 'unsetCustomField')
| {{{_ 'activity-unset-customfield' (sanitize lastCustomField) cardLink}}}. | {{{_ 'activity-unset-customfield' (sanitize lastCustomField) cardLink}}}.
//- label activity ------------------------------------------------------ //- label activity ------------------------------------------------------
if($eq activity.activityType 'addedLabel') if($eq activity.activityType 'addedLabel')
@ -238,12 +222,11 @@ template(name="activity")
| {{{_ 'activity-removed' memberLink cardLink}}}. | {{{_ 'activity-removed' memberLink cardLink}}}.
//- swimlane activity -------------------------------------------------- //- swimlane activity --------------------------------------------------
if($neq mode 'card') if($eq activity.activityType 'createSwimlane')
if($eq activity.activityType 'createSwimlane') | {{{_ 'activity-added' (sanitize activity.swimlane.title) boardLabelLink}}}.
| {{_ 'activity-added' (sanitize activity.swimlane.title) boardLabelLink}}.
if($eq activity.activityType 'archivedSwimlane') if($eq activity.activityType 'archivedSwimlane')
| {{_ 'activity-archived' (sanitize activity.swimlane.title)}}. | {{{_ 'activity-archived' (sanitize activity.swimlane.title)}}}.
//- I don't understand this part ---------------------------------------- //- I don't understand this part ----------------------------------------

View file

@ -70,22 +70,51 @@ BlazeComponent.extendComponent({
boardLabelLink() { boardLabelLink() {
const data = this.currentData(); const data = this.currentData();
const currentBoardId = Session.get('currentBoard');
if (data.mode !== 'board') { 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'); return TAPi18n.__('this-board');
}, },
cardLabelLink() { cardLabelLink() {
const data = this.currentData(); const data = this.currentData();
if (data.mode !== 'card') { const currentBoardId = Session.get('currentBoard');
return createCardLink(data.activity.card()); if (data.mode == 'card') {
// data.mode: card
return TAPi18n.__('this-card');
} }
return TAPi18n.__('this-card'); else if (data.mode !== 'board') {
// data.mode: 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);
}, },
cardLink() { 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() { receivedDate() {
@ -304,8 +333,10 @@ Template.commentReactions.helpers({
} }
}) })
function createCardLink(card) { function createCardLink(card, board) {
if (!card) return ''; if (!card) return '';
let text = card.title;
if (board) text = `${board} > ` + text;
return ( return (
card && card &&
Blaze.toHTML( Blaze.toHTML(
@ -314,7 +345,7 @@ function createCardLink(card) {
href: card.originRelativeUrl(), href: card.originRelativeUrl(),
class: 'action-card', class: 'action-card',
}, },
DOMPurify.sanitize(card.title, { ALLOW_UNKNOWN_PROTOCOLS: true }), DOMPurify.sanitize(text, { ALLOW_UNKNOWN_PROTOCOLS: true }),
), ),
) )
); );

View file

@ -773,7 +773,15 @@ Boards.helpers({
}, },
activities() { 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(){ activeMembers(){

View file

@ -14,9 +14,23 @@ Meteor.publish('activities', (kind, id, limit, hideSystem) => {
check(limit, Number); check(limit, Number);
check(hideSystem, Boolean); 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 const selector = hideSystem
? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: id }] } ? { $and: [{ activityType: 'addComment' }, { [`${kind}Id`]: { $in: linkedElmtId } }] }
: { [`${kind}Id`]: id }; : { [`${kind}Id`]: { $in: linkedElmtId } };
return Activities.find(selector, { return Activities.find(selector, {
limit, limit,
sort: { createdAt: -1 }, sort: { createdAt: -1 },

View file

@ -270,7 +270,7 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
checklists.push(cardId); checklists.push(cardId);
checklistItems.push(cardId); checklistItems.push(cardId);
parentCards.push(cardId); parentCards.push(cardId);
cardCommentReactions.push(cardId) cardCommentReactions.push(cardId);
}, },
); );