Просмотр исходного кода

Merge branch 'feature/copy-move-cards-x-boards' of https://github.com/GhassenRjab/wekan into GhassenRjab-feature/copy-move-cards-x-boards

Lauri Ojansivu 7 лет назад
Родитель
Сommit
b592e8ad14
3 измененных файлов с 59 добавлено и 3 удалено
  1. 23 2
      client/components/cards/cardDetails.jade
  2. 31 0
      client/components/cards/cardDetails.js
  3. 5 1
      models/cards.js

+ 23 - 2
client/components/cards/cardDetails.jade

@@ -132,14 +132,35 @@ template(name="cardDetailsActionsPopup")
       li: a.js-more {{_ 'cardMorePopup-title'}}
 
 template(name="moveCardPopup")
-  +boardLists
+  if isSandstorm
+    +boardLists
+  else
+    +boardsAndLists
 
 template(name="copyCardPopup")
   label(for='copy-card-title') {{_ 'title'}}:
   textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
     = title
+  if isSandstorm
+    +boardLists
+  else
+    +boardsAndLists
+
+template(name="boardsAndLists")
+  select.js-select-boards
+    each boards
+      if $eq _id currentBoard._id
+        option(value="{{_id}}" selected) {{_ 'current'}}
+      else
+        option(value="{{_id}}") {{title}}
   label {{_ 'lists'}}:
-  +boardLists
+  ul.pop-over-list
+    each aBoardLists
+      li
+        if($eq ../_id _id)
+          a.disabled {{title}} ({{_ 'current'}})
+        else
+          a.js-select-list= title
 
 template(name="cardMembersPopup")
   ul.pop-over-list.js-card-member-list

+ 31 - 0
client/components/cards/cardDetails.js

@@ -215,12 +215,43 @@ Template.moveCardPopup.events({
   },
 });
 
+BlazeComponent.extendComponent({
+  onCreated() {
+    this.selectedBoard = new ReactiveVar(Session.get('currentBoard'));
+  },
+
+  boards() {
+    const boards = Boards.find({
+      archived: false,
+      'members.userId': Meteor.userId(),
+    }, {
+      sort: ['title'],
+    });
+    return boards;
+  },
+
+  aBoardLists() {
+    const board = Boards.findOne(this.selectedBoard.get());
+    return board.lists();
+  },
+
+  events() {
+    return [{
+      'change .js-select-boards' (evt) {
+        this.selectedBoard.set($(evt.currentTarget).val());
+      },
+    }];
+  },
+}).register('boardsAndLists');
+
 Template.copyCardPopup.events({
   'click .js-select-list' (evt) {
     const card = Cards.findOne(Session.get('currentCard'));
     const oldId = card._id;
     card._id = null;
     card.listId = this._id;
+    const list = Lists.findOne(card.listId);
+    card.boardId = list.boardId;
     const textarea = $(evt.currentTarget).parents('.content').find('textarea');
     const title = textarea.val().trim();
     // insert new card to the bottom of new list

+ 5 - 1
models/cards.js

@@ -207,7 +207,11 @@ Cards.mutations({
   },
 
   move(listId, sortIndex) {
-    const mutatedFields = {listId};
+    const list = Lists.findOne(listId);
+    const mutatedFields = {
+      listId,
+      boardId: list.boardId,
+    };
     if (sortIndex) {
       mutatedFields.sort = sortIndex;
     }