Merge branch 'edge' of github.com:wekan/wekan into edge

This commit is contained in:
Lauri Ojansivu 2019-03-08 20:51:57 +02:00
commit c5e72d1a2b
4 changed files with 81 additions and 0 deletions

View file

@ -114,6 +114,12 @@ template(name="boardActivities")
if($eq activityType 'removedLabel')
| {{{_ 'activity-removed-label' lastLabel cardLink}}}.
if($eq activityType 'setCustomField')
| {{{_ 'activity-set-customfield' lastCustomField lastCustomFieldValue cardLink}}}.
if($eq activityType 'unsetCustomField')
| {{{_ 'activity-unset-customfield' lastCustomField cardLink}}}.
if($eq activityType 'unjoinMember')
if($eq user._id member._id)
| {{{_ 'activity-unjoined' cardLink}}}.

View file

@ -82,6 +82,24 @@ BlazeComponent.extendComponent({
}
},
lastCustomField(){
const lastCustomField = CustomFields.findOne(this.currentData().customFieldId);
return lastCustomField.name;
},
lastCustomFieldValue(){
const lastCustomField = CustomFields.findOne(this.currentData().customFieldId);
const value = this.currentData().value;
if (lastCustomField.settings.dropdownItems && lastCustomField.settings.dropdownItems.length > 0) {
const dropDownValue = _.find(lastCustomField.settings.dropdownItems, (item) => {
return item._id === value;
});
if (dropDownValue)
return dropDownValue.name;
}
return value;
},
listLabel() {
return this.currentData().list().title;
},

View file

@ -567,6 +567,8 @@
"activity-added-label-card": "added label '%s'",
"activity-removed-label-card": "removed label '%s'",
"activity-delete-attach-card": "deleted an attachment",
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
"activity-unset-customfield": "unset custom field '%s' in %s",
"r-rule": "Rule",
"r-add-trigger": "Add trigger",
"r-add-action": "Add action",

View file

@ -1400,6 +1400,56 @@ function cardLabels(userId, doc, fieldNames, modifier) {
}
}
function cardCustomFields(userId, doc, fieldNames, modifier) {
if (!_.contains(fieldNames, 'customFields'))
return;
// Say hello to the new customField value
if (modifier.$set) {
_.each(modifier.$set, (value, key) => {
if (key.startsWith('customFields')) {
const dotNotation = key.split('.');
// only individual changes are registered
if (dotNotation.length > 1) {
const customFieldId = doc.customFields[dot_notation[1]]._id;
const act = {
userId,
customFieldId,
value,
activityType: 'setCustomField',
boardId: doc.boardId,
cardId: doc._id,
};
Activities.insert(act);
}
}
});
}
// Say goodbye to the former customField value
if (modifier.$unset) {
_.each(modifier.$unset, (value, key) => {
if (key.startsWith('customFields')) {
const dotNotation = key.split('.');
// only individual changes are registered
if (dotNotation.length > 1) {
const customFieldId = doc.customFields[dot_notation[1]]._id;
const act = {
userId,
customFieldId,
activityType: 'unsetCustomField',
boardId: doc.boardId,
cardId: doc._id,
};
Activities.insert(act);
}
}
});
}
}
function cardCreation(userId, doc) {
Activities.insert({
userId,
@ -1471,6 +1521,11 @@ if (Meteor.isServer) {
cardLabels(userId, doc, fieldNames, modifier);
});
// Add a new activity if we edit a custom field
Cards.before.update((userId, doc, fieldNames, modifier) => {
cardCustomFields(userId, doc, fieldNames, modifier);
});
// Remove all activities associated with a card if we remove the card
// Remove also card_comments / checklists / attachments
Cards.after.remove((userId, doc) => {