Actions
Feature #42630
openAdd reaction feature
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
Description
This patch adds a reaction feature.
- Adds reaction buttons to issues and notes, news and comments, and forum messages
- Shows a tooltip with the names of users who reacted—up to 10 names, with the remaining number shown if there are more than 10
- The feature is enabled by default and can be turned off in the administration settings
Please also refer to the following screenshots and GIF:
Background / Purpose¶
- In my experience, there are many times on Redmine when I want to react to something without leaving a full comment. Reactions are now a common way to express appreciation, agreement, or support. I believe this feature will help encourage more interaction within Redmine.
- Many modern project management tools like GitHub and Jira already support reactions. By adding this feature to Redmine, I believe it will help modernize the platform and promote its adoption.
Details¶
- The icon used for reactions is thumb-up. This icon is commonly used to express appreciation, agreement, or support, and is widely adopted in tools similar to Redmine, such as GitHub, Jira, Asana, and Slack. Based on my experience, thumb-up is the most frequently used reaction icon in these tools.
- Since reactions should be widely available by nature, this patch does not add a specific permission for them. Instead, access is controlled based on the following rules:
- Add/Remove a reaction: Any logged-in user who can view the object (e.g.,
object.visible?(user)
returns true) - View reaction button: Any user who can view the object
- Add/Remove a reaction: Any logged-in user who can view the object (e.g.,
Implementation¶
- To reduce memory usage and performance impact when displaying objects with many journals (such as issues), I implemented the feature to load only the minimum necessary data.
- I confirmed that all tests, including system tests, pass.
You can also check the source code on GitHub:
https://github.com/hidakatsuya/redmine/tree/reaction-feature-dev
Performance¶
The following results were measured using rack-mini-profiler and memory_profiler when opening an issue detail page. The tested issue has 50 journals, each with reactions from 10 users. The Redmine instance is running the latest trunk on PostgreSQL in production mode.
Response Time (average of 5 runs) | Memory Performance | |
---|---|---|
Reactions Enabled | 257ms | Total allocated: 14490218 bytes (128483 objects) Total retained: 2576895 bytes (7804 objects) |
Reactions Disabled | 214ms | Total allocated: 11122428 bytes (96509 objects) Total retained: 2064420 bytes (6036 objects) |
Files
Related issues
Actions