Merge pull request #2541 from whowillcare/master

Added new features: user will be notified when been @ and other feature
This commit is contained in:
Lauri Ojansivu 2019-07-11 22:47:48 +03:00 committed by GitHub
commit b39bbfc97a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 2 deletions

View file

@ -721,5 +721,6 @@
"act-withDue": "__card__ due reminders [__board__]",
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now"
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
"act-atUserComment": "You were mentioned in [__board__] __card__"
}

View file

@ -171,6 +171,26 @@ if (Meteor.isServer) {
if (activity.commentId) {
const comment = activity.comment();
params.comment = comment.text;
if (board) {
const atUser = /(?:^|\s+)@(\S+)(?:\s+|$)/g;
const comment = params.comment;
if (comment.match(atUser)) {
const commenter = params.user;
while (atUser.exec(comment)) {
const username = RegExp.$1;
if (commenter === username) {
// it's person at himself, ignore it?
continue;
}
const user = Users.findOne(username) || Users.findOne({ username });
const uid = user && user._id;
if (board.hasMember(uid)) {
title = 'act-atUserComment';
watchers = _.union(watchers, [uid]);
}
}
}
}
params.commentId = comment._id;
}
if (activity.attachmentId) {
@ -212,6 +232,19 @@ if (Meteor.isServer) {
if (value) params[key] = value;
});
if (board) {
const BIGEVENTS = process.env.BIGEVENTS_PATTERN || 'due'; // if environment BIGEVENTS_PATTERN is set or default, any activityType matching it is important
try {
const atype = activity.activityType;
if (new RegExp(BIGEVENTS).exec(atype)) {
watchers = _.union(
watchers,
board.activeMembers().map(member => member.userId),
); // notify all active members for important events system defined or default to all activity related to due date
}
} catch (e) {
// passed env var BIGEVENTS_PATTERN is not a valid regex
}
const watchingUsers = _.pluck(
_.where(board.watchers, { level: 'watching' }),
'userId',

View file

@ -7,7 +7,7 @@ Meteor.startup(() => {
if (quoteParams[key]) quoteParams[key] = `"${params[key]}"`;
});
['timeValue', 'timeOldValue'].forEach(key => {
if (quoteParams[key]) quoteParams[key] = `${params[key]}`;
quoteParams[key] = quoteParams[key] ? `${params[key]}` : '';
});
const lan = user.getLanguage();