summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/time_entry_query.rb7
-rw-r--r--app/views/timelog/index.html.erb2
-rw-r--r--test/functional/timelog_controller_test.rb6
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