News
Extended Fields: Bug fixes, improvements and Redmine 2.3
Download Extended Fields 0.2.2
Support for the recent Redmine version, which is 2.3.x, was added to the Extended Fields plugin some time ago. But the release of the new version was not made... I was busy on other projects, so I just added a note, that the plugin supporting Redmine 2.3 can be fetched through SVN. Anyway the release was to be made and, finally, I got ready to do this!
So the main change in 0.2.2 is support for Redmine 2.3.x.
In addition this release also comes with support for ChiliProject 3.x, which accidentally got broken in 0.2.1.
The Extended Fields plugin is one of the most complicated plugins, I developed for Redmine. It’s because it needs to change a lot in the Redmine core and, therefore, can break a lot... I would stick an “experimental” stamp image on its home page, if the plugin was not such old (too late for it to become experimental). Anyway, it works fine! But... bugs appear, and they are a lot (compared to my other plugins).
So, certainly, this version comes with a lot of bug fixes. They include: fix for multi-select custom fields (#2176 and #2177), fix for custom field templates loading (#2172), fix of duplicate issue IDs (#2187), fixes for crashes (#2153, #2164, #2175 and #2182) and more. Luckily the plugin has grown a large community and I was not alone in bug fixing – many guys helped me! Thus, Dipan Mehta made a deep research of and suggested a fix for #2176, the similar was done by Eric Mills for #2177, Domingo Oropeza suggested a fix for #2153, very similar fix for its duplicate #2182 was suggested by Gregory, Alexandr Gremyachkin suggested a fix for a complex issue #2172 and Bruno Spyckerelle suggested a fix for #2187. Thank you, guys! Sorry, if I missed someone or someone’s contribution.
Traditionally this version also comes with a new translation and an update to the existing translation. Thus, Pierre-Yves Dubreucq supplemented the French translation (#2174) and Riccardo Rocca submitted the Italian translation (#2185). Thanks!
In addition to the above this release also comes with improvements, some of which can be considered to be new features...
Thus, all text fields in the project form now get the equal width, which is wider than before. This way you now have more space for values of project custom fields.
With this release I also intended to show you how voting and/or watching may help you get your favorite issue to be fixed sooner. Thus, I chose the issue with the highest number of votes and watchers and resolved it in this version.
This way 0.2.2 makes Redmine show custom fields of the “Date” type on the calendar (see #2139). Currently the plugin shows all issue, project and version custom fields and only on the project calendar (i.e., not in my page’s block).
And, finally, rich custom fields (like, custom fields of the “Wiki text” type) are now rendered rich in columns on the issue list page as well. This, of course, can also be considered to be a bug fix.
As it has been mentioned above the Extended Fields plugin interposes so deeply into Redmine, that it just can’t avoid conflicting with other plugins!..
Thus, this plugin overrides the project list (to add custom columns), what is also done by my other plugin – Project Removal. So this version also includes code to show the Project Removal’s Redirect button in the project list, if the latter plugin is istalled. This change does not affect installations, which do not use prject:project-removal.
I have also developed another plugin, which is so complicated and interposes so deeply, that it even includes the “experimental” stamp on its home page. It’s the ISSUE-id plugin! So no wonder, that these plugins conflicted... As both overrode the same issue list page. Therefore, to prevent the conflict the Extended Fields plugin also includes some code to support ISSUE-id.
Advertising: Advertising with Redmine 2.x
This is my last already released active plugin, which finally got support for Redmine 2.x (there is also Project Settings, which I have abandoned, and 5 other plugins, which have not been released yet). So, in other words, this is a big milestone, which makes all of my Redmine plugins up-to-date (so you can congratulate me)! Henceforth I will do my best not to let them get so much outdated again...
So, as I have said, this release comes with support for newer Redmine versions, which are 1.4.x (currently used by stable Debian and Ubuntu), 2.0.x, 2.1.x, 2.2.x and 2.3.x. These are the main reasons for this release to happen. But there are also others:
I used the Reklama plugin, in particular, to advertise my book about Redmine. Then googling for the book (e.g., reviews) I figured out, that most of search results are pointing to pages of my own site and to that ad... Needless to say that it was an awful effect! So it became clear, that ads must be made hidden from search engines in some way. I investigated several options (see #2146) but JavaScript ads appeared to be the best workaround. So since version 0.2.0 all ads are added to pages using JavaScript. This deployment method has another advantage – your ads will be shown only to clients with JavaScript enabled, what means, that no bots will see your ads any more, i.e., number of hits will more likely contain the number of times the ad has been actually shown to humans.
Another new feature is related to the issue #1847, in which Pierluigi Soana requests an icon to be added to the top menu. This was implemented as support for Redmine themes. Thus the icon is added in the classic.css
file, which gets loaded only, when the Classic theme is enabled in Redmine. The similar was implemented in the red-andy.css
for my Red-Andy theme – this file makes ads in the list (which becomes available, when you click “Advertisement” in the top menu) look like they were on the sidebar.
In addition this release comes with the Portuguese and Turkish translations (thanks Mario Luzeiro and Ismail SEZEN) and some other small bug fixes.
If you used the SVN repository of the project, you need to update the SVN repository path as it has been changed (along with the identifier of this project):
$ svn switch --relocate http://svn.s-andy.com/redmine-advertising http://svn.s-andy.com/advertising
Meta: Meta 0.2.2
Meta is one of those plugins, which need to modify very core view files to provide their functionality. In particular this plugin modifies the layouts/base
view file, which is used for every HTML view of Redmine. In Redmine world, though, it’s assumed to be a bad practice to modify files like these, but, unfortunately, I had no other choice.
It’s a bad practice because view files like layouts/base
can be changed in new versions of Redmine, what can end up with plugin’s view files and core view files conflicting. This happenned to the Meta plugin and Redmine 2.3.x – the plugin was making the application inoperative. So the very main feature of Meta 0.2.2 is support for Redmine 2.3.x!
To get the content for the Meta description the plugin just truncates the textual content associated with the page. Usually this is a Wiki content (e.g., Wiki-enabled description for issues). There were no issues with this in the pure Redmine, but some third-party plugins, which extended the Wiki syntax, appeared to produce errors. Thus, the Wiki Extensions plugin used to add errors into the Meta descroption (see #2188). So version 0.2.2 also does its best to avoid having such errors in the Meta description.
To be able to generate the Meta description for news and Wiki pages the plugin adds two new hooks (a kind of function calls) to corresponding views (files). The version 0.2.2 of the plugin also makes these hooks available in the Hooks Manager, if this my other plugin is installed. This way you will be able to use these hooks for adding custom content to news and Wiki pages.
Hooks Manager: Meet the reborn Google Ads plugin named Hooks Manager
To be honest, actually this plugin never was just about Google ads... The name was completely wrong, very confusing and limiting – I understood this soon after the release of the version 0.0.1 of the plugin. In fact the plugin allows much more than just adding ads – using it you can largely customize your Redmine. So I planned to rename this plugin a long time ago. And finally I did this!
Unfortunately the rename implies some minor troubles for users of the previous version of the plugin... Thus, in order to update the plugin you need to remove the folder with its previous version (but, please, don’t run the uninstallation migration) and install the new one as a completely new plugin! Largely this is required because the internal plugin name (which was sense
) has also changed (to hooks_manager
). Luckily the new version comes with the migration script intended for moving data from the previous version to the new one. Check also this section for more details...
Another problem of the previous version was its UI, which displayed the list of hooks as a static drop down list. Adding all available hooks would make this list large and, therefore, less readable. So new version comes with an improved and friendly UI allowing to change the way hooks are displayed (first by pages, then by location, or vice verse) and to hide extra hooks (ones, which are unlikely to be used commonly).
Certainly due to UI improvements the version 1.0.0 comes with all native hooks of Redmine (ones, which can be used to add custom HTML). In total the plugin currently comes with support for 41 hooks (however by default most such hooks are not visible and should be made available by clicking on the “Show all hooks” checkbox).
In addition the plugin can now load hook definitions from other plugins. So, if an other plugin supports the Hooks Manager, its hooks will be available in the list as well.
If you are developer of a Redmine plugin, check this page on how to register your custom hooks in the Hooks Manager.
Version 1.0.0 also comes with its own special hook :view_wiki_inline_content
intended to be used in the Wiki content (e.g., Wiki page) with help of the !{{inline_hook}}
Wiki macro. The design of this hook (and the macro) was greatly influenced by Google ads. Thus, the Wiki macro supports optional arguments in the format name=value
. If specified, such arguments get transparently converted into JavaScript variables and, therefore, become available in the HTML/JS content. See the following page for a sample and cautions.
This version is not yet fully ChiliProject ready while it works fine under it. Thus, the plugin does not check, if the hook can be used by ChiliProject, and the
!{{inline_hook}}
Wiki macro is not compatible with ChiliProject’s Liquid.The above mentioned change of the name introduces another trouble for those of you, who uses the SVN repository of the project, as the repository name has also changed! Anyway you will probably prefer to check it out to a new directory, as the plugin’s directory name also changed. If not, you will need to execute the following command to fix the repository URL:
$ svn switch --relocate http://svn.s-andy.com/redmine-google-ads http://svn.s-andy.com/hooks-manager
Like Button: Update for the Facebook change
Recently Facebook slightly altered the way the Like button should be generated. I do not know the details but Like buttons on my website disappeared at that time. And then I found, that it happenned due to (additional?) URL escaping, which was made redundant. This URL escaping was removed in 0.1.1.
P.S. Additionally I figured out, that localhost based links also stopped working for the Like button (just no button is rendered). It’s no way critical – just it has been a funny thing, that I will miss...
This is the case, which demonstrates, how important is it to subscribe to project news. As in this case this release does not just come with new features and/or support for new Redmine\ChiliProject but it comes with the fix to the previous versions of this plugin. This is the rare case, when even outdated versions under outdated Redmine installations stop working!
The fix actually was released soon after Facebook changed their Like button API and a note was added to the project overview page. And only now this released happenned. Till this time the only option to get Like buttons back was to update the plugin from the SVN repository. But my SCM Checkouts plugin (which will be released soon) shows, that not many checkouts/exports were done during this period. What in turn means, that people just did not know about the issue (I personally figured this out not immediately too).
Even this news won’t be immediately read by everyone, who uses the plugin... As most of people won’t know immeduately, that this news has been posted.
Therefore to know such things as soon as they become known to me please subscribe to the project using the Subscription block on the sidebar. I don’t use this subscription to send anything besides what you requested.
Project Removal: Moving projects out of Redmine 2.x
Download Project Removal 0.1.0
The Project Removal plugin has been finally ported to Redmine 2.x, i.e., version 0.1.0 of this plugin will now run fine on Redmine 2.0.x, 2.1.x, 2.2.x and 2.3.x. This version also supports Redmine 1.0.x and 1.4.x.
This plugin is intended for projects, which were moved to another location and/or for which you would like to specify the reason for being removed. To achieve needed results the plugin integrates into the Redmine project archiving functionality. Thus archiving a project you gain the possibility to redirect users, requesting pages of the project, to another URL (even to URL of another Redmine) and/or to show some message to them.
Fortunately the new release is not only about supporting recent Redmine versions but also comes with some important improvements:
The main improvement is the switch to the 301 HTTP status code (Moved Permanently) in cases, when the redirection delay is equal to zero. This is recommended by search engines for SEO purposes. Unfortunately in this case the redirection message will be ignored (but it would not be seen anyway).
Other improvements include the redirection settings being removed, when the project gets unarchived.
Happy removing!
P.S. I clearly understand, that not being updated for this long period the plugin probably have lost its users (and this new release means gaining new users mostly). Sorry for not updating it so long!
With this release and accordingly to earlier announced plans the identifier of the project has been changed (from redmine-removal
to project-removal
). In most cases this means nothing for end users (as for renaming I used the Project Alias plugin). But in the case you used the project SVN you need to update the repository URL of your local copy using the following command:
$ svn switch --relocate http://svn.s-andy.com/redmine-removal http://svn.s-andy.com/project-removal
Project Alias: 0.1.0 with Redmine 2.x support
The previous version of the plugin was marked “beta” as I was not sure, that it worked fine in all cases. I’m still not sure, that it does, but, at least, no one reported any serious issue. So version 0.1.0 is now considered to be stable.
Of course, the main “feature” of the plugin is support of new Redmine versions 1.4.x – 2.3.x (yeah, I did not update the plugin for a long). Yet still there are fixes, which make version 0.1.0 of the plugin better and more stable:
Thus, I got the feeling, that it was not right to allow removing previous identifiers (which have become aliases). Redmine does not allow changing project identifiers for a reason! For example, this reason can be saved URLs, which still contain an obsolete identifier. So 0.1.0 marks aliases, which have been identifiers, as undeletable.
Also I learned, that aliases (and, especially, previous identifiers) do not work in Wiki pages. This becomes a real problem, if you used an obsolete identifier in Wiki syntax, as after renaming the project identifier you would need to update all Wiki pages with such syntax! And there can be a lot of... So 0.1.0 adds support for project aliases in the Wiki syntax – i.e., you can now use aliases as active project identifiers there.
In addition, version 0.1.0 supports underscores in identifiers under ChiliProject (thanks Alexander Leisentritt for discovering this issue) and comes with Italian, Portuguese and Turkish translations (thanks user#197, user#124 and user(Ismail Sezen)#107).
The main reason for writing this plugin (despite the name) was the idea to rename my project identifiers (mainly to remove redmine-
, see this news)... But for some reason I chose the wrong identifier (i.e., with redmine-
) for this plugin as well. I guess I just wanted to test it! And I did... Renaming works! And the identifier of this project has been renamed. Along with it the SVN repository has been renamed... So to be able to access the SVN repository of this project you need to execute:
$ svn switch --relocate http://svn.s-andy.com/redmine-alias http://svn.s-andy.com/project-alias
Where:
redmine-alias
– old identifier.project-alias
– new identifier.
If you want to be notified about further changes in this plugin, subscribe to this project using the form on the sidebar. Subscription (provided by my another plugin) is not the same as watching! If shortly: you can watch existing objects only and subscription notifies about new objects.
You may also need to check the Mastering Redmine project. This project is for a book about Redmine, that I have written recently.
Contact Form: 0.1.0 without "b" and not only...
The version 0.1.0 of the Contact form plugin misses a lot... really a lot!.. compared to 0.0.1b.
In the version 0.1.0 you won’t see... the “b” at the end of the version number. You won’t also see issues on recent Redmine versions (up to 2.3.x). You won’t miss the Contact us link, if you use ChiliProject 3.x (check the screenshot to the right). What you won’t see as well are... untrunslated strings, if you speak German, French, Portuguese, Polish, Korean and Turkish (thanks Romain Schmitz, Romain Georges, Mario Luzeiro, Pawel Orzechowski, Ki Won Kim and Ismail SEZEN for translating the plugin!)...
But perhaps the main thing you will miss... and I’m really sorry for that... is the “Project” field in the contact form. But why in hell did I remove it?.. Well... I don’t think, that everyone needs this field... And what is not needed by everyone should be configurable.
Soon after 0.0.1b I released my new Extended Fields plugin. This plugin (among other features) adds new custom field types... And among new custom field types there is the “Project” type! I.e., if you need the “Project” field back, just add it as a custom field of the “Project” type!
What else you can miss is... SVN access! Since the release of 0.1.0 you won’t be able to access the plugin’s repository using... old URL. This happened because I changed the identifier of the project. So you will need to update your SVN local repository to get access back:
$ svn switch --relocate http://svn.s-andy.com/redmine-contact http://svn.s-andy.com/contact-form
If you miss news for this plugin, you can subscribe to them using the form on the sidebar, which is provided by my new Subscription plugin...
If you lack experience in Redmine, you can buy and read my book.
Like Button: New Like 0.1.0, like new
This version changes the default settings of the Like button. Usually, you should not care though... You should, if you have not saved the configuration of the button and it uses the default settings. Thus, if your configuration is:
- The button is shown on the sidebar;
- The button does not include faces;
- The text on the button is “Like” or similar text in other languages;
- The button uses the light color scheme.
It can be, that the plugin still uses the default settings... In this case to preserve them you need to go to Administration → Plugins → Configure (to the right from the “Like button” title) and just click “Apply”. This should be done before the upgrade!
Earlier this plugin was coming with 6 modified core view files! So you needed either to use them or to remove them and patch core view files on your own... Luckily previous versions of Redmine were much similar, so pre-patched view files were not too complicated to maintain. But things changed with Redmine 2.x.x.
Recent versions of Redmine are too much different! Maintaining pre-patched view files appeared to be a huge headache – some files were impossible to make compatible with all versions, so I needed to keep copies of these files for different versions (as for the Meta, see here). This way the installation of the plugin were going to be quite complicated. So I needed a better solution.
And I found it – it’s JavaScript! Instead of adding hooks to the places, where the “Like” button should appear, now I add the button, where I’m able to, and move it to the right place using JavaScript!
This way I succeeded to drop 5 pre-patched files. But one file still remains... It’s the news index page. Luckily it’s not critical to have the “Like” button on this page. Therefore, to enable the button there you need to patch the corresponding core view file manually:
- Copy
app/views/news/index.html.erb
(orindex.rhtml
on older Redmine and ChiliProject) into theplugins/like/app/views/news
directory. - Add:
<%= call_hook(:view_news_index_left, :news => news) %>
- After:
<div class="wiki"> <%= textilizable(news, :description) %> </div>
See also this page.
If you don’t do this, the button won’t appear on the news list page (so it’s safe to leave things as they are).
This version also includes translations:
- Japanese – thanks Kazuki Tsuchiya;
- Portuguese – thanks Mario Luzeiro;
- Bulgarian – thanks Ivan Cenov;
- Turkish – thanks Ismail Sezen.
Taking the opportunity I also want to mention, that I plan to rename this plugin to something like “Social buttons” as soon as I add support for at least one other social network (see #1782).
I believe, that the Like button plugin should always be installed with the Meta plugin. The latter makes the liked page look much more nicer in Facebook! But the latter recently also introduced support for the Facebook Open Graph protocol, what makes Redmine pages handled by Facebook even better. See the appropriate news of the Meta plugin.
In fact, the Meta was initially written especially for the Like button plugin. But I believe, that the work done by the Meta plugin is so important that I even review it as an essential plugin in my recently published book “Mastering Redmine”. You can find more details about this book here as well as here (the project dedicated to the book).
One of the next versions of this plugin is going to include other sharing buttons for other social networks. Consider subscribing to this project using the subscription form on the sidebar to catch that moment.
Download Button: Old and new download buttons in 0.1.0
Download Download Button 0.1.0
As you know the “Download” button can be generated using the {{download}}
macro, which supports the version
argument. This way you can put the “Download” button for a version into, e.g., news. However, I found it confusing, that the button for an older version looked the same as for the recent version... Really, how do users know, that a button points to the actual version of the project? Therefore, since 0.1.0 buttons for outdated versions will have new look and feel (defined by the old-version
CSS class).
Download previous version 0.0.3
The previous version of the “Download” button came with the pre-patched view file for the new file form (for displaying warnings). In 0.1.0 I refactored this code, so patching the core view file is not needed anymore!
But the main feature of this release is that it finally comes with support for Redmine 1.4.x, 2.0.x, 2.1.x and 2.2.x.
My colleague in Kayako accidentally discovered a bug by simply removing the file, which was explicitly associated with the “Download” button. After that every project page, which comes with the button, was giving the 500 internal server error. This release comes with the fix for this awful bug.
The release also comes with Turkish and Korean translations submitted by Ismail Sezen and Ki Won Kim correspondingly. Thanks, guys!
Hence I will try to keep this plugin up-to-date and compatible with recent versions of Redmine. So, if you are interesting in future updates of this plugin, consider subscribing to it using the subscription form on the sidebar (you will be receiving nothing but the selected project updates, if you do).
Long time I worked on the “Mastering Redmine” book, which can now be purchased, for example, here. I have also created this project on my website to support readers of the book. Besides submitting errata this project allows to check the table of contents and the sample chapter.
Also available in: Atom