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:


Hooks Manager: Two new hooks in Hooks Manager 1.0.1

Added by Andriy Lesyuk over 3 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 over 3 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 over 3 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 over 3 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 over 3 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 over 3 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 over 3 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.

Sidebar Content: Sidebar 0.1.2 - a maintenance release

Added by Andriy Lesyuk over 3 years ago

Download Sidebar Content 0.1.2

The Sidebar Content plugin 0.1.1 appeared to work just fine under Redmine 2.5.x, except one issue:

In version 2.5.x (or 2.4.x?) Redmine changed the default policy of rendering the sidebar – before, it was rendered, if the content for the sidebar was specified in the template file, since 2.5.x it also gets rendered, if the content is provided through hooks. And as the Sidebar Content plugin uses these hooks to inject the content into the sidebar – the sidebar got rendered (unless disabled for the page using the Location option) despite the per-project and/or global sidebar visibility configuration (that can be specified in Settings → Sidebar → Sidebar visibility of the project and Administration → Sidebar correspondingly)!

So, this is a maintenance release, that makes Sidebar Content work properly with Redmine 2.5.x...

Another issue, that gets fixed with the Sidebar Content 0.1.2, was that the Sidebar menu item in Administration did not get selected, when you opened this menu item.

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.

Red-Andy: Red-Andy 1.00 becomes responsive and blogish

Added by Andriy Lesyuk over 3 years ago

Download Red-Andy Theme 1.00

There were two motives for this release to happen – the wish to make my website readable on mobile devices and the wish to launch a blog with the Red-Andy theme. Both wishes used to seem unrealizable, but finally both of them come implemented in Red-Andy 1.00!

The mobile view of the project

Red-Andy becomes responsive

I used to check some information on my website using my Samsung bada-powered smartphone. That is, I was trying to – as, in fact, I found it intolerable! That’s why I decided to try making Red-Andy responsive. It’s was not easy and involved some hacks, but finally I did it! Now I do can check my site from my smartphone.

To be honest, it’s not perfect. To be even more honest, it has many issues! But, at least, with Red-Andy 1.00 the vast majority of Redmine pages can now be comfortably read on your mobile devices.

Check this page for more screenshots of mobile screens.

Red-Andy becomes blogish

Long time I planned to launch a blog. And, finally, I did it recently! To have the look and feel of my blog consistent with the look and feel of my Redmine I developed the RedWord theme for WordPress, that acts as the compatibility layer between WordPress and Redmine themes. So for my WordPress I use the same Red-Andy theme!

But, as you might know, the design of a blog differs a bit from design of rest application types (including project management tools). Thus, usually it’s more reading-oriented. I noticed this quite well, when I started to use the (old) Red-Andy theme for the blog, so finally I decided to make Red-Andy more blogish...

Starting from Red-Andy 1.00 news and (partially) Wiki pages have more blog-like look and feel – i.e., they use the different font (Georgia), their headings are neater, and so on. At least, I personally find the new style more suitable for reading. This news, by the way, is a great example of the new design.

The same style is used for blog articles under RedWord/WordPress.

Red-Andy just becomes better

The last release of the Red-Andy theme (0.02) was done more than 2 years ago, so certainly a few updates were made to the theme since then. These updates include bug fixes (#1924, #2048, #2058, #2195 etc) and improvements:

  • The diff view (that shows changes made to the code, e.g., this page) can contain gaps – skipped parts of the code. In 1.00 such gaps get new style:
    Diff view for application.css
  • Style definitions for issue priorities are now more accurate, as they use right CSS classes, that were introduced in recent Redmine versions.
    The colored issue list

WikiNG: Breaking features in WikiNG 1.0.0b

Added by Andriy Lesyuk over 3 years ago

Download WikiNG 1.0.0b

User links are good, but what is the real effect of them? Why are they useful? Alright, they give the link to the user profile (which you should already know to be able to write the link), but, so what?.. When I was working on user links, I thought, that it would be great, if mentioned users were immediately notified about the mention... And that’s the first breaking feature, that comes with WikiNG 1.0.0b!

Mentions tab

As soon as you write the Wiki rule for the user link and save the content, the notification gets sent to the mentioned user. In this email message the mentioned user can see the link to the Redmine object, in which you have mentioned him/her, so the user can react immediately just by following this link. And if you mentioned him/her in, e.g., an issue comment, the user can click the Quote icon and the user link to you profile will be automatically inserted into his/her response. So you will also be notified, when the mentioned user replies. If, however, you (or the mentioned user) disable email notifications, you will still be able to check all mentions under the new Mentions tab, that can be found in your public profile (for example check mine here or the image to the right)!

I guess you rarely use Redmine Wiki macros (that look like {{macro}})... I personally use native Redmine macros rarely. The concept of these macros was designed to let developers extend the Wiki syntax easily. But who needs this concept, if the more natural Textile-like syntax can be added instead (thus, I added {TODO} in WikiNG, and not {{todo}} macro)?.. This concept would, perhaps, work, if to utilize it you were not required to be a developer! Anyway, I’m going to check this, as WikiNG 1.0.0b comes with another breaking feature – the possibility to create custom Wiki macros using just the Redmine administrator web interface (Administration → Custom Wiki macros)!

Custom Wiki macros in Administration

With custom WikiNG macros you can configure, what HTML code should be rendered in place of the Wiki macro rule. As macros support arguments and content (see here) you can also use variables in the HTML code, which will be replaced with argument values (check details here). This, certainly, makes this feature extremely flexible. Thus, you can create macros for inserting YouTube videos, AdSense ads, styled text blocks and much more. Generally speaking, WikiNG custom macros can be used to replicate most of the standard Textile rules and even most of the WikiNG Textile extensions. But the best things is that with this feature you can easily create your own specific and (possibly) much needed Wiki syntax extensions, that would unlikely be developed by someone in a plugin!

I also created the special forum for sharing custom Wiki macros of the comminity.
The WikiNG custom macros can potentially have issues with removing and renaming. Thus, possibly, sometimes removed/renamed macros can continue working. Anyway, it’s not actually recommended to remove/rename macros (as this may require restart), but I did not want to forbid these possibilities.

If you have used the native Redmine footnote syntax, you probably have noticed issues related to its usage... Thus, when you need to update a Wiki content and to add a footnote to it, you also need to increase all subsequent footnote numbers! I believe, that it’s wrong as these numbers should be generated dynamically... And that’s one more feature, that comes with WikiNG 1.0.0b!

New WikiNG footnote syntax resembles the one of DokuWiki (and, perhaps, of many other Wiki systems) – you just need to put your footnote inline into double parentheses1 and WikiNG will automatically generate the index number for it! Besides the inline position of the footnote code in the text helps keeping the context and understanding its meaning.

The new footnote syntax does not conflict with the native Redmine’s one.

Among other interesting features in WikiNG 1.0.0b are:

  • Support for smart quotes → for example, check “this text”.
  • Support for format in user links → thus, user[f]#1 gives th first name: Andriy.
  • New icons (v) and (x) and .
  • New {BETA} marker →
  • And others.

Why beta?

No, not just to demonstrate the new marker! Support of mentions required a lot of changes, smart quotes can do a lot of mess (and their previous revision, actually, used to) etc – all these makes me think, that bugs are possible, while I’m not aware of any...

1 with no space before it

1 2 3 ... 8 (1-10/73)

Also available in: Atom

Terms of use | Privacy policy