浏览代码

Add checklist items to activity log

Ghassen Rjab 8 年之前
父节点
当前提交
2b9bc5d046
共有 4 个文件被更改,包括 28 次插入10 次删除
  1. 11 0
      client/components/activities/activities.jade
  2. 1 0
      i18n/en.i18n.json
  3. 3 0
      models/activities.js
  4. 13 10
      models/checklists.js

+ 11 - 0
client/components/activities/activities.jade

@@ -31,6 +31,12 @@ template(name="boardActivities")
           .activity-checklist(href="{{ card.absoluteUrl }}")
             +viewer
               = checklist.title
+              
+        if($eq activityType 'addChecklistItem')
+          | {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}.
+          .activity-checklist(href="{{ card.absoluteUrl }}")
+            +viewer
+              = checklistItem.title
 
         if($eq activityType 'archivedCard')
           | {{{_ 'activity-archived' cardLink}}}.
@@ -117,6 +123,11 @@ template(name="cardActivities")
           .activity-checklist
             +viewer
               = checklist.title
+        if($eq activityType 'addChecklistItem')
+          | {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}.
+          .activity-checklist(href="{{ card.absoluteUrl }}")
+            +viewer
+              = checklistItem.title
 
         if($eq activityType 'addComment')
           +inlinedForm(classNames='js-edit-comment')

+ 1 - 0
i18n/en.i18n.json

@@ -37,6 +37,7 @@
     "activity-sent": "sent %s to %s",
     "activity-unjoined": "unjoined %s",
     "activity-checklist-added": "added checklist to %s",
+    "activity-checklist-item-added": "added checklist item to '%s' in %s",
     "add": "Add",
     "add-attachment": "Add Attachment",
     "add-board": "Add Board",

+ 3 - 0
models/activities.js

@@ -38,6 +38,9 @@ Activities.helpers({
   checklist() {
     return Checklists.findOne(this.checklistId);
   },
+  checklistItem() {
+    return Checklists.findOne(this.checklistId).getItem(this.checklistItemId);
+  },
 });
 
 Activities.before.insert((userId, doc) => {

+ 13 - 10
models/checklists.js

@@ -161,16 +161,19 @@ if (Meteor.isServer) {
   });
 
   //TODO: so there will be no activity for adding item into checklist, maybe will be implemented in the future.
-  // Checklists.after.update((userId, doc) => {
-  //   console.log('update:', doc)
-  // Activities.insert({
-  //   userId,
-  //   activityType: 'addChecklist',
-  //   boardId: doc.boardId,
-  //   cardId: doc.cardId,
-  //   checklistId: doc._id,
-  // });
-  // });
+  // 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,
+      });
+    }
+  });
 
   Checklists.before.remove((userId, doc) => {
     const activity = Activities.findOne({ checklistId: doc._id });