mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 21:17:18 -04:00
Merge branch 'fixes' of https://github.com/marc1006/wekan into marc1006-fixes
This commit is contained in:
commit
0a12319002
4 changed files with 42 additions and 8 deletions
|
@ -956,7 +956,12 @@ BlazeComponent.extendComponent({
|
|||
},
|
||||
'click .js-delete': Popup.afterConfirm('cardDelete', function() {
|
||||
Popup.close();
|
||||
Cards.remove(this._id);
|
||||
// verify that there are no linked cards
|
||||
if (Cards.find({ linkedId: this._id }).count() === 0) {
|
||||
Cards.remove(this._id);
|
||||
} else {
|
||||
// TODO popup...
|
||||
}
|
||||
Utils.goBoardId(this.boardId);
|
||||
}),
|
||||
'change .js-field-parent-board'(event) {
|
||||
|
|
|
@ -658,10 +658,7 @@ BlazeComponent.extendComponent({
|
|||
_id = element.copy(this.boardId, this.swimlaneId, this.listId);
|
||||
// 1.B Linked card
|
||||
} else {
|
||||
delete element._id;
|
||||
element.type = 'cardType-linkedCard';
|
||||
element.linkedId = element.linkedId || element._id;
|
||||
_id = Cards.insert(element);
|
||||
_id = element.link(this.boardId, this.swimlaneId, this.listId);
|
||||
}
|
||||
Filter.addException(_id);
|
||||
// List insertion
|
||||
|
@ -675,7 +672,7 @@ BlazeComponent.extendComponent({
|
|||
element.sort = Boards.findOne(this.boardId)
|
||||
.swimlanes()
|
||||
.count();
|
||||
element.type = 'swimlalne';
|
||||
element.type = 'swimlane';
|
||||
_id = element.copy(this.boardId);
|
||||
} else if (this.isBoardTemplateSearch) {
|
||||
board = Boards.findOne(element.linkedId);
|
||||
|
|
|
@ -223,8 +223,25 @@ BlazeComponent.extendComponent({
|
|||
Template.listMorePopup.events({
|
||||
'click .js-delete': Popup.afterConfirm('listDelete', function() {
|
||||
Popup.close();
|
||||
this.allCards().map(card => Cards.remove(card._id));
|
||||
Lists.remove(this._id);
|
||||
// TODO how can we avoid the fetch call?
|
||||
const allCards = this.allCards().fetch();
|
||||
const allCardIds = _.pluck(allCards, '_id');
|
||||
// it's okay if the linked cards are on the same list
|
||||
if (
|
||||
Cards.find({
|
||||
$and: [
|
||||
{ listId: { $ne: this._id } },
|
||||
{ linkedId: { $in: allCardIds } },
|
||||
],
|
||||
}).count() === 0
|
||||
) {
|
||||
allCardIds.map(_id => Cards.remove(_id));
|
||||
Lists.remove(this._id);
|
||||
} else {
|
||||
// TODO popup with a hint that the list cannot be deleted as there are
|
||||
// linked cards. We can adapt the query above so we can list the linked
|
||||
// cards.
|
||||
}
|
||||
Utils.goBoardId(this.boardId);
|
||||
}),
|
||||
});
|
||||
|
|
|
@ -438,6 +438,21 @@ Cards.helpers({
|
|||
return _id;
|
||||
},
|
||||
|
||||
link(boardId, swimlaneId, listId) {
|
||||
// TODO is there a better method to create a deepcopy?
|
||||
linkCard = JSON.parse(JSON.stringify(this));
|
||||
// TODO is this how it is meant to be?
|
||||
linkCard.linkedId = linkCard.linkedId || linkCard._id;
|
||||
linkCard.boardId = boardId;
|
||||
linkCard.swimlaneId = swimlaneId;
|
||||
linkCard.listId = listId;
|
||||
linkCard.type = 'cardType-linkedCard';
|
||||
delete linkCard._id;
|
||||
// TODO shall we copy the labels for a linked card?!
|
||||
delete linkCard.labelIds;
|
||||
return Cards.insert(linkCard);
|
||||
},
|
||||
|
||||
list() {
|
||||
return Lists.findOne(this.listId);
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue