diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/components/cards/subtasks.js | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/client/components/cards/subtasks.js b/client/components/cards/subtasks.js index dc6c607f..0df5d21f 100644 --- a/client/components/cards/subtasks.js +++ b/client/components/cards/subtasks.js @@ -12,13 +12,31 @@ BlazeComponent.extendComponent({ const title = textarea.value.trim(); const cardId = this.currentData().cardId; const card = Cards.findOne(cardId); + const sortIndex = -1; + const crtBoard = Boards.findOne(card.boardId); + const targetBoard = crtBoard.getDefaultSubtasksBoard(); + const listId = targetBoard.getDefaultSubtasksListId(); + const swimlaneId = Swimlanes.findOne({boardId: targetBoard._id})._id; if (title) { - Subtasks.insert({ - cardId, + const _id = Cards.insert({ title, - sort: card.subtasks().count(), + parentId: cardId, + members: [], + labelIds: [], + customFields: [], + listId, + boardId: targetBoard._id, + sort: sortIndex, + swimlaneId, }); + // In case the filter is active we need to add the newly inserted card in + // the list of exceptions -- cards that are not filtered. Otherwise the + // card will disappear instantly. + // See https://github.com/wekan/wekan/issues/80 + Filter.addException(_id); + + setTimeout(() => { this.$('.add-subtask-item').last().click(); }, 100); @@ -34,7 +52,7 @@ BlazeComponent.extendComponent({ deleteSubtask() { const subtask = this.currentData().subtask; if (subtask && subtask._id) { - Subtasks.remove(subtask._id); + Cards.remove(subtask._id); this.toggleDeleteDialog.set(false); } }, |