Переглянути джерело

Remove notification while copying board

1. It takes too long while server stops after 2 minutes (#5371).
2. It is useless, because when you copy a board, most of the time your users don't want to be notified of every copied cards.
e-gaulue 1 рік тому
батько
коміт
58f6acbc48
1 змінених файлів з 14 додано та 0 видалено
  1. 14 0
      models/boards.js

+ 14 - 0
models/boards.js

@@ -640,11 +640,19 @@ Boards.attachSchema(
 Boards.helpers({
   copy() {
     const oldId = this._id;
+    const oldWatchers = this.watchers ? this.watchers.slice() : [];
     delete this._id;
     delete this.slug;
     this.title = this.copyTitle();
     const _id = Boards.insert(this);
 
+    // Temporary remove watchers to disable notifications
+      Boards.update(_id, {
+        $set: {
+          watchers: []
+        },
+    });
+
     // Copy all swimlanes in board
     ReactiveCache.getSwimlanes({
       boardId: oldId,
@@ -695,6 +703,12 @@ Boards.helpers({
       rule.triggerId = triggersMap[rule.triggerId];
       Rules.insert(rule);
     });
+
+    // Re-set Watchers to reenable notification
+    Boards.update(_id, {
+      $set: { watchers: oldWatchers }
+    });
+
     return _id;
   },
   /**