Complete checklist activities

This commit is contained in:
Angelo Gallarello 2018-08-16 21:49:56 +02:00
parent f7446ba934
commit cc285afd59
6 changed files with 124 additions and 0 deletions

View file

@ -34,12 +34,30 @@ template(name="boardActivities")
.activity-checklist(href="{{ card.absoluteUrl }}") .activity-checklist(href="{{ card.absoluteUrl }}")
+viewer +viewer
= checklist.title = checklist.title
if($eq activityType 'removeChecklist')
| {{{_ 'activity-checklist-removed' cardLink}}}
if($eq activityType 'checkedItem')
| {{{_ 'activity-checked-item' checkItem checklist.title cardLink}}}
if($eq activityType 'uncheckedItem')
| {{{_ 'activity-unchecked-item' checkItem checklist.title cardLink}}}
if($eq activityType 'checklistCompleted')
| {{{_ 'activity-checklist-completed' checklist.title cardLink}}}
if($eq activityType 'checklistUncompleted')
| {{{_ 'activity-checklist-uncompleted' checklist.title cardLink}}}
if($eq activityType 'addChecklistItem') if($eq activityType 'addChecklistItem')
| {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}. | {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}.
.activity-checklist(href="{{ card.absoluteUrl }}") .activity-checklist(href="{{ card.absoluteUrl }}")
+viewer +viewer
= checklistItem.title = checklistItem.title
if($eq activityType 'removedChecklistItem')
| {{{_ 'activity-checklist-item-removed' checklist.title cardLink}}}
if($eq activityType 'archivedCard') if($eq activityType 'archivedCard')
| {{{_ 'activity-archived' cardLink}}}. | {{{_ 'activity-archived' cardLink}}}.

View file

@ -41,6 +41,12 @@ BlazeComponent.extendComponent({
this.loadNextPageLocked = true; this.loadNextPageLocked = true;
} }
}, },
checkItem(){
const checkItemId = this.currentData().checklistItemId;
const checkItem = ChecklistItems.findOne({_id:checkItemId});
return checkItem.title;
},
boardLabel() { boardLabel() {
return TAPi18n.__('this-board'); return TAPi18n.__('this-board');

View file

@ -43,8 +43,14 @@
"activity-sent": "sent %s to %s", "activity-sent": "sent %s to %s",
"activity-unjoined": "unjoined %s", "activity-unjoined": "unjoined %s",
"activity-subtask-added": "added subtask to %s", "activity-subtask-added": "added subtask to %s",
"activity-checked-item": "checked %s in checklist %s of %s",
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
"activity-checklist-added": "added checklist to %s", "activity-checklist-added": "added checklist to %s",
"activity-checklist-removed": "removed a checklist from %s",
"activity-checklist-completed": "completed the checklist %s of %s",
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
"activity-checklist-item-added": "added checklist item to '%s' in %s", "activity-checklist-item-added": "added checklist item to '%s' in %s",
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
"add": "Add", "add": "Add",
"add-attachment": "Add Attachment", "add-attachment": "Add Attachment",
"add-board": "Add Board", "add-board": "Add Board",

View file

@ -74,17 +74,93 @@ function itemCreation(userId, doc) {
} }
function itemRemover(userId, doc) { 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,
});
Activities.remove({ Activities.remove({
checklistItemId: doc._id, 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,
}
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,
}
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,
}
Activities.insert(act);
}
}
// Activities // Activities
if (Meteor.isServer) { if (Meteor.isServer) {
Meteor.startup(() => { Meteor.startup(() => {
ChecklistItems._collection._ensureIndex({ checklistId: 1 }); 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) => { ChecklistItems.after.insert((userId, doc) => {
itemCreation(userId, doc); itemCreation(userId, doc);
}); });

View file

@ -101,6 +101,15 @@ if (Meteor.isServer) {
Activities.remove(activity._id); Activities.remove(activity._id);
}); });
} }
Activities.insert({
userId,
activityType: 'removeChecklist',
cardId: doc.cardId,
boardId: Cards.findOne(doc.cardId).boardId,
checklistId: doc._id,
});
}); });
} }

View file

@ -20,9 +20,18 @@ TriggersDef = {
addChecklist:{ addChecklist:{
matchingFields: ["boardId","checklistId"] matchingFields: ["boardId","checklistId"]
}, },
removeChecklist:{
matchingFields: ["boardId","checklistId"]
},
addChecklistItem:{ addChecklistItem:{
matchingFields: ["boardId","checklistItemId"] matchingFields: ["boardId","checklistItemId"]
}, },
checkedItem:{
matchingFields: ["boardId","checklistId"]
},
uncheckedItem:{
matchingFields: ["boardId","checklistItemId"]
},
addAttachment:{ addAttachment:{
matchingFields: ["boardId","checklistId"] matchingFields: ["boardId","checklistId"]
}, },