Redmine plugin for easy customization of settings, text and content display by using personal or role-based dashboards (drag&drop), providing wiki macros and act as library for other plugins.
Additionals is a Redmine
plugin for customizing Redmine, providing wiki macros and act as a library/function provider for other Redmine plugins.
Name | requirement |
---|---|
Redmine version |
>= 6.0 |
Ruby version |
>= 3.1 |
Database version | MySQL >= 8.0 or PostgreSQL >= 14 |
NOTE: If you use MySQL, make sure all database tables using the same storage engine (InnoDB is recommended) and character set (utf8mb4 is recommended).
NOTE: For more information use the official Redmine install documentation
Install additionals
plugin for Redmine
.
cd $REDMINE_ROOT
git clone -b stable https://github.com/alphanodes/additionals.git plugins/additionals
bundle config set --local without 'development test'
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Restart your application server (apache with passenger, nginx with passenger, unicorn, puma, etc.) and additionals
is ready to use.
More information about installation of Redmine plugins, you can find in the official Redmine plugin documentation.
Update additionals plugin.
cd $REDMINE_ROOT/plugins/additionals
git pull
cd ../..
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Restart your application server (apache with passenger, nginx with passenger, unicorn, puma, etc.) and additionals
is ready to use.
Uninstall additionals
plugin.
cd $REDMINE_ROOT
bundle exec rake redmine:plugins:migrate NAME=additionals VERSION=0 RAILS_ENV=production
NOTE: We reserve the right to remove certain functions again. This is the case, for example, if a function has been included in Redmine Core or conflict with it.
As Redmine does not support asset pipeline, we need to install Javascript plugins as Redmine plugins to load them globally.
If no common files are used as library plugin, every plugin has to deliver the same files. And if more
than one version of a library is delivered with each Redmine plugin, there is a problem.
Therefore if developer uses this plugin for the provided libraries, everything works smoothly.
Don’t worry, if you only need a subset of the provided libraries. If you do not load a library, it is not used.
It provides :
And a set of various Rails helper methods (see below).
It provides the following Rails helper methods :
additionals_library_load(module_name)
This method loads all JS and CSS files needed by the required module.
The following modules are available :
If you know other plugins, which are using additionals
, please let us know or create a PR.
additionals
is Open-source and it is available at https://github.com/alphanodes/additionals
You can help to improve the plugin by providing pull requests of changes or features you want. Thank you for your interest and help.
All contributions to this project are licensed under the terms of GNU/GPL v2.
See LICENSE for details.
The plugin is maintained by AlphaNodes for free as far as possible. In case you want a feature, which is not available and you are not capable of implementing it yourself, you can request this feature from AlphaNodes.
We are an Open-source
_ service company from Munich. Among other things, we offer commercial plugin development (e.g. implementation function request, expansion of functionality, etc). In case the requested plugin changes still fit to the plugin purpose. Please, contact us in case you are interested in commercial plugin development.
The plugin configuration takes place in the administration area by a user with administration permission. Go to Plugins / Additionals to open it.
The additionals plugin configuration is divided into several sections, described below.
The general section tab allows you to define some special behaviours for your Redmine installation.
The following plugin options are available to be edited by users with administration rights in the area Contents:
Text for login page
Global sidebar
Project wide footer
And the following options can be edited by users with administratios rights in the area Settings:
Open external URLs
Open external URLs
in order to open those URLs in a new window or browser tab if someone wants to visit them.Go to top Link
Emoji support
Legacy smileys support
Legacy smileys support
if you want to use the manual smiley code in your text (e.g. :)
). If you already use a plugin that supports Smileys this option should stay deactivated.Maximum number of LiveSearch results
This feature will hide the selected modules in the project settings. Even if the module is enabled for usage in the admin area it can not be selected by the project manager within the projects. Please note, if these modules already activated in existing projects, you will have to change and re-save the respective project settings first.
NOTE: Please restart the application server, if you make changes to the external urls settings as well as if you activate the Smileys support.
Tip: You can use the following manual smiley codes: 😃, =), 😄, =D, 😢, 😦, 😉, 😛, 😮, 😕, :S, 😐, :X, 😗, 😇, >:), B), (!), (?), (v), (x) and (/)
If you click on this tab you get to the area, where users with administration rights can customize contents and settings for your Wiki pages in Redmine.
Global wiki sidebar
NOTE: Use simple text, macros and wiki syntax for your content.
Remove Wiki title from PDF view
Remove attachments from PDF view
Redmine macros can be used in the Wiki of a project or in the text area of an issue. For more information on how to add macros use the Redmine help documentation.
The Macros section of the additionals plugin lists all available macros that the logged in user can use with the macro button of the wiki toolbar. If you leave them deactivated they are all available to your users for selection.
Macros marked here are not offered for selection. This allows you to limit the scope of the list for a better usability.
Figure: If all macros are deactivated the Macro button of the Wiki toolbar will disappear.
NOTE: If you deactivate some macros here this does not mean the user may not implement them. All available macros of installed plugins will work even if they are not part of the macro button. The macro button is just a little helper for Redmine users with no macro experience to make it easier for them to use macros or to remember them.
Many plugins are equipped with a number of useful macros. Unfortunately it is difficult for the normal user to find out which macros are usable without a look at the plugin documentation.
With the macro button for the Wiki toolbar we want to simplify the implementation of macros for users somehow and above all also promote. Because the use of macros belongs to the daily tools of the trade when dealing with the Wiki.
Figure: The Wiki toolbar macro button is a useful helper in order to select available project macros for your content.
The macro button for the Wiki toolbar is acessible for every user of a project. For reasons of clarity, the list of available macros is restricted according to the following criteria.
A user can see in the macro list:
The function is easy to use. Just click the button with the left mouse. The dropdown list shows all your available macros. Select the one you want to use. The selected macro will be pasted to the cursor position. All you have to do is adapt missing parameters (if needed).
Here you can define issue rules, which are used in issues of all projects.
Note for new issues
NOTE: You can use wiki syntax for your text (use it wisely). Make sure the wiki page you link to is accessible for every user. The default issue text can be overwritten within the project settings.
Show max. files
New issue on user profile
Show Assign to me on issue
Show issue author with note
Fast edit for description
Issue status on sidebar
NOTE: All options above only work for users with appropriate issue tracking rights in the administration area “Roles and permissions” (view, create, edit).
If Assignee is unchanged and the issue status changed from x to y, than the author is assigned to the issue.
Issues should be automatically assigned to the author, if the status changes to Approval.
NOTE: Use Case for this option is that issues should be automatically assigned to author, if the status changes to Approval.
Current issue status x is only allowed if Assignee is the current user.
NOTE: Is this function used in combination with the setting option Issue status on sidebar then the current user will automatically be assigned to the issue while changing the issue status. Use Case here: Users are only allowed to change the status to In Progress if they are the person who is actually working on the issue right now.
If Assigned to is not assigned to a user and the new issue status is x then the issue is auto assigned to the first group with users of the pre-defined role.
NOTE: Use Case: The issue author does not know whom the issue should be assigned to. Or he is unsure who will be responsible for solving the task. In that case the issue for example with the status “To Do” is automatically assigned to the first group, which does contain a user of the pre-selected project manager role. Imagine you have a group called “Support”, and there are users assigend to the “Manager” role, this support group will be automatically adressed to solve the issue when the issue author saves it.
Time log for issues required.
NOTE: For each issue of the selected trackers, a time logging is necessary if the issue is to receive one of the defined status properties. The time logging is not required if there does no rights exist for the creation of time logging or if the user has the authorization Time logging not required.
Please note, that a user with administration rights will always be able to do all those things a normal user is not allowed to.
In case you want to use the Gmap Macro you have to implement your Google API Key into the field Google Maps Embed API Key
first. After this you can use the Macro everywhere inside Redmine (Wiki, Issues - everywhere you use wiki syntax).
We have implemented a help symbol in the global top menu of the header section that opens the new help menu.
There you find useful manual links to various Redmine related topics which will automatically be implemented, when the plugin has been installed. The menu is divided into two parts.
The following menu items are currently implemented if a plugin is installed, that supports this additionals-function:
Known external plugins that have a user manual and support this feature are currently:
The following option has been added to the Auto-watch section in the user account:
If this option is activated, you will be set as a watcher based on the assignment. The aim is to be notified of changes even without prior interaction with the issue. For example, if the issue is assigned to another user in the meantime.
In the project configuration the Issues tracking
section allows you to store system wide Note for new issues
, which will be displayed on top of new issues (or in the edit mode of an issue). This system wide information text can be changed per project within the project settings. You can change the system settings in your project Settings area section Issue tracking.
Choose one of the following options:
Name | Description |
---|---|
System | There is nothing you can do. The default system wide text will be used. |
disabled | This disables the Note for new issues completely. |
Project | This option allows you to define your own, project relevant text as Note for new issues . |
NOTE: You can use wiki syntax for your text (use it wisely). Make sure the wiki page you link to is accessible for every user. The default issue text can be overwritten within the project settings.
The following role permissions are provided by the plugin and must be configured in the administration area Roles and permissions
for the plugin functions to make sure it’s working properly.
According to the selected Role you can activate / deactivate the following option:
members
of the selected role in the member box of each project overview page. Project members of other roles will still be listed. For example: You don’t want others to catch a glimpse of your development team (Role: Development). So activate the role “Developer” to hide the list of your team members assigned to this role in this box. This function is also useful if your member box is too crowded.NOTE: This setting is also taken into account in all related query lists (e.g. issues, spent time etc.). So that the members with this role are also hidden there.
Important: If the user has in one project a role, that allows him / her to view a specific “hidden role” this rule is not taken into account anymore.
According to the selected Role you can activate / deactivate the following permissions:
Show hidden roles
Save dashboards
Set system dashboards
Share dashboards
Edit issue author
Edit closed issues
Set author of new issues
Log time to closed issues
The additionals plugin comes with dashboard support (Drag & Drop). The Dashboard feature of the additionals plugin provides customizable areas to display and organize content from Redmine and Redmine plugins that support the functionality.
Specifically, you can customize the traditional Redmine main page, as well as the project overview pages according to your needs using the available dashboard blocks. The goal is to give the viewer an immediate overview of the issues or to display the metrics that are important to you.
The dashboard configuration takes place directly in Redmine:
On the “Home” page
On the Project overview page
If other plugins are installed and support the dashboard functionality there might be also other areas. For example:
Figure shows the main areas of the dashboard function
Dashboard examples
With the Dashboard of the additionals plugin for Redmine you can for example:
NOTE: When using the dashboard function make sure you have already configured the additionals permissions the way you need them.
Dashboard permissions
If you want to use the dashboard functionality you need to configure the permissions for the respective user roles, which are:
The following blocks are delivered as standard when using the additionals dashboard function.
General blocks for all areas (e.g. Home and Project overview) are:
Query: Issues
Text
Text (asynchronous)
Latest news
Documents
Static spent time
Atom+RSS Feed
Special blocks for the welcome page Home are:
Standard content left / Standard content right
Activity
Welcome
Special blocks for Project overview are:
Standard content left / Standard content right
Project information
Subprojects
Issue tracking
Time tracking
Members
NOTE: These are the basic blocks that come with the additionals plugin dashboard functionality. Other plugins, that also support the Drag&Drop dashboard function may deliver additional blocks for selection.
NOTE: Notes about caching: All blocks are cached asynchron (every 30 seconds). The RSS Feed blocks are cached asynchron (every 10 minutes). The time tracking block is chached asynchron (every 1 hour).
When installing the Additionals plugin it comes with default dashboards for the Redmine Home page as well as the Redmine Project overview page. The typical default dashboard has the following key options:
In case you want to restore the default dashboard you can simply add a new one or arrange an existing one by using the following blocks and position them in the left or right area.
Default Dashboard blocks: Home
Default Dashboard blocks: Project overview
No, there is no restore function for your default dashboard. If you add dashboard blocks you don’t like, just remove them and add other ones.
There is nothing bad about it. Just remove the dashboard blocks you don’t like and start over. The best way to start a new default dashboard anyway is to create a new dashboard, first and add the blocks you like. If everything is the way you want it, make it “Default”. Keep the old “Default” as backup.
A protection against accidental deletion / editing is the option “Locked”. Anyone with dashboard edit permission can enable/disable it. If enabled a little locked symbol is displayed at the top right corner so you can see, the dashboard is protected. You can unlock it any time to do your changes. It is not possible to change locked dashboards.
This will always happen, if you work as user with the appropriate permission to do so (e.g. administration permissions). We recommend not do work with those permission in your regular work day. Create your dashboards one time and switch user permissions afterwards. So this will not happen again.
There is just one system default dashboard possible for every area. This means one default dashboard for the Redmine “Home” page. And one for the general project overview page. But you can create also one default for a specific project overview page, which will than be “Project default”.
All you need to do is:
Figure shows how to set a project default dashboard by selecting a specific project from the dropdown list.
You do not control the content a user in your project can view via the dashboard block you add. You need to take care of content view permissions by setting up the correct user permissions in the administration area “Roles and permissions”. Those permissions are relevant for the content a user can view in your project and must be set correctly. If you want a dashboard for your own, all you need to do is, create a new dashboard and set Visible to the option to me only.
For Anonymous users / Non members use the normal “default dashboard” for the Redmine start page and / or Redmine project page. Because they will usually see the default dashboard and the blocks placed there. They will not be able to switch between different dashboards.
And for your employees create own dashboards. You define which role has access to it in the dashboard configuration. Employees of the respective roles can then simply switch from the standard dashboard to the role-based dashboard in case it will not be displayed on the first visit.
If the plugin was uninstalled correctly, then the Redmine start page, as well as the project overview page will correspond to the usual view again by default.
This means that you will only see the blocks that Redmine has permanently placed there (e.g. welcome text message, latest news), or the blocks that are placed there by installed Redmine plugins.
The pages can no longer be customized flexibly. You no longer have any influence on the content that is offered there.
You are a plugin developer and want to support Dashboards for your plugin as well? Great! Thank you for that.
Learn how to implement Dashboard blocks in your plugins. There are only two things required for that:
NOTE: Examples: Go to https://github.com/alphanodes/additionals/tree/main/app/views/dashboards/blocks for examples.
NOTE: Examples: Go to https://github.com/alphanodes/additionals/blob/main/app/models/dashboard_content.rb#L29 for examples for that.
Overwrite it with prepend (not alias_method) to get no conflicts with other plugins. See redmine_git_hosting for an example implementation for a block template and a block definition.
That’s it. As you can see, it’s not so hard.
In case of further questions use the issue tracking system for this project on GitHub.
Footnotes:
For questions or feedback on the plugin functions, pull requests, issues use only the issue system as a communication channel. Thank you.
This plugin is licensed under the terms of GNU/GPL v2.
See LICENSE for details.
The additionals is a plugin extension for Redmine Project Management Software, whose Copyright follows.
Copyright © 2006- Jean-Philippe Lang
Redmine is a flexible project management web application written using Ruby on Rails framework.
More details can be found in the doc directory or on the official website http://www.redmine.org
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Thanks to: