diff options
author | Lauri Ojansivu <x@xet7.org> | 2019-06-27 15:27:14 -0400 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2019-06-27 15:27:14 -0400 |
commit | a0a482aa8efb3255a523de4524c8e09453d5571f (patch) | |
tree | ef64c00f146add91a484f7f6b27a40a785f459a0 /models/cards.js | |
parent | fb728baf0c87bae5fa39d92089b667ff1ed69fa6 (diff) | |
parent | 3d63b6006b13942a887bbeddebb055d697451223 (diff) | |
download | wekan-a0a482aa8efb3255a523de4524c8e09453d5571f.tar.gz wekan-a0a482aa8efb3255a523de4524c8e09453d5571f.tar.bz2 wekan-a0a482aa8efb3255a523de4524c8e09453d5571f.zip |
Merge branch 'justinr1234-created-modified' into meteor-1.8
Diffstat (limited to 'models/cards.js')
-rw-r--r-- | models/cards.js | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/models/cards.js b/models/cards.js index fdb7deb3..b873c086 100644 --- a/models/cards.js +++ b/models/cards.js @@ -81,7 +81,8 @@ Cards.attachSchema(new SimpleSchema({ * creation date */ type: Date, - autoValue() { // eslint-disable-line consistent-return + // eslint-disable-next-line consistent-return + autoValue() { if (this.isInsert) { return new Date(); } else { @@ -89,6 +90,18 @@ Cards.attachSchema(new SimpleSchema({ } }, }, + modifiedAt: { + type: Date, + denyUpdate: false, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert || this.isUpsert || this.isUpdate) { + return new Date(); + } else { + this.unset(); + } + }, + }, customFields: { /** * list of custom fields @@ -1539,7 +1552,8 @@ if (Meteor.isServer) { // Cards are often fetched within a board, so we create an index to make these // queries more efficient. Meteor.startup(() => { - Cards._collection._ensureIndex({boardId: 1, createdAt: -1}); + Cards._collection._ensureIndex({ modifiedAt: -1 }); + Cards._collection._ensureIndex({ boardId: 1, createdAt: -1 }); // https://github.com/wekan/wekan/issues/1863 // Swimlane added a new field in the cards collection of mongodb named parentId. // When loading a board, mongodb is searching for every cards, the id of the parent (in the swinglanes collection). @@ -1581,6 +1595,11 @@ if (Meteor.isServer) { cardCustomFields(userId, doc, fieldNames, modifier); }); + Cards.before.update((userId, doc, fieldNames, modifier, options) => { + modifier.$set = modifier.$set || {}; + modifier.$set.modifiedAt = Date.now(); + }); + // Remove all activities associated with a card if we remove the card // Remove also card_comments / checklists / attachments Cards.before.remove((userId, doc) => { @@ -1980,3 +1999,5 @@ if (Meteor.isServer) { }); } + +export default Cards; |