diff options
author | Lauri Ojansivu <x@xet7.org> | 2019-02-28 00:54:29 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2019-02-28 00:54:29 +0200 |
commit | eeb8d4b3de39658f1ed9927cc85a968a9b9fe8c4 (patch) | |
tree | f46123f64a068ee1d6ed6c2f05ac990abdc7a1a5 /models/cards.js | |
parent | 82a728df7111413e4a1b106f4cd18265da5f397b (diff) | |
parent | ad75c541cff2c27c441a0fb67d52c57180020594 (diff) | |
download | wekan-eeb8d4b3de39658f1ed9927cc85a968a9b9fe8c4.tar.gz wekan-eeb8d4b3de39658f1ed9927cc85a968a9b9fe8c4.tar.bz2 wekan-eeb8d4b3de39658f1ed9927cc85a968a9b9fe8c4.zip |
Merge branch 'edge' into meteor-1.8
Diffstat (limited to 'models/cards.js')
-rw-r--r-- | models/cards.js | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/models/cards.js b/models/cards.js index c733c7f8..cf64cd9b 100644 --- a/models/cards.js +++ b/models/cards.js @@ -272,13 +272,41 @@ 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; + const oldCard = Cards.findOne(oldId); + delete this._id; + delete this.labelIds; + this.labelIds= newCardLabels; + this.boardId = boardId; + this.swimlaneId = swimlaneId; + 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 ch.copy(_id); }); @@ -286,11 +314,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); }); |