summaryrefslogtreecommitdiffstats
path: root/models/announcements.js
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-06-27 15:27:14 -0400
committerLauri Ojansivu <x@xet7.org>2019-06-27 15:27:14 -0400
commita0a482aa8efb3255a523de4524c8e09453d5571f (patch)
treeef64c00f146add91a484f7f6b27a40a785f459a0 /models/announcements.js
parentfb728baf0c87bae5fa39d92089b667ff1ed69fa6 (diff)
parent3d63b6006b13942a887bbeddebb055d697451223 (diff)
downloadwekan-a0a482aa8efb3255a523de4524c8e09453d5571f.tar.gz
wekan-a0a482aa8efb3255a523de4524c8e09453d5571f.tar.bz2
wekan-a0a482aa8efb3255a523de4524c8e09453d5571f.zip
Merge branch 'justinr1234-created-modified' into meteor-1.8
Diffstat (limited to 'models/announcements.js')
-rw-r--r--models/announcements.js74
1 files changed, 54 insertions, 20 deletions
diff --git a/models/announcements.js b/models/announcements.js
index 2cb1e1b7..f3a62244 100644
--- a/models/announcements.js
+++ b/models/announcements.js
@@ -1,23 +1,49 @@
Announcements = new Mongo.Collection('announcements');
-Announcements.attachSchema(new SimpleSchema({
- enabled: {
- type: Boolean,
- defaultValue: false,
- },
- title: {
- type: String,
- optional: true,
- },
- body: {
- type: String,
- optional: true,
- },
- sort: {
- type: Number,
- decimal: true,
- },
-}));
+Announcements.attachSchema(
+ new SimpleSchema({
+ enabled: {
+ type: Boolean,
+ defaultValue: false,
+ },
+ title: {
+ type: String,
+ optional: true,
+ },
+ body: {
+ type: String,
+ optional: true,
+ },
+ sort: {
+ type: Number,
+ decimal: true,
+ },
+ createdAt: {
+ type: Date,
+ optional: true,
+ // eslint-disable-next-line consistent-return
+ autoValue() {
+ if (this.isInsert) {
+ return new Date();
+ } else {
+ this.unset();
+ }
+ },
+ },
+ 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();
+ }
+ },
+ },
+ })
+);
Announcements.allow({
update(userId) {
@@ -26,11 +52,19 @@ Announcements.allow({
},
});
+Announcements.before.update((userId, doc, fieldNames, modifier, options) => {
+ modifier.$set = modifier.$set || {};
+ modifier.$set.modifiedAt = Date.now();
+});
+
if (Meteor.isServer) {
Meteor.startup(() => {
+ Announcements._collection._ensureIndex({ modifiedAt: -1 });
const announcements = Announcements.findOne({});
- if(!announcements){
- Announcements.insert({enabled: false, sort: 0});
+ if (!announcements) {
+ Announcements.insert({ enabled: false, sort: 0 });
}
});
}
+
+export default Announcements;