mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 13:37:09 -04:00
improve notifications
This commit is contained in:
parent
28a01862d0
commit
b925b8e74d
9 changed files with 163 additions and 59 deletions
|
@ -17,7 +17,6 @@ template(name="memberMenuPopup")
|
|||
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'}}
|
||||
if currentUser.isAdmin
|
||||
li: a.js-go-setting(href="{{pathFor 'setting'}}") {{_ 'admin-panel'}}
|
||||
hr
|
||||
|
@ -50,23 +49,6 @@ template(name="editProfilePopup")
|
|||
input.js-profile-email(type="email" value="{{emails.[0].address}}" readonly)
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
|
||||
template(name="editNotificationPopup")
|
||||
ul.pop-over-list
|
||||
li
|
||||
a.js-toggle-tag-notify-watch
|
||||
i.fa.fa-eye.colorful
|
||||
| {{_ 'watching'}}
|
||||
if hasTag "notify-watch"
|
||||
i.fa.fa-check
|
||||
span.sub-name {{_ 'notify-watch'}}
|
||||
li
|
||||
a.js-toggle-tag-notify-participate
|
||||
i.fa.fa-bell.colorful
|
||||
| {{_ 'tracking'}}
|
||||
if hasTag "notify-participate"
|
||||
i.fa.fa-check
|
||||
span.sub-name {{_ 'notify-participate'}}
|
||||
|
||||
template(name="changePasswordPopup")
|
||||
+atForm(state='changePwd')
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ Template.memberMenuPopup.events({
|
|||
'click .js-change-avatar': Popup.open('changeAvatar'),
|
||||
'click .js-change-password': Popup.open('changePassword'),
|
||||
'click .js-change-language': Popup.open('changeLanguage'),
|
||||
'click .js-edit-notification': Popup.open('editNotification'),
|
||||
'click .js-logout'(evt) {
|
||||
evt.preventDefault();
|
||||
|
||||
|
@ -89,25 +88,6 @@ Template.editProfilePopup.events({
|
|||
},
|
||||
});
|
||||
|
||||
Template.editNotificationPopup.helpers({
|
||||
hasTag(tag) {
|
||||
const user = Meteor.user();
|
||||
return user && user.hasTag(tag);
|
||||
},
|
||||
});
|
||||
|
||||
// we defined github like rules, see: https://github.com/settings/notifications
|
||||
Template.editNotificationPopup.events({
|
||||
'click .js-toggle-tag-notify-participate'() {
|
||||
const user = Meteor.user();
|
||||
if (user) user.toggleTag('notify-participate');
|
||||
},
|
||||
'click .js-toggle-tag-notify-watch'() {
|
||||
const user = Meteor.user();
|
||||
if (user) user.toggleTag('notify-watch');
|
||||
},
|
||||
});
|
||||
|
||||
// XXX For some reason the useraccounts autofocus isnt working in this case.
|
||||
// See https://github.com/meteor-useraccounts/core/issues/384
|
||||
Template.changePasswordPopup.onRendered(function () {
|
||||
|
|
|
@ -152,17 +152,6 @@ if (Meteor.isServer) {
|
|||
if (board) {
|
||||
const watchingUsers = _.pluck(_.where(board.watchers, {level: 'watching'}), 'userId');
|
||||
const trackingUsers = _.pluck(_.where(board.watchers, {level: 'tracking'}), 'userId');
|
||||
const mutedUsers = _.pluck(_.where(board.watchers, {level: 'muted'}), 'userId');
|
||||
switch(board.getWatchDefault()) {
|
||||
case 'muted':
|
||||
participants = _.intersection(participants, trackingUsers);
|
||||
watchers = _.intersection(watchers, trackingUsers);
|
||||
break;
|
||||
case 'tracking':
|
||||
participants = _.difference(participants, mutedUsers);
|
||||
watchers = _.difference(watchers, mutedUsers);
|
||||
break;
|
||||
}
|
||||
watchers = _.union(watchers, watchingUsers || []);
|
||||
}
|
||||
|
||||
|
|
|
@ -116,6 +116,7 @@ if (Meteor.isServer) {
|
|||
url: FlowRouter.url('sign-up'),
|
||||
};
|
||||
const lang = author.getLanguage();
|
||||
|
||||
Email.send({
|
||||
to: icode.email,
|
||||
from: Accounts.emailTemplates.from,
|
||||
|
|
|
@ -89,10 +89,6 @@ Users.attachSchema(new SimpleSchema({
|
|||
type: [String],
|
||||
optional: true,
|
||||
},
|
||||
'profile.tags': {
|
||||
type: [String],
|
||||
optional: true,
|
||||
},
|
||||
'profile.icode': {
|
||||
type: String,
|
||||
optional: true,
|
||||
|
|
|
@ -333,3 +333,12 @@ Migrations.add('add-authenticationMethod', () => {
|
|||
},
|
||||
}, noValidateMulti);
|
||||
});
|
||||
|
||||
Migrations.add('remove-tag', () => {
|
||||
Users.update({
|
||||
}, {
|
||||
$unset: {
|
||||
'profile.tags':1,
|
||||
},
|
||||
}, noValidateMulti);
|
||||
});
|
|
@ -2,6 +2,7 @@
|
|||
Meteor.startup(() => {
|
||||
Notifications.subscribe('email', (user, title, description, params) => {
|
||||
// add quote to make titles easier to read in email text
|
||||
console.log('ICI', user, title, description, params);
|
||||
const quoteParams = _.clone(params);
|
||||
['card', 'list', 'oldList', 'board', 'comment'].forEach((key) => {
|
||||
if (quoteParams[key]) quoteParams[key] = `"${params[key]}"`;
|
||||
|
|
|
@ -25,16 +25,12 @@ Notifications = {
|
|||
participants.forEach((userId) => {
|
||||
if (userMap[userId]) return;
|
||||
const user = Users.findOne(userId);
|
||||
if (user && user.hasTag('notify-participate')) {
|
||||
userMap[userId] = user;
|
||||
}
|
||||
userMap[userId] = user;
|
||||
});
|
||||
watchers.forEach((userId) => {
|
||||
if (userMap[userId]) return;
|
||||
const user = Users.findOne(userId);
|
||||
if (user && user.hasTag('notify-watch')) {
|
||||
userMap[userId] = user;
|
||||
}
|
||||
userMap[userId] = user;
|
||||
});
|
||||
return _.map(userMap, (v) => v);
|
||||
},
|
||||
|
|
|
@ -95,6 +95,156 @@ echo -e "\t$ snap set $SNAP_NAME OAUTH2_TOKEN_ENDPOINT='/oauth/token'"
|
|||
echo -e "\t-Disable the OAuth2 Token Endpoint of Wekan:"
|
||||
echo -e "\t$ snap set $SNAP_NAME OAUTH2_TOKEN_ENDPOINT=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Enable."
|
||||
echo -e "To enable the ldap of Wekan:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_ENABLE='true'"
|
||||
echo -e "\t-Disable the ldap of Wekan:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_ENABLE='false'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Port."
|
||||
echo -e "The port of the ldap server:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_PORT='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Host."
|
||||
echo -e "The host server for the LDAP server:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_HOST='localhost'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Base Dn."
|
||||
echo -e "The base DN for the LDAP Tree:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_BASEDN='ou=user,dc=example,dc=org'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Login Fallback."
|
||||
echo -e "Fallback on the default authentication method:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_LOGIN_FALLBACK='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Reconnect."
|
||||
echo -e "Reconnect to the server if the connection is lost:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_RECONNECT='false'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Timeout."
|
||||
echo -e "Overall timeout, in milliseconds:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_TIMEOUT='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Idle Timeout."
|
||||
echo -e "Specifies the timeout for idle LDAP connections in milliseconds:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_IDLE_TIMEOUT='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Connect Timeout."
|
||||
echo -e "Connection timeout, in milliseconds:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_CONNECT_TIMEOUT='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Authentication."
|
||||
echo -e "If the LDAP needs a user account to search:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_AUTHENTIFICATION='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Authentication User Dn."
|
||||
echo -e "The search user Dn:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_AUTHENTIFICATION_USERDN='cn=admin,dc=example,dc=org'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Authentication Password."
|
||||
echo -e "The password for the search user:"
|
||||
echo -e "\t$ snap set $SNAP_NAME AUTHENTIFICATION_PASSWORD='admin'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Log Enabled."
|
||||
echo -e "Enable logs for the module:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_LOG_ENABLED='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Background Sync."
|
||||
echo -e "If the sync of the users should be done in the background:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Background Sync Interval."
|
||||
echo -e "At which interval does the background task sync in milliseconds:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC_INTERVAL='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Background Sync Keep Existant Users Updated."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Background Sync Import New Users."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Encryption."
|
||||
echo -e "Allow LDAPS:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_ENCRYPTION='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Ca Cert."
|
||||
echo -e "The certification for the LDAPS server:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Reject Unauthorized."
|
||||
echo -e "Reject Unauthorized Certificate:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_REJECT_UNAUTHORIZED='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap User Search Filter."
|
||||
echo -e "Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FILTER=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap User Search Scope."
|
||||
echo -e "Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree):"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_SCOPE=one"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap User Search Field."
|
||||
echo -e "Which field is used to find the user:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FIELD='uid'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Search Page Size."
|
||||
echo -e "Used for pagination (0=unlimited):"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_SEARCH_PAGE_SIZE='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Search Size Limit."
|
||||
echo -e "The limit number of entries (0=unlimited):"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_SEARCH_SIZE_LIMIT='12345'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Group Filter Enable."
|
||||
echo -e "Enable group filtering:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_ENABLE='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Group Filter ObjectClass."
|
||||
echo -e "The object class for filtering:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_OBJECTCLASS='group'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Group Filter Id Attribute."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Group Filter Member Attribute."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Group Filter Member Format."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Group Filter Group Name."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_NAME=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Unique Identifier Field."
|
||||
echo -e "This field is sometimes class GUID (Globally Unique Identifier):"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD=guid"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Utf8 Names Slugify."
|
||||
echo -e "Convert the username to utf8:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_UTF8_NAMES_SLUGIFY='false'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Username Field."
|
||||
echo -e "Which field contains the ldap username:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_USERNAME_FIELD='username'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Merge Existing Users."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_MERGE_EXISTING_USERS='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Sync User Data."
|
||||
echo -e "Enable synchronization of user data:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_SYNC_USER_DATA='true'"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Sync User Data Fieldmap."
|
||||
echo -e "A field map for the matching:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_SYNC_USER_DATA_FIELDMAP={\"cn\":\"name\", \"mail\":\"email\"}"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Sync Group Roles."
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_SYNC_GROUP_ROLES=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap Default Domain."
|
||||
echo -e "The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP:"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_DEFAULT_DOMAIN=''"
|
||||
echo -e "\n"
|
||||
# parse config file for supported settings keys
|
||||
echo -e "wekan supports settings keys"
|
||||
echo -e "values can be changed by calling\n$ snap set $SNAP_NAME <key name>='<key value>'"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue