summaryrefslogtreecommitdiffstats
path: root/models/checklistItems.js
diff options
context:
space:
mode:
Diffstat (limited to 'models/checklistItems.js')
-rw-r--r--models/checklistItems.js87
1 files changed, 87 insertions, 0 deletions
diff --git a/models/checklistItems.js b/models/checklistItems.js
index e075eda2..e24f0cbd 100644
--- a/models/checklistItems.js
+++ b/models/checklistItems.js
@@ -44,6 +44,12 @@ ChecklistItems.mutations({
setTitle(title) {
return { $set: { title } };
},
+ check(){
+ return { $set: { isFinished: true } };
+ },
+ uncheck(){
+ return { $set: { isFinished: false } };
+ },
toggleItem() {
return { $set: { isFinished: !this.isFinished } };
},
@@ -70,21 +76,102 @@ function itemCreation(userId, doc) {
boardId,
checklistId: doc.checklistId,
checklistItemId: doc._id,
+ checklistItemName:doc.title
});
}
function itemRemover(userId, doc) {
+ const card = Cards.findOne(doc.cardId);
+ const boardId = card.boardId;
+ Activities.insert({
+ userId,
+ activityType: 'removedChecklistItem',
+ cardId: doc.cardId,
+ boardId,
+ checklistId: doc.checklistId,
+ checklistItemId: doc._id,
+ checklistItemName:doc.title
+ });
Activities.remove({
checklistItemId: doc._id,
});
}
+function publishCheckActivity(userId,doc){
+ const card = Cards.findOne(doc.cardId);
+ const boardId = card.boardId;
+ let activityType;
+ if(doc.isFinished){
+ activityType = "checkedItem";
+ }else{
+ activityType = "uncheckedItem";
+ }
+ let act = {
+ userId,
+ activityType: activityType,
+ cardId: doc.cardId,
+ boardId,
+ checklistId: doc.checklistId,
+ checklistItemId: doc._id,
+ checklistItemName:doc.title
+ }
+ console.log(act);
+ Activities.insert(act);
+}
+
+function publishChekListCompleted(userId,doc,fieldNames,modifier){
+ const card = Cards.findOne(doc.cardId);
+ const boardId = card.boardId;
+ const checklistId = doc.checklistId;
+ const checkList = Checklists.findOne({_id:checklistId});
+ if(checkList.isFinished()){
+ let act = {
+ userId,
+ activityType: "checklistCompleted",
+ cardId: doc.cardId,
+ boardId,
+ checklistId: doc.checklistId,
+ checklistName:doc.title
+ }
+ Activities.insert(act);
+ }
+}
+
+function publishChekListUncompleted(userId,doc,fieldNames,modifier){
+ const card = Cards.findOne(doc.cardId);
+ const boardId = card.boardId;
+ const checklistId = doc.checklistId;
+ const checkList = Checklists.findOne({_id:checklistId});
+ if(checkList.isFinished()){
+ let act = {
+ userId,
+ activityType: "checklistUncompleted",
+ cardId: doc.cardId,
+ boardId,
+ checklistId: doc.checklistId,
+ checklistName:doc.title
+ }
+ Activities.insert(act);
+ }
+}
+
// Activities
if (Meteor.isServer) {
Meteor.startup(() => {
ChecklistItems._collection._ensureIndex({ checklistId: 1 });
});
+ ChecklistItems.after.update((userId, doc, fieldNames, modifier) => {
+ publishCheckActivity(userId,doc);
+ publishChekListCompleted(userId,doc,fieldNames,modifier)
+ });
+
+ ChecklistItems.before.update((userId, doc, fieldNames, modifier) => {
+ publishChekListUncompleted(userId,doc,fieldNames,modifier)
+ });
+
+
+
ChecklistItems.after.insert((userId, doc) => {
itemCreation(userId, doc);
});