Feature #13919

Mention user on comment/description using @user with autocomplete

Added by Diego Antunes about 7 years ago. Updated about 1 month ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:Marius BALTEANU% Done:

0%

Category:Email notifications
Target version:4.2.0
Resolution:

Description

https://github.com/dwarburt/redmine-mention-plugin is ok, but I think would be awesome to have something like Github where it has an inline autocomplete for users etc. I think this should be built into the core plugins maybe?

for reference check this out https://github.com/tactivos/jquery-sew

feature_13919_v1.patch Magnifier (11.2 KB) Mizuki ISHIKAWA, 2019-03-07 05:34

feature_13919_v2.patch Magnifier (20.9 KB) Mizuki ISHIKAWA, 2019-03-26 07:15

0001-Demo-for-acts_as_mentionable.patch Magnifier (3.5 KB) Marius BALTEANU, 2019-09-10 19:05

draft-feature-13919-v3.patch Magnifier - Patch developed based on feature-13919-v2.pacth (16.2 KB) Mizuki ISHIKAWA, 2020-02-13 02:23

draft-acts_as_mentionable.patch Magnifier - Patch developed based on 0001-Demo-for-acts_as_mentionable.patch (16.9 KB) Mizuki ISHIKAWA, 2020-02-13 02:23

email_template.png (144 KB) Marius BALTEANU, 2020-04-05 21:06

0001-Demo-for-acts_as_mentionable.patch Magnifier (26.5 KB) Marius BALTEANU, 2020-04-05 21:17

0002-Prevent-multiple-emails-from-being-sent-to-a-user.patch Magnifier (2.19 KB) Mizuki ISHIKAWA, 2020-04-16 04:47

0003-Add-permission-check-before-sending-email.patch Magnifier (4.38 KB) Mizuki ISHIKAWA, 2020-04-16 04:47


Related issues

Related to Redmine - Feature #4179: Link to user in wiki syntax Closed 2009-11-08
Related to Redmine - Feature #26127: Display user logins on profiles Closed
Related to Redmine - Feature #31989: Inline issue auto complete (#) in fields with text-format... Closed
Duplicated by Redmine - Feature #15828: mention system. Closed
Duplicated by Redmine - Feature #16478: Several people involved / Mention someone Closed
Duplicated by Redmine - Feature #29471: Allow for calling users by their username Closed

History

#1 Updated by Jelle Bekker about 7 years ago

I've tried to implement this at https://github.com/Jbekker/redmine_mention_plugin/tree/autocomplete
I changed the syntax to :user instead of @user because that doesn't get triggered when typing a email-address :-( I'm sure there is a way to filter a email adress out but im not a Ruby/JavaScript pro yet.
Currently im not checking if jquery is loaded and there are a few other things that could be done better I suppose. Patches and pull requests are welcome!

#2 Updated by Arkhitech - More, Better, Faster! about 6 years ago

+1 for this feature. Mentioned user should not get added to the watcher's list though. Only a one time email should be triggered saying that 'You were mentioned....' or something. Also, there should be email notification setting, where you can appropriately adjust that you want to receive mention email notifications only, etc.

#3 Updated by Toshi MARUYAMA about 6 years ago

  • Related to Feature #16478: Several people involved / Mention someone added

#4 Updated by Andriy Lesyuk about 6 years ago

FYI, mentions with email notifications are implemented in WikiNG 1.0.0b.

#5 Updated by Toshi MARUYAMA almost 6 years ago

#6 Updated by Toshi MARUYAMA almost 6 years ago

  • Related to deleted (Feature #16478: Several people involved / Mention someone)

#7 Updated by Toshi MARUYAMA almost 6 years ago

  • Duplicated by Feature #16478: Several people involved / Mention someone added

#8 Updated by Dmitry Beloglazov almost 6 years ago

+1 for this one. Would be really nice to have.

#10 Updated by Lai Wei-Hwa almost 5 years ago

The plugin that Alex Sherman posted is cool but doesn't work on comments. +1 to get this implemented.

#11 Updated by Kamil Franckiewicz over 4 years ago

Arkhitech - More, Better, Faster! wrote:

+1 for this feature. Mentioned user should not get added to the watcher's list though. Only a one time email should be triggered saying that 'You were mentioned....' or something. Also, there should be email notification setting, where you can appropriately adjust that you want to receive mention email notifications only, etc.

I agree. +1

#12 Updated by budo kaiman over 4 years ago

+1 to single email. Plugins for this feature have always been unreliable and trying to communicate on redmine without setting people as watchers is awkward and inefficient.

#13 Updated by Konstantin Ladutenko over 4 years ago

Lai Wei-Hwa wrote:

The plugin that Alex Sherman posted is cool but doesn't work on comments. +1 to get this implemented.

Alex Sherman wrote:

+1
I also tried this one: http://www.redmine.org/plugins/redmine-mentions

I used the same plugin by Arkhitech, it looks to work as expected for comments, however, does not notify user when mentioned in description of the task. To make autocomplete feature to work with redmine 2.5.2 I used a patch (see pull requtest on GitHub https://github.com/arkhitech/redmine_mentions/pull/34 )

#14 Updated by Steve Légaré about 4 years ago

Arkhitech - More, Better, Faster! wrote:

+1 for this feature. Mentioned user should not get added to the watcher's list though. Only a one time email should be triggered saying that 'You were mentioned....' or something. Also, there should be email notification setting, where you can appropriately adjust that you want to receive mention email notifications only, etc.

I agree! +1

#15 Updated by Anh Le Giang almost 4 years ago

+ 1

#16 Updated by sch uess over 3 years ago

+1

#17 Updated by Frank Paaske over 3 years ago

Yes, please add this feature!

#18 Updated by Y Z over 3 years ago

+1

#19 Updated by Roman Kovtyukh over 3 years ago

+1

#20 Updated by Toshi MARUYAMA almost 3 years ago

#21 Updated by Yasukazu Nagatomi almost 3 years ago

I agree! +1

#22 Updated by Joe Price over 2 years ago

+1 Keep the dream alive!

#23 Updated by Alexandre Audige over 2 years ago

+1

#24 Updated by C F over 2 years ago

+1

#25 Updated by Kevin Palm about 2 years ago

+1

#28 Updated by Maickel Neitzke almost 2 years ago

+1

#29 Updated by Kamil . almost 2 years ago

+1

#30 Updated by Go MAEDA almost 2 years ago

  • Duplicated by Feature #29471: Allow for calling users by their username added

#31 Updated by Anonymous over 1 year ago

+1

#32 Updated by Tantic o over 1 year ago

+1

#33 Updated by Muhammad Yusuf over 1 year ago

+1

#34 Updated by Mizuki ISHIKAWA about 1 year ago

The attached patch adds a feature to mention to the user.
  • Use user link such as "user:jsmith" "@jsmith" "user#2".
  • Notify when the user mentioned by the user link has the authority to view the element and has not rejected the notification.

The test has not been written yet for this patch.
There is room for improvement in this patch.
I'm looking forward to getting your feedback.

#35 Updated by Yuuki NARA about 1 year ago

+1

#36 Updated by Go MAEDA about 1 year ago

  • Category changed from Core Plugins to Email notifications
  • Target version set to Candidate for next major release

#37 Updated by Mizuki ISHIKAWA about 1 year ago

I attached a patch to which test code was added.

#38 Updated by Go MAEDA about 1 year ago

  • Target version changed from Candidate for next major release to 4.1.0

Setting the target version to 4.1.0.

#39 Updated by Marius BALTEANU about 1 year ago

  • Assignee set to Marius BALTEANU

I would like to test the solution proposed because looking over the patch proposed, I think that it cannot be committed as it is and it'll require more work.

#40 Updated by Aleksandar Pavic about 1 year ago

+1

Mention should actually trigger email notification (add user as watcher if it's not added)

#41 Updated by John Ramsden about 1 year ago

We've been looking at this feature, and we're hoping to move from to it from the redmine_mention_plugin plugin1. The issue we're having with the current plugin is that it doesn't support our usernames that are emails. Are there any plans to support that in this feature? Or if we plan to use this feature should we move away from emails as usernames?

In the existing plugin when we write @, an autocomplete box opens, when we choose a user that is not an email, it converts it to a link to the user correctly, whereas when using an email it does not. We tried modifying the regex but I guess there's more to it than that.

1 https://github.com/stpl/redmine_mention_plugin

#42 Updated by Go MAEDA about 1 year ago

Marius BALTEANU wrote:

I would like to test the solution proposed because looking over the patch proposed, I think that it cannot be committed as it is and it'll require more work.

Could you point out what needs to be corrected? Maybe Mizuki can work on correcting the patch.

#43 Updated by Marius BALTEANU 12 months ago

Thanks Mizuki for writing the patch.

My main concern regarding the proposed solution is that there is no way for the user to control the notification emails, he'll be notified every time when someone will mention him.

I see 2 options:
1. We add a new event type ("On mention") and some options for the user to control when he should be notified or not. But this solution it's quite complex and it'll require more time to work on it. Also, the message from the notification emails should contain something like "You received this email because someone mentioned you".
2. We just add the user as watcher and the notifications will be controlled by the actual notification rules. In addition, we can add in the user preferences an option regarding if he wants to auto watch the objects where he is mentioned.

My proposal is to go with 2 for now and see in the future how can develop more this feature.

Anyway, another main improvement here is to have a client side feature to allow users to mention someone using an autocomplete dropdown.

Any other feedback on this is welcome.

#44 Updated by Anders Thomsen 12 months ago

Marius BALTEANU wrote:

...
My main concern regarding the proposed solution is that there is no way for the user to control the notification emails, he'll be notified every time when someone will mention him.
...
I see 2 options:
...
2. We just add the user as watcher and the notifications will be controlled by the actual notification rules. In addition, we can add in the user preferences an option regarding if he wants to auto watch the objects where he is mentioned.

Won't adding mentioned users as watchers cause them to get even more e-mails? Consider a scenario where developers (watching the issue) frequently adds notes to an issue. Once in a while they need to notify some stakeholder (not watching as this would cause too many irrelevant notifications) which they do by mentioning them.
Or perhaps I misunderstand - by "add the user as watcher" do you mean only for that one request (not persisting the setting)?

#45 Updated by Marius BALTEANU 12 months ago

Anders Thomsen wrote:

Won't adding mentioned users as watchers cause them to get even more e-mails? Consider a scenario where developers (watching the issue) frequently adds notes to an issue. Once in a while they need to notify some stakeholder (not watching as this would cause too many irrelevant notifications) which they do by mentioning them.
Or perhaps I misunderstand - by "add the user as watcher" do you mean only for that one request (not persisting the setting)?

You're right, it'll generate more emails.

How do you see the implementation?

#46 Updated by Anders Thomsen 12 months ago

In a company there should be no problem as mentioning a user would have the same effect as sending an email to the user. So I believe the main concern would be in public websites like this one.

It could be controlled by a new permission: "Notify mentioned users". If one don't have that permission, no drop-down should be displayed typing in @ and of cause no notification e-mail should be sent.

#47 Updated by Go MAEDA 12 months ago

Marius BALTEANU wrote:

My main concern regarding the proposed solution is that there is no way for the user to control the notification emails, he'll be notified every time when someone will mention him.

I think it is the ideal behavior because this feature is to forcefully send a notification to another user. Since the notification is sent only when a user used "@login" or other special markup, I think it is not a big problem.

#48 Updated by Jean-Philippe Lang 12 months ago

  • Target version changed from 4.1.0 to 4.2.0

#49 Updated by Mizuki ISHIKAWA 11 months ago

I agree with #13919#note-47.

http://www.redmine.org/projects/redmine/repository/entry/trunk/app/models/user.rb#L790
always send to project members except when mail_notification is set to 'none'

If mail_notification is not none, a notification will be sent when the news is created(#4700).

I think that notifications when mentioned are as important as news notifications.

#50 Updated by Go MAEDA 9 months ago

  • Related to Feature #31989: Inline issue auto complete (#) in fields with text-formatting enabled added

#51 Updated by Marius BALTEANU 9 months ago

@Mizuki ISHIKAWA, what do you think if we try to implement this feature using a new plugin named "acts_as_mentionable" which will be able to look for mentioned users (for now, it can be extended to another entities in the future) only on the changed values and only on configured attributes per entity (for example: Issue#description, Journal#notes, CustomFieldValue#value, etc)?

I'm attaching a patch for demo purposes which:
- gives you access to all attributes that are changed during an update using saved_changes
- gives you access to the attributes where we should look after mentions through mentionable_attributes

Further more, I think we should have a mechanism that calculates the users that should be notified by making a diff between the users that were been notified based on the old value and the users that should be notified based on the new value. In this way, we avoid sending another mention if someone just append a short text to an existing description which already contains a mention. Also, the email send to the user should be a new mail template, something like "You have been mentioned in #{issue} by #{user}".

Please let me know what do you think about this. Any other ideas are welcome!

#52 Updated by Mizuki ISHIKAWA 9 months ago

Marius BALTEANU wrote:

Please let me know what do you think about this.

Thank you for your activity on this Issue(feature)!
The implementation using the "acts_as_mentionable" plugin looks more beautiful than the patch implementation I attached in #13919#note-34.

Also, the email send to the user should be a new mail template, something like "You have been mentioned in #{issue} by #{user}".

That looks good.

If the mention user is always notified of changes to mentionable attribute(eg issue),
I think it would be ideal to send only the email "You have been mentioned in #{issue} by #{user}". (Do not send existing email "Issue#1 has been updated by #{user}")

#53 Updated by Marius BALTEANU 9 months ago

Mizuki ISHIKAWA wrote:

Thank you for your activity on this Issue(feature)!
The implementation using the "acts_as_mentionable" plugin looks more beautiful than the patch implementation I attached in #13919#note-34.

Thanks for you quick feedback. Do you like to continue from here? I would be very happy to review the patch.

#54 Updated by Mizuki ISHIKAWA 4 months ago

I am developing a patch based on 0001-Demo-for-acts_as_mentionable.patch, but I thought that there are some problems by sharing the process with acts_as_mentionable.

Existing notification emails have been optimized to deliver more information per event, such as mailer/issue_add.html.erb, mailer/issue_edit.html.erb and mailer/news_added.html.erb .
For example, issue_edit includes Issue information as well as Journal information as shown below.

Issue #1 has been updated by Redmine Admin.
・ Description updated (diff)
Change description.

Bug #25: Subject
Author: Redmine Admin
Status: New
Priority: Normal
Start date: 2020-02-04
Searchable field: Default string
John Smith Dave Lopper
Description

Description comment.

I find it difficult to replace these optimized emails with a common email template created based on 0001-Demo-for-acts_as_mentionable.patch.

Therefore, I am planning to develop a patch that replaces the subject or the first sentence(example: Issue #25 has been updated by Redmine Admin) of the existing notification email with "You have been mentioned in Issue #25 by Redmine Admin" based on the feature_13919_v2.patch.

I have created a draft patch that works with two designs.

I welcome feedback on code design, etc.

#55 Updated by De Lo 3 months ago

In Gitlab, when you mention someone, they gets automatically subscribed to the thread and receives all further updates on the issue. We use that behaviour in our company and it very well suits our needs.

Having a different paradigm in another tool is misleading. IMHO, the fact that mentioned user could be added to watcher list should be controlled via a flag in the settings. As I can see on this plugin: https://github.com/arkhitech/redmine_mentions, its a feature which has been multiple times been requested.

What's your opinion ?

#56 Updated by Marius BALTEANU 2 months ago

  • File 0001-wip-for-acts_as_mentionable.patch added

Mizuki ISHIKAWA wrote:

I am developing a patch based on 0001-Demo-for-acts_as_mentionable.patch, but I thought that there are some problems by sharing the process with acts_as_mentionable.

Existing notification emails have been optimized to deliver more information per event, such as mailer/issue_add.html.erb, mailer/issue_edit.html.erb and mailer/news_added.html.erb .
For example, issue_edit includes Issue information as well as Journal information as shown below.

[...]

I find it difficult to replace these optimized emails with a common email template created based on 0001-Demo-for-acts_as_mentionable.patch.

Therefore, I am planning to develop a patch that replaces the subject or the first sentence(example: Issue #25 has been updated by Redmine Admin) of the existing notification email with "You have been mentioned in Issue #25 by Redmine Admin" based on the feature_13919_v2.patch.

I have created a draft patch that works with two designs.

I welcome feedback on code design, etc.

Thanks Mizuki for the work made on top of my patch. I took a look over your patches and I'm not sure why all those changes made to ApplicationHelper#parse_redmine_links and User are needed, most probably I missed something.

I made a new version of my patch (still WIP) which includes the auto complete feature for users and a working version of acts_as_mentionable. For now, notified_mentions receive the same existing email from Redmine, but we can easily made some changes to the email template in order to include a message like "You have been mentioned" or something similar. I'm attaching the patch for testing purposes.

#57 Updated by Marius BALTEANU 2 months ago

  • File deleted (0001-wip-for-acts_as_mentionable.patch)

#58 Updated by Marius BALTEANU 2 months ago

I've updated the patch in order to:
  1. ignore the users mentioned in quoted text or pre tags.
  2. add in the email template the sentence "You have been mentioned in it." (for now only when adding/editing issue)

This patch is good enough to demonstrate how the feature will work from a user perspective. Please let me know what do you think. If we decide that it's good enough, I will finish the work needed (tests, update all email templates, etc) in order to finally include this feature in Redmine core.

#59 Updated by Mizuki ISHIKAWA about 1 month ago

Marius BALTEANU wrote:

Thanks Mizuki for the work made on top of my patch. I took a look over your patches and I'm not sure why all those changes made to ApplicationHelper#parse_redmine_links and User are needed, most probably I missed something.

  • Changes to User is to check if the mentioned user has permission to access that object. Do not send notification emails to users who do not have access to the mentioned object.
  • Changes to ApplicationHelper#parse_redmine_links is to change the color of the link only to the user who is sent the permission check result email. (This is not absolutely necessary)

Marius BALTEANU wrote:

I made a new version of my patch (still WIP) which includes the auto complete feature for users and a working version of acts_as_mentionable. For now, notified_mentions receive the same existing email from Redmine, but we can easily made some changes to the email template in order to include a message like "You have been mentioned" or something similar. I'm attaching the patch for testing purposes.

Thanks for developing the patch, I think 0001-Demo-for-acts_as_mentionable.patch is a much better design than the draft-acts_as_mentionable.patch I wrote.

I attached some patches to solve it because I had some concerns.

Fix an issue where one user receives two notification emails when mentioning a user who originally planned to be notified(Issue#notified_users).

@dummy_user who is not a member of the C project cannot see issues in the C project. Even if @dummy_user is mentioned in the C project issue, I don't think the notification email should reach @dummy_user.

This patch adds a process to decide whether to send a notification email according to the permissions of the mentioned user.

#60 Updated by Mizuki ISHIKAWA about 1 month ago

De Lo wrote:

In Gitlab, when you mention someone, they gets automatically subscribed to the thread and receives all further updates on the issue. We use that behaviour in our company and it very well suits our needs.

Having a different paradigm in another tool is misleading. IMHO, the fact that mentioned user could be added to watcher list should be controlled via a flag in the settings. As I can see on this plugin: https://github.com/arkhitech/redmine_mentions, its a feature which has been multiple times been requested.

What's your opinion ?

I think the above feature to add mentioned users to watchers should be considered as an additional implementation after this feature (#13919) is committed.

Example, Add the mentioned user to watcher if Setting.add_mentioned_users_to_watchers is true.

Also available in: Atom PDF