mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 05:27:14 -04:00
Merge pull request #2541 from whowillcare/master
Added new features: user will be notified when been @ and other feature
This commit is contained in:
commit
b39bbfc97a
3 changed files with 36 additions and 2 deletions
|
@ -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__"
|
||||
}
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue