diff --git a/models/cards.js b/models/cards.js index d00077bed..c1d8b76e6 100644 --- a/models/cards.js +++ b/models/cards.js @@ -2321,11 +2321,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( { diff --git a/server/rulesHelper.js b/server/rulesHelper.js index 63e330ab2..e2f577826 100644 --- a/server/rulesHelper.js +++ b/server/rulesHelper.js @@ -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) {