New change settings option and possibility to hide system messagaes

This commit is contained in:
Mario Orlicky 2016-11-19 19:02:33 +01:00
parent 94cdcff79f
commit 8290dcb249
6 changed files with 61 additions and 13 deletions

View file

@ -12,10 +12,12 @@ BlazeComponent.extendComponent({
const capitalizedMode = Utils.capitalize(mode);
const id = Session.get(`current${capitalizedMode}`);
const limit = this.page.get() * activitiesPerPage;
const user = Meteor.user();
const hideSystem = user ? user.hasHiddenSystemMessages() : false;
if (id === null)
return;
this.subscribe('activities', mode, id, limit, () => {
this.subscribe('activities', mode, id, limit, hideSystem, () => {
this.loadNextPageLocked = false;
// If the sibear peak hasn't increased, that mean that there are no more

View file

@ -12,10 +12,11 @@ template(name="memberMenuPopup")
ul.pop-over-list
with currentUser
li: a.js-edit-profile {{_ 'edit-profile'}}
li: a.js-change-avatar {{_ 'edit-avatar'}}
li: a.js-change-password {{_ 'changePasswordPopup-title'}}
li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
li: a.js-edit-notification {{_ 'editNotificationPopup-title'}}
li: a.js-change-settings {{_ 'change-settings'}}
li: a.js-change-avatar {{_ 'edit-avatar'}}
li: a.js-change-password {{_ 'changePasswordPopup-title'}}
li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
li: a.js-edit-notification {{_ 'editNotificationPopup-title'}}
hr
ul.pop-over-list
li: a.js-logout {{_ 'log-out'}}
@ -61,3 +62,11 @@ template(name="changeLanguagePopup")
= name
if isCurrentLanguage
i.fa.fa-check
template(name="changeSettingsPopup")
ul.pop-over-list
li
a.js-toggle-system-messages
| {{_ 'hide-system-messages'}}
if hiddenSystemMessages
i.fa.fa-check

View file

@ -5,6 +5,7 @@ Template.headerUserBar.events({
Template.memberMenuPopup.events({
'click .js-edit-profile': Popup.open('editProfile'),
'click .js-change-settings': Popup.open('changeSettings'),
'click .js-change-avatar': Popup.open('changeAvatar'),
'click .js-change-password': Popup.open('changePassword'),
'click .js-change-language': Popup.open('changeLanguage'),
@ -82,3 +83,15 @@ Template.changeLanguagePopup.events({
evt.preventDefault();
},
});
Template.changeSettingsPopup.helpers({
hiddenSystemMessages() {
return Meteor.user().hasHiddenSystemMessages();
}
});
Template.changeSettingsPopup.events({
'click .js-toggle-system-messages'(evt) {
Meteor.call('toggleSystemMessages');
},
});

View file

@ -104,10 +104,12 @@
"change-avatar": "Change Avatar",
"change-password": "Change Password",
"change-permissions": "Change permissions",
"change-settings": "Change Settings",
"changeAvatarPopup-title": "Change Avatar",
"changeLanguagePopup-title": "Change Language",
"changePasswordPopup-title": "Change Password",
"changePermissionsPopup-title": "Change Permissions",
"changeSettingsPopup-title": "Change Settings",
"click-to-star": "Click to star this board.",
"click-to-unstar": "Click to unstar this board.",
"clipboard" : "Clipboard or drag & drop",
@ -180,6 +182,7 @@
"filter-to-selection": "Filter to selection",
"fullname": "Full Name",
"header-logo-title": "Go back to your boards page.",
"hide-system-messages": "Hide system messages",
"home": "Home",
"import": "Import",
"import-board": "import from Trello",

View file

@ -59,6 +59,10 @@ Users.attachSchema(new SimpleSchema({
type: String,
optional: true,
},
'profile.hiddenSystemMessages': {
type: Boolean,
optional: true
},
'profile.initials': {
type: String,
optional: true,
@ -151,6 +155,11 @@ Users.helpers({
return _.contains(notifications, activityId);
},
hasHiddenSystemMessages() {
const profile = this.profile || {};
return profile.hiddenSystemMessages || false;
},
getEmailBuffer() {
const {emailBuffer = []} = this.profile;
return emailBuffer;
@ -231,6 +240,14 @@ Users.mutations({
this.addTag(tag);
},
toggleSystem(value = false) {
return {
$set: {
'profile.hiddenSystemMessages': !value,
},
};
},
addNotification(activityId) {
return {
$addToSet: {
@ -278,6 +295,10 @@ Meteor.methods({
Users.update(this.userId, {$set: { username }});
}
},
toggleSystemMessages() {
user = Meteor.user();
user.toggleSystem(user.hasHiddenSystemMessages());
},
});
if (Meteor.isServer) {

View file

@ -3,17 +3,17 @@
// 2. The card activity tab
// We use this publication to paginate for these two publications.
Meteor.publish('activities', (kind, id, limit) => {
Meteor.publish('activities', (kind, id, limit, hideSystem) => {
check(kind, Match.Where((x) => {
return ['board', 'card'].indexOf(x) !== -1;
}));
check(id, String);
check(limit, Number);
check(hideSystem, Boolean);
return Activities.find({
[`${kind}Id`]: id,
}, {
limit,
sort: {createdAt: -1},
});
});
let selector = (hideSystem) ? {$and: [{activityType: 'addComment'}, {[`${kind}Id`]: id}]} : {[`${kind}Id`]: id};
return Activities.find(selector, {
limit,
sort: {createdAt: -1},
});
});