wekan/client/components/notifications/notification.js

47 lines
1.5 KiB
JavaScript
Raw Normal View History

import { ReactiveCache } from '/imports/reactiveCache';
2020-03-27 11:35:03 -06:00
Template.notification.events({
'click .read-status .materialCheckBox'() {
const update = {};
const newReadValue = this.read ? null : Date.now();
update[`profile.notifications.${this.index}.read`] = newReadValue;
Users.update(Meteor.userId(), { $set: update }, (error, result) => {
if (error) {
console.error('Error updating notification:', error);
}
});
2020-03-27 11:35:03 -06:00
},
'click .remove a'() {
ReactiveCache.getCurrentUser().removeNotification(this.activityData._id);
2020-03-27 11:35:03 -06:00
},
});
Template.notification.helpers({
mode: 'board',
isOfActivityType(activityId, type) {
const activity = ReactiveCache.getActivity(activityId);
2020-03-27 11:35:03 -06:00
return activity && activity.activityType === type;
},
activityType(activityId) {
const activity = ReactiveCache.getActivity(activityId);
2020-03-27 11:35:03 -06:00
return activity ? activity.activityType : '';
},
activityUser(activityId) {
const activity = ReactiveCache.getActivity(activityId);
2020-03-27 11:35:03 -06:00
return activity && activity.userId;
},
activityDate() {
const activity = this.activityData;
if (!activity || !activity.createdAt) return '';
const user = ReactiveCache.getCurrentUser();
if (!user) return '';
const dateFormat = user.getDateFormat ? user.getDateFormat() : 'L';
const timeFormat = user.getTimeFormat ? user.getTimeFormat() : 'LT';
return moment(activity.createdAt).format(`${dateFormat} ${timeFormat}`);
},
2020-03-27 11:35:03 -06:00
});