summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorGhassen Rjab <rjab.ghassen@gmail.com>2017-11-14 03:03:08 +0100
committerGhassen Rjab <rjab.ghassen@gmail.com>2017-11-14 03:03:08 +0100
commit59f4daf91eedd0d5c4ff0ed3f271da8259c2ca9f (patch)
treea33a92d59412c3f8fa9b19ed21f6335ff6b3dd25 /client
parentba3c3f8289534fed7b1525821fbf0d2fd3bd5ec2 (diff)
downloadwekan-59f4daf91eedd0d5c4ff0ed3f271da8259c2ca9f.tar.gz
wekan-59f4daf91eedd0d5c4ff0ed3f271da8259c2ca9f.tar.bz2
wekan-59f4daf91eedd0d5c4ff0ed3f271da8259c2ca9f.zip
Copy cards cross boards
Diffstat (limited to 'client')
-rw-r--r--client/components/cards/cardDetails.jade17
-rw-r--r--client/components/cards/cardDetails.js31
2 files changed, 47 insertions, 1 deletions
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index ce93d6fd..677f62c7 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -137,8 +137,23 @@ template(name="copyCardPopup")
label(for='copy-card-title') {{_ 'title'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
= title
+ +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
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index 836a2353..14efca7e 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -214,12 +214,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