Bug fix: Rules for moving from list/swimlane

Issue: 3703
This commit is contained in:
John R. Supplee 2021-04-11 00:09:32 +02:00
parent 769bb7a55d
commit 17ab5978ad
2 changed files with 22 additions and 9 deletions

View file

@ -2335,11 +2335,12 @@ if (Meteor.isServer) {
const card = Cards.findOne(doc._id);
const list = card.list();
if (list) {
// change list modifiedAt, when user modified the key values in timingaction array, if it's endAt, put the modifiedAt of list back to one year ago for sorting purpose
const modifiedAt = new Date(
new Date(value).getTime() -
(action === 'endAt' ? 365 * 24 * 3600 * 1e3 : 0),
); // set it as 1 year before
// change list modifiedAt, when user modified the key values in
// timingaction array, if it's endAt, put the modifiedAt of list
// back to one year ago for sorting purpose
const modifiedAt = moment()
.subtract(1, 'year')
.toISOString();
const boardId = list.boardId;
Lists.direct.update(
{

View file

@ -29,14 +29,26 @@ RulesHelper = {
},
buildMatchingFieldsMap(activity, matchingFields) {
const matchingMap = { activityType: activity.activityType };
for (let i = 0; i < matchingFields.length; i++) {
matchingFields.forEach(field => {
// Creating a matching map with the actual field of the activity
// and with the wildcard (for example: trigger when a card is added
// in any [*] board
matchingMap[matchingFields[i]] = {
$in: [activity[matchingFields[i]], '*'],
let value = activity[field];
if (field === 'oldListName') {
const oldList = Lists.findOne({ _id: activity.oldListId });
if (oldList) {
value = oldList.title;
}
} else if (field === 'oldSwimlaneName') {
const oldSwimlane = Swimlanes.findOne({ _id: activity.oldSwimlaneId });
if (oldSwimlane) {
value = oldSwimlane.title;
}
}
matchingMap[field] = {
$in: [value, '*'],
};
}
});
return matchingMap;
},
performAction(activity, action) {