From d59583915cca24d53a11251c54ca7caf6b5edb4e Mon Sep 17 00:00:00 2001 From: Nicu Tofan Date: Mon, 18 Jun 2018 23:25:56 +0300 Subject: Initial implementation for subtasks --- client/components/cards/cardDetails.js | 56 +++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'client/components/cards/cardDetails.js') diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 72ed678b..22dacb70 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -364,6 +364,20 @@ BlazeComponent.extendComponent({ }, }).register('boardsAndLists'); +function cloneCheckList(_id, checklist) { + 'use strict'; + const checklistId = checklist._id; + checklist.cardId = _id; + checklist._id = null; + const newChecklistId = Checklists.insert(checklist); + ChecklistItems.find({checklistId}).forEach(function(item) { + item._id = null; + item.checklistId = newChecklistId; + item.cardId = _id; + ChecklistItems.insert(item); + }); +} + Template.copyCardPopup.events({ 'click .js-done'() { const card = Cards.findOne(Session.get('currentCard')); @@ -392,19 +406,18 @@ Template.copyCardPopup.events({ // copy checklists let cursor = Checklists.find({cardId: oldId}); + cursor.forEach(function() { + cloneCheckList(_id, arguments[0]); + }); + + // copy subtasks + cursor = Subtasks.find({cardId: oldId}); cursor.forEach(function() { 'use strict'; - const checklist = arguments[0]; - const checklistId = checklist._id; - checklist.cardId = _id; - checklist._id = null; - const newChecklistId = Checklists.insert(checklist); - ChecklistItems.find({checklistId}).forEach(function(item) { - item._id = null; - item.checklistId = newChecklistId; - item.cardId = _id; - ChecklistItems.insert(item); - }); + const subtask = arguments[0]; + subtask.cardId = _id; + subtask._id = null; + /* const newSubtaskId = */ Subtasks.insert(subtask); }); // copy card comments @@ -453,19 +466,18 @@ Template.copyChecklistToManyCardsPopup.events({ // copy checklists let cursor = Checklists.find({cardId: oldId}); + cursor.forEach(function() { + cloneCheckList(_id, arguments[0]); + }); + + // copy subtasks + cursor = Subtasks.find({cardId: oldId}); cursor.forEach(function() { 'use strict'; - const checklist = arguments[0]; - const checklistId = checklist._id; - checklist.cardId = _id; - checklist._id = null; - const newChecklistId = Checklists.insert(checklist); - ChecklistItems.find({checklistId}).forEach(function(item) { - item._id = null; - item.checklistId = newChecklistId; - item.cardId = _id; - ChecklistItems.insert(item); - }); + const subtask = arguments[0]; + subtask.cardId = _id; + subtask._id = null; + /* const newSubtaskId = */ Subtasks.insert(subtask); }); // copy card comments -- cgit v1.2.3-1-g7c22