From 710643d8cba9872145292df25b24d5ce1b7bdbdf Mon Sep 17 00:00:00 2001 From: Torsten Bronger Date: Mon, 1 Feb 2021 21:50:53 +0100 Subject: [PATCH 1/3] Added field archivedAt to cards, lists, swimlanes, and boards. --- models/boards.js | 9 ++++++++- models/cards.js | 8 ++++++++ models/lists.js | 10 +++++++++- models/swimlanes.js | 9 ++++++++- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/models/boards.js b/models/boards.js index c08148d9f..586195c86 100644 --- a/models/boards.js +++ b/models/boards.js @@ -43,6 +43,13 @@ Boards.attachSchema( } }, }, + archivedAt: { + /** + * Latest archiving time of the board + */ + type: Date, + optional: true, + }, createdAt: { /** * Creation time of the board @@ -1042,7 +1049,7 @@ Boards.helpers({ Boards.mutations({ archive() { - return { $set: { archived: true } }; + return { $set: { archived: true, archivedAt: new Date() } }; }, restore() { diff --git a/models/cards.js b/models/cards.js index 74b7b8bfb..75be5455c 100644 --- a/models/cards.js +++ b/models/cards.js @@ -26,6 +26,13 @@ Cards.attachSchema( } }, }, + archivedAt: { + /** + * latest archiving date + */ + type: Date, + optional: true, + }, parentId: { /** * ID of the parent card @@ -1446,6 +1453,7 @@ Cards.mutations({ return { $set: { archived: true, + archivedAt: new Date(), }, }; }, diff --git a/models/lists.js b/models/lists.js index 920221683..13a4ce8aa 100644 --- a/models/lists.js +++ b/models/lists.js @@ -32,6 +32,13 @@ Lists.attachSchema( } }, }, + archivedAt: { + /** + * latest archiving date + */ + type: Date, + optional: true, + }, boardId: { /** * the board associated to this list @@ -292,7 +299,7 @@ Lists.mutations({ return card.archive(); }); } - return { $set: { archived: true } }; + return { $set: { archived: true, archivedAt: new Date() } }; }, restore() { @@ -384,6 +391,7 @@ if (Meteor.isServer) { Meteor.startup(() => { Lists._collection._ensureIndex({ modifiedAt: -1 }); Lists._collection._ensureIndex({ boardId: 1 }); + Lists._collection._ensureIndex({ archivedAt: -1 }); }); Lists.after.insert((userId, doc) => { diff --git a/models/swimlanes.js b/models/swimlanes.js index 0994e9044..8cb0c8e9c 100644 --- a/models/swimlanes.js +++ b/models/swimlanes.js @@ -23,6 +23,13 @@ Swimlanes.attachSchema( } }, }, + archivedAt: { + /** + * latest archiving date of the swimlane + */ + type: Date, + optional: true, + }, boardId: { /** * the ID of the board the swimlane is attached to @@ -259,7 +266,7 @@ Swimlanes.mutations({ return list.archive(); }); } - return { $set: { archived: true } }; + return { $set: { archived: true, archivedAt: new Date() } }; }, restore() { From 786c27bbec96e5e139428a5c71453dc4a9b8e135 Mon Sep 17 00:00:00 2001 From: Torsten Bronger Date: Mon, 1 Feb 2021 22:11:10 +0100 Subject: [PATCH 2/3] Added sorting by archivedAt in the archive. I use modifiedAt as a fall back for legacy cards which don't have archivedAt set yet. --- client/components/boards/boardArchive.js | 2 +- client/components/sidebar/sidebarArchives.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js index e85c2e8e6..49f024f8d 100644 --- a/client/components/boards/boardArchive.js +++ b/client/components/boards/boardArchive.js @@ -11,7 +11,7 @@ BlazeComponent.extendComponent({ return Boards.find( { archived: true }, { - sort: { sort: 1 /* boards default sorting */ }, + sort: { archivedAt: -1, modifiedAt: -1 }, }, ); }, diff --git a/client/components/sidebar/sidebarArchives.js b/client/components/sidebar/sidebarArchives.js index 7b77898c6..d2a7cf27e 100644 --- a/client/components/sidebar/sidebarArchives.js +++ b/client/components/sidebar/sidebarArchives.js @@ -34,6 +34,8 @@ BlazeComponent.extendComponent({ return Cards.find({ archived: true, boardId: Session.get('currentBoard'), + }, { + sort: { archivedAt: -1, modifiedAt: -1 }, }); }, @@ -41,6 +43,8 @@ BlazeComponent.extendComponent({ return Lists.find({ archived: true, boardId: Session.get('currentBoard'), + }, { + sort: { archivedAt: -1, modifiedAt: -1 }, }); }, @@ -48,6 +52,8 @@ BlazeComponent.extendComponent({ return Swimlanes.find({ archived: true, boardId: Session.get('currentBoard'), + }, { + sort: { archivedAt: -1, modifiedAt: -1 }, }); }, From 678c8f6bf6e31a6317381b45ee7266ca709cc82b Mon Sep 17 00:00:00 2001 From: Torsten Bronger Date: Mon, 1 Feb 2021 22:36:13 +0100 Subject: [PATCH 3/3] Printed archivedAt under every item in the archive. --- client/components/sidebar/sidebarArchives.jade | 15 +++++++++++++++ i18n/en.i18n.json | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/client/components/sidebar/sidebarArchives.jade b/client/components/sidebar/sidebarArchives.jade index c4c4cd5c2..66d1cde6c 100644 --- a/client/components/sidebar/sidebarArchives.jade +++ b/client/components/sidebar/sidebarArchives.jade @@ -14,6 +14,11 @@ template(name="archivesSidebar") if currentUser.isBoardMember unless isWorker p.quiet + if this.archivedAt + | {{_ 'archived-at' }} + | + | {{ moment this.archivedAt 'LLL' }} + br a.js-restore-card {{_ 'restore'}} if currentUser.isBoardAdmin | - @@ -37,6 +42,11 @@ template(name="archivesSidebar") if currentUser.isBoardMember unless isWorker p.quiet + if this.archivedAt + | {{_ 'archived-at' }} + | + | {{ moment this.archivedAt 'LLL' }} + br a.js-restore-list {{_ 'restore'}} if currentUser.isBoardAdmin | - @@ -58,6 +68,11 @@ template(name="archivesSidebar") if currentUser.isBoardMember unless isWorker p.quiet + if this.archivedAt + | {{_ 'archived-at' }} + | + | {{ moment this.archivedAt 'LLL' }} + br a.js-restore-swimlane {{_ 'restore'}} if currentUser.isBoardAdmin | - diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index f05b70bfb..d57380ec6 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -951,5 +951,6 @@ "excel-font": "Arial", "number": "Number", "label-colors": "Label Colors", - "label-names": "Label Names" + "label-names": "Label Names", + "archived-at": "archived at" }