diff options
-rw-r--r-- | app/models/time_entry_query.rb | 7 | ||||
-rw-r--r-- | app/views/timelog/index.html.erb | 2 | ||||
-rw-r--r-- | test/functional/timelog_controller_test.rb | 6 |
3 files changed, 14 insertions, 1 deletions
diff --git a/app/models/time_entry_query.rb b/app/models/time_entry_query.rb index 600909dfd..bc7ef3b18 100644 --- a/app/models/time_entry_query.rb +++ b/app/models/time_entry_query.rb @@ -113,6 +113,13 @@ class TimeEntryQuery < Query [['spent_on', 'desc']] end + # If a filter against a single issue is set, returns its id, otherwise nil. + def filtered_issue_id + if value_for('issue_id').to_s =~ /\A(\d+)\z/ + $1 + end + end + def base_scope TimeEntry.visible. joins(:project, :user). diff --git a/app/views/timelog/index.html.erb b/app/views/timelog/index.html.erb index 0932c58ae..f777dac30 100644 --- a/app/views/timelog/index.html.erb +++ b/app/views/timelog/index.html.erb @@ -1,6 +1,6 @@ <div class="contextual"> <%= link_to l(:button_log_time), - _new_time_entry_path(@project, @issue), + _new_time_entry_path(@project, @query.filtered_issue_id), :class => 'icon icon-time-add' if User.current.allowed_to?(:log_time, @project, :global => true) %> </div> diff --git a/test/functional/timelog_controller_test.rb b/test/functional/timelog_controller_test.rb index 37c584472..7672dafb4 100644 --- a/test/functional/timelog_controller_test.rb +++ b/test/functional/timelog_controller_test.rb @@ -771,6 +771,9 @@ class TimelogControllerTest < Redmine::ControllerTest assert_select '.total-for-hours', :text => 'Hours: 162.90' assert_select 'form#query_form[action=?]', '/projects/ecookbook/time_entries' + + # 'Log time' shoudl link to log time on the filtered issue + assert_select 'a[href=?]', "/projects/ecookbook/time_entries/new" end def test_index_with_display_subprojects_issues_to_false_should_not_include_subproject_entries @@ -805,6 +808,9 @@ class TimelogControllerTest < Redmine::ControllerTest get :index, :params => {:project_id => 'ecookbook', :issue_id => issue.id.to_s, :set_filter => 1} assert_select '.total-for-hours', :text => 'Hours: 7.00' + + # 'Log time' shoudl link to log time on the filtered issue + assert_select 'a[href=?]', "/issues/#{issue.id}/time_entries/new" end def test_index_at_project_level_with_issue_fixed_version_id_short_filter |