Sfoglia il codice sorgente

Convert checklist-item to card uses now the same code as copy card / move card

Martin Filser 2 anni fa
parent
commit
15ce816ec6

+ 6 - 0
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'}}:

+ 17 - 15
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,
       });
-      Filter.addException(_id);
-
-      Popup.back();
+      const card = Cards.findOne(_id);
+      const minOrder = card.getMinSort();
+      card.move(card.boardId, card.swimlaneId, card.listId, minOrder - 1);
 
+      Filter.addException(_id);
     }
-  },
-});
+  }
+}).register('convertChecklistItemToCardPopup');
 
 /** Copy many cards dialog */
 (class extends DialogWithBoardSwimlaneList {

+ 0 - 29
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