From 15ce816ec6e7c9b17f591615fcf58adaa5781215 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Sun, 3 Jul 2022 23:03:22 +0200 Subject: [PATCH] Convert checklist-item to card uses now the same code as copy card / move card --- client/components/cards/cardDetails.jade | 6 +++++ client/components/cards/cardDetails.js | 32 +++++++++++++----------- client/components/cards/checklists.jade | 29 --------------------- 3 files changed, 23 insertions(+), 44 deletions(-) diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 92dad861e..7db82669f 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -725,6 +725,12 @@ template(name="copyManyCardsPopup") | {{_ 'copyManyCardsPopup-format'}} +copyAndMoveCard +template(name="convertChecklistItemToCardPopup") + label(for='convert-checklist-item-to-card-title') {{_ 'title'}}: + textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus) + = item.title + +copyAndMoveCard + template(name="copyAndMoveCard") unless currentUser.isWorker label {{_ 'boards'}}: diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index b3114ee6e..8acb20550 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -1047,16 +1047,17 @@ class DialogWithBoardSwimlaneList extends BlazeComponent { } }).register('copyCardPopup'); -Template.convertChecklistItemToCardPopup.events({ - 'click .js-done'() { - const card = Utils.getCurrentCard(); - const lSelect = $('.js-select-lists')[0]; - const listId = lSelect.options[lSelect.selectedIndex].value; - const slSelect = $('.js-select-swimlanes')[0]; - const swimlaneId = slSelect.options[slSelect.selectedIndex].value; - const bSelect = $('.js-select-boards')[0]; - const boardId = bSelect.options[bSelect.selectedIndex].value; - const textarea = $('#copy-card-title'); +/** Convert Checklist-Item to card dialog */ +(class extends DialogWithBoardSwimlaneList { + getCardDialogOptions() { + const ret = Meteor.user().getMoveAndCopyDialogOptions(); + return ret; + } + setDone(boardId, swimlaneId, listId, options) { + Meteor.user().setMoveAndCopyDialogOption(this.currentBoardId, options); + const card = this.data(); + + const textarea = this.$('#copy-card-title'); const title = textarea.val().trim(); if (title) { @@ -1067,13 +1068,14 @@ Template.convertChecklistItemToCardPopup.events({ swimlaneId: swimlaneId, sort: 0, }); + const card = Cards.findOne(_id); + const minOrder = card.getMinSort(); + card.move(card.boardId, card.swimlaneId, card.listId, minOrder - 1); + Filter.addException(_id); - - Popup.back(); - } - }, -}); + } +}).register('convertChecklistItemToCardPopup'); /** Copy many cards dialog */ (class extends DialogWithBoardSwimlaneList { diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 6e4fe92eb..41c461012 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -115,35 +115,6 @@ template(name='checklistItemDetail') +viewer = item.title -template(name="convertChecklistItemToCardPopup") - label(for='convert-checklist-item-to-card-title') {{_ 'title'}}: - textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus) - = item.title - +boardsSwimlanesAndLists - -template(name="boardsSwimlanesAndLists") - unless currentUser.isWorker - label {{_ 'boards'}}: - select.js-select-boards(autofocus) - each boards - if $eq _id currentBoard._id - option(value="{{_id}}" selected) {{_ 'current'}} - else - option(value="{{_id}}") {{title}} - - label {{_ 'swimlanes'}}: - select.js-select-swimlanes - each swimlanes - option(value="{{_id}}") {{title}} - - label {{_ 'lists'}}: - select.js-select-lists - each aBoardLists - option(value="{{_id}}") {{title}} - - .edit-controls.clearfix - button.primary.confirm.js-done {{_ 'done'}} - template(name="checklistActionsPopup") ul.pop-over-list li