Merge branch 'master' of https://github.com/wekan/wekan into new-search

This commit is contained in:
John R. Supplee 2021-01-22 00:51:29 +02:00
commit f56caa745a
72 changed files with 245 additions and 133 deletions

View file

@ -518,6 +518,25 @@ Boards.helpers({
swimlane.type = 'swimlane';
swimlane.copy(_id);
});
// copy custom field definitions
const cfMap = {};
CustomFields.find({ boardIds: oldId }).forEach(cf => {
const id = cf._id;
delete cf._id;
cf.boardIds = [_id];
cfMap[id] = CustomFields.insert(cf);
});
Cards.find({ boardId: _id }).forEach(card => {
Cards.update(card._id, {
$set: {
customFields: card.customFields.map(cf => {
cf._id = cfMap[cf._id];
return cf;
}),
},
});
});
},
/**
* Is supplied user authorized to view this board?

View file

@ -367,6 +367,24 @@ Cards.allow({
});
Cards.helpers({
mapCustomFieldsToBoard(boardId) {
// Map custom fields to new board
return this.customFields.map(cf => {
const oldCf = CustomFields.findOne(cf._id);
const newCf = CustomFields.findOne({
boardIds: boardId,
name: oldCf.name,
type: oldCf.type,
});
if (newCf) {
cf._id = newCf._id;
} else if (!_.contains(oldCf.boardIds, boardId)) {
oldCf.addBoard(boardId);
}
return cf;
});
},
copy(boardId, swimlaneId, listId) {
const oldId = this._id;
const oldCard = Cards.findOne(oldId);
@ -397,16 +415,7 @@ Cards.helpers({
delete this.labelIds;
this.labelIds = newCardLabels;
// Copy Custom Fields
CustomFields.find({
_id: {
$in: oldCard.customFields.map(cf => {
return cf._id;
}),
},
}).forEach(cf => {
if (!_.contains(cf.boardIds, boardId)) cf.addBoard(boardId);
});
this.customFields = this.mapCustomFieldsToBoard(newBoard._id);
}
delete this._id;
@ -1528,16 +1537,7 @@ Cards.mutations({
labelIds: newCardLabelIds,
});
// Copy custom fields
CustomFields.find({
_id: {
$in: this.customFields.map(cf => {
return cf._id;
}),
},
}).forEach(cf => {
if (!_.contains(cf.boardIds, boardId)) cf.addBoard(boardId);
});
mutatedFields.customFields = this.mapCustomFieldsToBoard(newBoard._id);
}
Cards.update(this._id, {