|
@@ -297,6 +297,55 @@ Template.copyCardPopup.events({
|
|
|
},
|
|
|
});
|
|
|
|
|
|
+
|
|
|
+Template.copyManyCardPopup.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
|
|
|
+ card.sort = Lists.findOne(this._id).cards().count();
|
|
|
+
|
|
|
+ if (title) {
|
|
|
+ card.title = title;
|
|
|
+ card.coverId = '';
|
|
|
+ const _id = Cards.insert(card);
|
|
|
+ // 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);
|
|
|
+
|
|
|
+ // copy checklists
|
|
|
+ let cursor = Checklists.find({cardId: oldId});
|
|
|
+ cursor.forEach(function() {
|
|
|
+ 'use strict';
|
|
|
+ const checklist = arguments[0];
|
|
|
+ checklist.cardId = _id;
|
|
|
+ checklist._id = null;
|
|
|
+ Checklists.insert(checklist);
|
|
|
+ });
|
|
|
+
|
|
|
+ // copy card comments
|
|
|
+ cursor = CardComments.find({cardId: oldId});
|
|
|
+ cursor.forEach(function () {
|
|
|
+ 'use strict';
|
|
|
+ const comment = arguments[0];
|
|
|
+ comment.cardId = _id;
|
|
|
+ comment._id = null;
|
|
|
+ CardComments.insert(comment);
|
|
|
+ });
|
|
|
+ Popup.close();
|
|
|
+ }
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
+
|
|
|
Template.cardMorePopup.events({
|
|
|
'click .js-copy-card-link-to-clipboard' () {
|
|
|
// Clipboard code from:
|