From da21a2a410c9b905de89d66236748e0c8f5357ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Manelli?= Date: Wed, 27 Feb 2019 20:45:58 +0100 Subject: Standarize copy functions. Match labels by name --- models/cards.js | 23 ++++++++++++++++++++++- models/lists.js | 13 ++++++------- models/swimlanes.js | 8 +++++--- 3 files changed, 33 insertions(+), 11 deletions(-) (limited to 'models') diff --git a/models/cards.js b/models/cards.js index c733c7f8..9dda6dae 100644 --- a/models/cards.js +++ b/models/cards.js @@ -272,13 +272,32 @@ Cards.allow({ }); Cards.helpers({ - copy() { + copy(boardId, swimlaneId, listId) { + const oldBoard = Boards.findOne(this.boardId); + const oldBoardLabels = oldBoard.labels; + // Get old label names + const oldCardLabels = _.pluck(_.filter(oldBoardLabels, (label) => { + return _.contains(this.labelIds, label._id); + }), 'name'); + + const newBoard = Boards.findOne(boardId); + const newBoardLabels = newBoard.labels; + const newCardLabels = _.pluck(_.filter(newBoardLabels, (label) => { + return _.contains(oldCardLabels, label.name); + }), '_id'); + const oldId = this._id; delete this._id; + delete this.labelIds; + this.labelIds= newCardLabels; + this.boardId = boardId; + this.swimlaneId = swimlaneId; + this.listId = listId; const _id = Cards.insert(this); // copy checklists Checklists.find({cardId: oldId}).forEach((ch) => { + // REMOVE verify copy with arguments ch.copy(_id); }); @@ -286,11 +305,13 @@ Cards.helpers({ Cards.find({parentId: oldId}).forEach((subtask) => { subtask.parentId = _id; subtask._id = null; + // REMOVE verify copy with arguments instead of insert? Cards.insert(subtask); }); // copy card comments CardComments.find({cardId: oldId}).forEach((cmt) => { + // REMOVE verify copy with arguments cmt.copy(_id); }); diff --git a/models/lists.js b/models/lists.js index d76c961c..a8e597ee 100644 --- a/models/lists.js +++ b/models/lists.js @@ -137,12 +137,15 @@ Lists.allow({ }); Lists.helpers({ - copy(swimlaneId) { + copy(boardId, swimlaneId) { const oldId = this._id; const oldSwimlaneId = this.swimlaneId || null; + this.boardId = boardId; + this.swimlaneId = swimlaneId; + let _id = null; existingListWithSameName = Lists.findOne({ - boardId: this.boardId, + boardId, title: this.title, archived: false, }); @@ -160,11 +163,7 @@ Lists.helpers({ listId: oldId, archived: false, }).forEach((card) => { - card.type = 'cardType-card'; - card.listId = _id; - card.boardId = this.boardId; - card.swimlaneId = swimlaneId; - card.copy(); + card.copy(boardId, swimlaneId, _id); }); }, diff --git a/models/swimlanes.js b/models/swimlanes.js index a3427fc6..1b18ba5d 100644 --- a/models/swimlanes.js +++ b/models/swimlanes.js @@ -101,8 +101,10 @@ Swimlanes.allow({ }); Swimlanes.helpers({ - copy(oldBoardId) { + copy(boardId) { const oldId = this._id; + const oldBoardId = this.boardId; + this.boardId = boardId; delete this._id; const _id = Swimlanes.insert(this); @@ -118,8 +120,8 @@ Swimlanes.helpers({ Lists.find(query).forEach((list) => { list.type = 'list'; list.swimlaneId = oldId; - list.boardId = this.boardId; - list.copy(_id); + list.boardId = boardId; + list.copy(boardId, _id); }); }, -- cgit v1.2.3-1-g7c22 From abb71083215462d91b084c4de13af0b130638e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Manelli?= Date: Wed, 27 Feb 2019 21:07:13 +0100 Subject: Copy template attachments --- models/cards.js | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'models') diff --git a/models/cards.js b/models/cards.js index 9dda6dae..cf64cd9b 100644 --- a/models/cards.js +++ b/models/cards.js @@ -287,6 +287,8 @@ Cards.helpers({ }), '_id'); const oldId = this._id; + const oldCard = Cards.findOne(oldId); + delete this._id; delete this.labelIds; this.labelIds= newCardLabels; @@ -295,6 +297,13 @@ Cards.helpers({ this.listId = listId; const _id = Cards.insert(this); + // Copy attachments + oldCard.attachments().forEach((att) => { + att.cardId = _id; + delete att._id; + return Attachments.insert(att); + }); + // copy checklists Checklists.find({cardId: oldId}).forEach((ch) => { // REMOVE verify copy with arguments -- cgit v1.2.3-1-g7c22 From 888e1ad5d3e32be53283aa32198057f669f3d706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Manelli?= Date: Wed, 27 Feb 2019 21:32:28 +0100 Subject: Fix popup title Add element title modification --- models/boards.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'models') diff --git a/models/boards.js b/models/boards.js index 0db2e48e..9a71ede8 100644 --- a/models/boards.js +++ b/models/boards.js @@ -326,8 +326,7 @@ Boards.helpers({ archived: false, }).forEach((swimlane) => { swimlane.type = 'swimlane'; - swimlane.boardId = _id; - swimlane.copy(oldId); + swimlane.copy(_id); }); }, /** -- cgit v1.2.3-1-g7c22