I'm looking for a part-time remote job.

Hire me

I'm the author of:

Mastering Redmine is a comprehensive guide with tips, tricks and best practices, and an easy-to-learn structure.

Check the book's project or

Buy the book

Social pages of the book:

By buying this book you also donate to Redmine (see this page).

Follow me:


Project Sections: Section specific custom fields and Redmine 3.x support

Added by Andriy Lesyuk over 6 years ago

Download Project Sections 0.1.0

It was a very long time, during which updates of this plugin were not released. Sorry, for that. Anyway, here is the much anticipated release! The new version of the Project Sections plugin, which is 0.1.0, supports Redmine 3.x (was tested on versions 3.3 and 3.4 and should also work under 2.5.xd).

This release was sponsored by itratos Ltd & Co. KG.

In particular, the version 0.1.0 supports the new layout of the project listing, which was introduced in Redmine 3.4.0. While (to be honest) I don’t like the way, in which now projects are split into columns, and find it weird (especially, because the project description often gets into the next column), the new version of the plugin now renders projects in columns too. So, this part of the functionality is now, at least, consistent (between Redmine and the plugin). The new style of the projects jump box (which is in the top right corner) is also supported (and extended) by the new version of the plugin.

But, the fixes, that were dictated by changes in Redmine 3.4, are not the only new things in Project Sections 0.1.0. Thus, this version also comes with a couple of new features:

The most noteworthy new feature is support of project section specific custom fields. This means, that it’s now possible to have project, version and issue custom fields, which will be available only for projects of the selected sections. I personally use this feature (on this website) to have custom fields specific to Redmine plugins (e.g., “Redmine page”, which is shown on the project overview page).

Another small feature is support of the Project section issue filter. With this filter you can make your calendar, Gantt and issue listing show data only for those projects, which belong to the selected section. Thanks to Charline for the idea.

Additionally, this release includes the Polish translation, which was provided by Jerzy Chlebda. Thanks, Jerzy!

Finally, the version 0.1.0 comes with one, I believe, “degradation” (not a big one though). This and previous versions of Project Sections use the awesome_nested_set gem, which earlier was shipped with Redmine. Now, after Redmine removed it, this gem has to be installed separately, what makes the installation procedure of the plugin slightly more troublesome (you can check this procedure here). Luckily, if you upgrade the plugin from an older version, you don’t need to care about this gem, as it should already be installed.

At last, I want to thank itratos Ltd & Co. KG for supporting this release.

WikiNG: Mention autocomplete and Redmine 3.x support (2 comments)

Added by Andriy Lesyuk over 6 years ago

Download WikiNG 1.1.0

This was a very long time, during which you waited for this release to happen. Sorry for that. Finally, here is it: meet WikiNG 1.1.0, which was ported to Redmine 3.3 and 3.4 (and which should work with other 3.x versions and 2.5.xd). Certainly, this release also includes bug fixes (check the version page for the list of issues).

Among other things, Redmine 3.4 introduced support for user links, which was a feature, that WikiNG was adding to Redmine. So, this would be a good reason to remove it from my plugin, but its implementations appeared to be too different. Thus, WikiNG also supports custom display text and different formats of user names, what Redmine does not. And, what is more serious, unlike native Redmine implementation WikiNG lists mentions in user profiles and sends email notifications. Therefore, I had no other choice than to leave this feature in WikiNG and make it replace the native implementation. Additionally, I had to implement support for @username, as it’s now supported by native syntax (otherwise this would work without listing mentions in profile and without sending email notifications).

But, WikiNG 1.1.0 also comes with a new great feature, which is related to user mentions: Now, when you are typing a user link in a textarea, the plugin attempts to guess, who you are going to mentions, and suggests a list of appropriate users in a small box. In this way, users can now type a part of, e.g., last name of the user (even just one character) and then select it from the list. No need to remember the user’s numeric identifier or login any longer. Of course, as this feature was just released, it is considered to be beta, what means, that it may have bugs or unexpected behaviour. So, please report any issues, that you find, to make it better. Also, note, that mention autocomplete won’t work for textareas, which do not have the Wiki toolbar (i.e., buttons for formatting).

How autocompletion works

To implement user mention autocomplete I used the great textcomplete plugin for jQuery of Yuku Takahashi.

Also, user mentions got one more small feature: One day, I was about to write a user link displaying the last name of a user and found, that it’s not possible to tell WikiNG to use only the last name in a user mention (except explicitly specifying it as a custom text). So, this is also fixed – now you can write mentions using the syntax user[l]..., where l stands for “last name”.

Besides, in this release I decided to finally replace images of TODO, UPDATE and FIXME markers. I did not like them for a long time. The new images are not perfect (and are very simple), but, I believe, are much better, than the previous ones. I hope you’ll like them (and am still open for any suggestions, as noted on the sidebar).

As it was already mentioned, it was a big delay before this release happened. In particular, this meant, that users of this plugin were not able to upgrade to Redmine 3.x. And, it would be a big problem, if some of its users did not create forks, that contained fixes for recent Redmine versions. That’s what I love open source for – good applications never die, someone surely takes them over (or provides an alternative). Probably, this also means, that WikiNG is a good plugin.

I believe, that the best supported and maintained fork of WikiNG was created by Martin Denizet. As far as I know, that’s the fork, that the majority of WikiNG users switched to (while the original plugin was not updated). So, I want to thank Martin for keeping WikiNG alive! Now, in the case I fail to keep this plugin up-to-date, you know, where to look for its updated version. Besides, I decided to keep a track of known forks – for this I created the dedicated Wiki page Forks (I also added the link to this page on the Wiki sidebar).

Forks of WikiNG also became source of some translations, that are now included into the plugin (its original version). Thus, the Turkish translation was updated for Martin’s fork by Adnan Topçu. Thanks, Adnan! And, I found the Czech translation in the fork by KIV. Looks like it was made by Jan Strnádek. So, thanks, Jan! I hope you don’t mind, Adnan and Jan, that I included your translations into the original package?

One more thing regarding translations: this release also includes an update of the Bulgarian translation, which was submitted directly to the plugin’s issue tracker by Ivan Cenov. Thanks, Ivan! And, sorry for not including it so long.

Finally, for convenience of anyone, who will want to create another fork of my plugin in future, I created a mirror of its code on GitHub. This would also help me track forks, which otherwise (e.g., before this) I need to search manually.

ISSUE-id: ISSUE-id 0.0.2

Added by Andriy Lesyuk over 6 years ago

Download ISSUE-id 0.0.2

Here is, finally, an update of my ISSUE-id plugin, which someone called a “JIRA killer” and which got 9 (at the moment) five-star ratings on the plugin’s page on the official Redmine website (it’s, probably, the best rating among all my plugins). Of course, actually, it’s far from being a “JIRA killer”, I believe, because it’s more experimental, than customer-ready. And, it’s always going to be experimental! I mean it! Every new version of Redmine and every other plugin can potentially break the work of the ISSUE-id plugin, what can result into malfunction of some part of Redmine’s functionality (related to issues, most likely). That’s because this plugin changes very deep things in Redmine. (So, you have been warned!)

Therefore no wonder, that I saw two very negative feedbacks from two disappointed users of the plugin. However, in both cases, it was installed on versions of Redmine, which were not (yet) supported. This makes me repeat in this news, what was written on this project’s Wiki start page: (If you use this plugin ...)

  • Be sure to use ISSUE-id only with supported versions of Redmine! I list such versions on the version page (e.g., see here) and on the project overview page (for the latest stable release).
  • Don’t upgrade your Redmine to recent version, until ISSUE-id gets a version, which support that version of Redmine, or until the current stable version of the plugin is confirmed to work with that version of Redmine! Again, I will try to specify such Redmine versions on the version page and on the overview page. If I did not for some reason, wait or remove ISSUE-id (or look for a well-tested fork).
  • Be ready to get conflicts, if you use other Redmine plugins. This means, that you should test your Redmine installation carefully after installing this plugin and after installing any new third-party plugin. Certainly, if you found any issues, please report them to me (here).

This was a kind of a disclaimer and another caution. I did not want to scare you (I’m, currently, using ISSUE-id on this website, which runs Redmine 2.5.xd, and on my development installation, which runs Redmine 3.3 – and it works stable), but to make sure, that you understand, why I call it experimental, and that you take it seriously. Now, let me tell you, what changes are included into this release.

This is mostly maintenance release, in which I fix all known bugs (not only the ones, which were reported to me directly). The released version was written for, tested under and confirmed to work with Redmine versions 2.5.xd, 3.3..x and 3.4 x. So, it’s quite safe to run ISSUE-id under these versions, assuming that it does not conflict with any other installed plugins, of course.

It’s very helpful, when issue reporters not only report a problem, but also investigate its reasons down to the line in the code, which causes it. And, most of the issues, which are fixed in this release, were investigated in this way by Mikhail Voronyuk, who, actually, did even more – he provided fixes for such issues in his fork, which he hosted on GitHub. Thus, Mikhail managed to fix creating subtask, copying issues, support of ISSUE-id-style references in commits, support of ISSUE-IDs in incoming emails and more. While I did not take fixes by Mikhail as-is, his work helped me a lot and saved a lot of my time. So, thanks to Mikhail! Another thank also goes to Dmitriy Balashov, who helped to investigate the bug with ISSUE-id-style references in commits.

Mikhail was not the only one, who created a fork of my plugin (see also below). Another fork by fryasu helped me to discover more bugs, which were unknown to me (but known to fryasu), and became the source of Japanese translation. So, these bugs are fixed and this translation is included into the plugin thanks to fryasu.

It was a huge delay after the previous release (which was done on August 23, 2014). Sorry for that. Due to this some users of the plugin decided to fix long-outstanding bugs themselves and shared the result, e.g., via GitHub. Moreover, some of such projects come with what can be considered as new features. That’s why I love open source – really useful tools cannot be abandoned, as they get picked up by other developers. So, existence of such forks for ISSUE-id means, that this plugin is useful, what makes me proud of my work.

While I plan to do my best to update this plugin more regularly, I can’t guarantee this. That’s where forks come handy – you can use them until I get time to update the plugin. So, I decided to keep track of active forks and share the list of them with you. I’ll do this on the dedicated Wiki page Forks. I have also added the link to this Wiki page on the Wiki sidebar.

Besides, to make it possible for fork authors to link to the original code I created a mirror for the plugin on GitHub (so, I hope, that I won’t need to search for forks using GitHub’s search like I did to find them till now).

Hooks Manager: Two new hooks in Hooks Manager 1.0.1

Added by Andriy Lesyuk almost 10 years ago

Download Hooks Manager 1.0.1

Since the release of Hooks Manager 1.0.0 Redmine got two new hooks – view_my_account_right_bottom and view_users_form_right_bottom – both are related to the user profile. One of these hooks adds content below preferences in the user’s own profile (better known as “My account”), another one – below preferences on the user edit page (in Administration → Users). Both these hooks are now supported by Hooks Manager.

The location of one of the hooks

These hooks were suggested for Redmine by Johnny Tide. How do I know this?.. Cause Johnny also suggestes to use them in my Contact Form plugin. Moreover, he did updated the Contact Form plugin and shared the patch (see #2208) with me. It’s astonishing, how such an active contributor to Redmine can also be a contributor to my plugin and suggest changes to Redmine, that get also reflected in my other plugin... By the way, as far as I know, he needed these hooks for some other plugin, he developed or contributed to (check also his Github page).

But these hooks are not the only change in Hooks Manager 1.0.1. Thus, they were added in Redmine 2.4.x and the version 1.0.1 of Hooks Manager will also run under Redmine 1.4.x... So, displaying these two hooks for this older version of Redmine would be, at least, incorrect (as users could get confused, why they did not work). So, exactly for such cases I planned to implement support for the require property of the placeholder (see #2211). And I did it in 1.0.1! This way under Redmine 1.4.x you just won’t see new (not-yet-available) hooks...

But the version 1.0.1 also comes with bug fixes.

The view_layouts_base_html_head hook of Redmine, which is known as the only “HTML header” hook (“All pages”) in the Hooks Manager plugin, can be used for loading some additional CSS styles, JavaScript functions, and so on. At the same time Hooks Manager also used it for adding styles! But, while developing it I forgot that a plugin can add only one handler for the hook. So, custom HTML content, that was specified for this hook in Administration → Hooks, did not work...

This issues was noticed by Fabien Crespel. He also investigated this issues, found the reason, fixed it and shared the patch (see #2295)! So, in version 1.0.1 I applied his patch (with some modifications). In other words, this issue is now resolved! Thanks, Fabien!

Another weird issue was found by Christopher Caruk – due to wrong (my) code and Christopher’s specific environment the plugin loaded jQuery functions, but tried to use prototype (older) ones... Now it loads and uses same functions (which exactly – depends on the actual environment and application versions).

Advertising: Advertising with no crashes

Added by Andriy Lesyuk almost 10 years ago

Download Advertising 0.2.1

There was a minor issue with usage of the Advertising plugin under Redmine 2.5.x. And it was quite insignificant – anyway, I have fixed it.

A much more severe issue was that Redmine sometimes crashed, if the plugin was installed! Thus, it crashed, when a big image was uploaded into an advertisement and when an attempt to... copy a project was made.

Both these issues were found by Minh Thien, who also tracked one of them down. Thanks, Minh!

So, the main reason for this release to come are fixes of these two issues.

Project Removal: Just a maintenance release

Added by Andriy Lesyuk almost 10 years ago

Download Project Removal 0.1.1

Currently I’m working on making all my plugins compatible to Redmine 2.5.x (and I’m very close to finishing it). For this I test them under the recent version of Redmine one-by-one. Quite rarely, but sometimes plugins do not need any modification to work under Redmine 2.5.x – i.e., they work without any issues. And the Project Removal appeared to be one of such plugins...

Considering this there were no reasons for this release to happen... But, while testing it I found an old undiscovered bug: When the redirection contained just a message (i.e., no redirection URL), accessing pages of the removed project led to crashes of Redmine. So, I fixed the found bug and made this release.

Like Button: Like 1.0.0 - Twitter's Tweet and +1 of Google for #Redmine

Added by Andriy Lesyuk almost 10 years ago

Download Like Button 1.0.0

Besides Facebook I also have “social representations” in Twitter and Google+ – both of them I also use for promoting my Redmine works. So, certainly, for already a long time I planned to add the Twitter’s Tweet and Google’s +1 buttons to pages of my website (in addition to the Facebook’s Like button). And, finally, this moment came true – I have included these social buttons into the version 1.0.0 of my Like button plugin for Redmine.

Certainly, two more buttons influenced the layout of the plugin settings page:

New layout of plugin configuration

Probably, you will find the new layout a little bit confusing, as it gets changed depending on values of options you modify. But this was done to make configuring easier: thus, it hides the options, the value of which are going to be ignored due to values of other (modified) ones. This way you should not get confused, why the particular setting is ignored.

Configuration options for the Facebook Like button remain same. Two new confugurations for other buttons contain only the “Width” option. This option actually controls the width occupied by the button element and is available only, when the “Main area” location is selected.

The recommended configuration is to enable all buttons and to put them into the main area.

If you wonder, why I used the hash in the news title, try clicking the “Tweet” button below this news...

Some time ago I started using Redmine forums for community discussions on my website (e.g., check the forum for the Like button plugin). And then I wondered, why didn’t I add the like button to forum topics... So, version 0.0.1 fixes this injustice.

As you should already know, it’s recommended to use the Meta plugin along with the Like button plugin in Redmine. That’s because the Meta plugin can provide Open Graph and Twitter Card data, which are used by Facebook, Google+ and Twitter correspondingly. Certainly, with 1.0.0 and Twitter, Google+ buttons it’s even more recommended to use the Meta plugin additionally to the Like button (as the Tweet button will make Twitter use the Twitter Card)! Another reason for the Meta plugin to be used is that the Like button plugin also uses some functionality of the former directly (if the plugin is available, of course) – thus, it uses Twitter accounts, specified in the Meta plugin configuration, for the “Via” option of the Tweet button (see here).

So, be sure to install the Meta plugin (as described here) for the full functionality of the Like button.

I was planning to rename the plugin into “Share button” or something like this, as soon as I add support for other social buttons... But now I think the “Like button” is a great name. After all the Twitter’s Tween button and the Google’s "+1” button are used to like the page! And everybody have used to the “like” term already.

But I have renamed the identifier of the Like button project – it was “redmine-like” and it’s now “like-button” (this is a part of the global rename process). Generally, you do not need to care about this rename unless you use the project’s Subversion repository, the name of which has also changed. And, if you do, you just need to update the remote URL of the repository as follows:

$ svn switch --relocate http://svn.s-andy.com/redmine-like http://svn.s-andy.com/like-button

Meta: Meta 0.2.3 - pretty links and stop words

Added by Andriy Lesyuk almost 10 years ago

Download Meta 0.2.3

Some time ago while checking the content of the META description and keywords tags I noticed, that keywords contained such words as “this” and “that”... Moreover, these “keywords” were shown almost for every page! At that time I understood, that there should have been a stop words list... And, finally, such stop words list comes implemented in Meta 0.2.3.

Stop words are listed in the config/stopwords.list file of the plugin. Feel free to modify it!

Many SEO experts recommend using dashed pretty links in URLs – they claim, that search engines give more importance to the words in such URLs. Despite this Redmine (due to Rails, I guess) uses just numeric identifiers. Not much helpful for SEO, isn’t it?.. So, Meta 0.2.3 switches news and forum topics to such pretty URLs. Thus, you can see this in the URL of this particular news!

Old-style links also work, though.

By the way, till 0.2.3 forum topics did not include Meta description, Meta keywords, Open Graph and Twitter Cards. But, this comes fixed with version 0.2.3!

The Meta plugin uses only the original topic message (the first one) to build Meta tags. Other messages (i.e., replies) are not taken.

Contact Form: Contact form for Redmine 2.5.x

Added by Andriy Lesyuk almost 10 years ago

Download Contact From 0.1.1

To be honest, I never personally noticed the incorrect position of the “Enable contact form” checkbox as described in #2207 and #2208, but I could understand the reason, why this could happen... Normally, I use Redmine hooks to add some elements to a form, but in the case of the user profile such suitable hooks were not available. So, I was forced to use an alternative approach – to add elements using an unsuitable hook and then to move them to the correct position using JavaScript. But, accordingly to some users, this approach used to fail...

Thus, it failed for Johnny Tide... But, Johnny not only investigated the bug and suggested the solution (see #2207), but also requested new hooks for user profiles on Redmine (see issue #14614)! After Redmine guys have complied Johnny’s request he also updated the Contact Form plugin and shared the patch! Thank you, Johnny! Great job! You literally made this release to happen!

Notice, that as a result of the described fix and as a result of switching to Redmine’s hooks, the position of the “Enable contact form” checkbox has changed in 0.1.1 (it was moved to the bottom):

New position of the Enable contact form checkbox

Not much was done for the Contact Form plugin besides Johnny’s work... Thus, I also fixed an issues in rendering the text template for the contact email, which I caught under Redmine 2.5.x.

Project Sections: Project Sections 0.0.2 is now stable

Added by Andriy Lesyuk almost 10 years ago

Download Project Sections 0.0.2

So, I was not wrong adding the “b” to the version number for 0.0.1b... As I expected the plugin was released with many bugs! However, I expected them to be related to some omissions in its complex functionality. And they appeared to be, generally, typos and stupid omissions in the code. Shame on me – I should be more careful when preparing my plugins for release.

But, thanks to Martin Corino, Minh Thien and Nicolas Brisac, who found these typos and omissions, they have been fixed in 0.0.2! Moreover, Martin, Minh and Nicolas investigated the found issues, fixed them and shared the patches! Thank you very much, guys!

This release also comes with the Hungarian translation. Thanks to Ferenc Sagi!

The only feature, that comes with Project Sections 0.0.2 is the support for theming, which is described here.

This version of the plugin was not tested on Redmine 2.4.x!
If you experience issues running the plugin under this Redmine version, please report them.


Also available in: Atom

Terms of use | Privacy policy