summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2017-09-01 22:06:17 +0300
committerLauri Ojansivu <x@xet7.org>2017-09-01 22:06:17 +0300
commit491a352792238abf58ba9d973b5009bff581f904 (patch)
tree9830aaed6d7f14361a7ac855b4811c9060bf0bbb /models
parentddc21046b9385ac5ce5bbb9a773484fcd056d10c (diff)
parent8d37a0418aaf2987c2d2bb22f2062ed7cbe9aaef (diff)
downloadwekan-491a352792238abf58ba9d973b5009bff581f904.tar.gz
wekan-491a352792238abf58ba9d973b5009bff581f904.tar.bz2
wekan-491a352792238abf58ba9d973b5009bff581f904.zip
Merge branch 'GhassenRjab-hotfix/issue-1198' into devel
Fix errors caused by checklist items activities. Thanks to GhassenRjab and nztqa ! Closes #1198
Diffstat (limited to 'models')
-rw-r--r--models/checklists.js33
1 files changed, 22 insertions, 11 deletions
diff --git a/models/checklists.js b/models/checklists.js
index ab4fe61d..2521412f 100644
--- a/models/checklists.js
+++ b/models/checklists.js
@@ -164,21 +164,32 @@ if (Meteor.isServer) {
// The future is now
Checklists.after.update((userId, doc, fieldNames, modifier) => {
if (fieldNames.includes('items')) {
- Activities.insert({
- userId,
- activityType: 'addChecklistItem',
- cardId: doc.cardId,
- boardId: Cards.findOne(doc.cardId).boardId,
- checklistId: doc._id,
- checklistItemId: modifier.$addToSet.items._id,
- });
+ if (modifier.$addToSet) {
+ Activities.insert({
+ userId,
+ activityType: 'addChecklistItem',
+ cardId: doc.cardId,
+ boardId: Cards.findOne(doc.cardId).boardId,
+ checklistId: doc._id,
+ checklistItemId: modifier.$addToSet.items._id,
+ });
+ } else if (modifier.$pull) {
+ const activity = Activities.findOne({
+ checklistItemId: modifier.$pull.items._id,
+ });
+ if (activity) {
+ Activities.remove(activity._id);
+ }
+ }
}
});
Checklists.before.remove((userId, doc) => {
- const activity = Activities.findOne({ checklistId: doc._id });
- if (activity) {
- Activities.remove(activity._id);
+ const activities = Activities.find({ checklistId: doc._id });
+ if (activities) {
+ activities.forEach((activity) => {
+ Activities.remove(activity._id);
+ });
}
});
}