fernandokosh / redmine_time_tracker

A time tracker plugin for Redmine
Other
203 stars 141 forks source link

Error in "no timers available" section in _status_transition_list.rhtml partial #18

Closed MischaTheEvil closed 14 years ago

MischaTheEvil commented 14 years ago

Hello,

Lately I've noticed an error in this great plugin (see for my needs Redmine issue 1650 [http://www.redmine.org/issues/1650]) which only shows up when there are no status transitions configured yet.

The issue is located in the _status_transition_list.rhtml partial view on line 19 (http://github.com/delaitre/redmine_time_tracker/blob/master/app/views/time_trackers/_status_transition_list.rhtml#L19) which currently reads: <% if transitions.count == 0 %>

The used count-method does not seem to exist for a hash object (see e.g. http://ruby-doc.org/core/classes/Hash.html#method-list) which results in an error like this:

Processing SettingsController#plugin (for 192.168.1.2 at 2010-05-06 12:49:21) [GET]
  Parameters: {"action"=>"plugin", "id"=>"redmine_time_tracker", "controller"=>"settings"}
Rendering template within layouts/admin
Rendering settings/plugin

ActionView::TemplateError (undefined method `count' for {}:Hash) on line #20 of vendor/plugins/redmine_time_tracker/app/views/time_trackers/_status_transition_list.rhtml:
17:             </thead>
18: 
19:             <tbody>
20:                 <% if transitions.count == 0 %>
21:                     <tr class="odd">
22:                         <td class="msg" colspan=<%= edit_allowed ? "4" : "3" %>><%= l(:time_tracker_settings_no_transition) %></td>
23:                     </tr>

    vendor/plugins/redmine_time_tracker/app/views/time_trackers/_status_transition_list.rhtml:20:in `_run_rhtml_vendor47plugins47redmine_time_tracker47app47views47time_trackers47_status_transition_list46rhtml_locals_object_status_transition_list_transitions'
    vendor/plugins/redmine_time_tracker/app/views/settings/_time_tracker.rhtml:19:in `_run_rhtml_vendor47plugins47redmine_time_tracker47app47views47settings47_time_tracker46rhtml_locals_object_settings_time_tracker'
    app/views/settings/plugin.rhtml:6:in `_run_rhtml_app47views47settings47plugin46rhtml'
    app/views/settings/plugin.rhtml:4:in `_run_rhtml_app47views47settings47plugin46rhtml'
    passenger (2.2.5) lib/phusion_passenger/rack/request_handler.rb:95:in `process_request'
    passenger (2.2.5) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
    passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:378:in `start_request_handler'
    passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:336:in `handle_spawn_application'
    passenger (2.2.5) lib/phusion_passenger/utils.rb:183:in `safe_fork'
    passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:334:in `handle_spawn_application'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:163:in `start'
    passenger (2.2.5) lib/phusion_passenger/railz/application_spawner.rb:213:in `start'
    passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
    passenger (2.2.5) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
    passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
    passenger (2.2.5) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
    passenger (2.2.5) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
    passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
    passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
    passenger (2.2.5) lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    passenger (2.2.5) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

Rendering /var/www/virtual/redmine-trunk.tst.network.lan/public/500.html (500 Internal Server Error)

This happens on a checkout of the Redmine trunk @ r3737 running on Ruby Enterprise Edition with Phusion Passenger, powered by Apache and MySQL, on a RHEL4 Linux derivative OS.

It can be easily fixed by changing the mentioned line 20 to:

<% if transitions.empty? %>

I'll apply this patch to my fork so it's easy for you to apply it when approved...

Kind regards,

Mischa

delaitre commented 14 years ago

Well, my stupid mistake! Thanks for the fix and the other patches. I pulled everything.