]> source.dussan.org Git - redmine.git/commitdiff
Merged r16924 and r16925 (#26520).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 15 Oct 2017 11:17:33 +0000 (11:17 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 15 Oct 2017 11:17:33 +0000 (11:17 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.4-stable@16989 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/time_entry_query.rb
app/views/timelog/index.html.erb
test/functional/timelog_controller_test.rb

index ee15699f44cc239985bfa504f27ef5f0932b048c..d73a0e6b5949b88daba0523506043d2dc124995e 100644 (file)
@@ -112,6 +112,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).
index 0932c58ae6dc36823c099d1bc746992b76b99f15..f777dac308503030be6936ac156ad87b53fa4685 100644 (file)
@@ -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>
 
index 89b1ccfcf2347270546a1d283ad9f3149e8bc04e..8d3804e5e961e79351d0c6566e1c41a4df6d4335 100644 (file)
@@ -725,6 +725,8 @@ class TimelogControllerTest < Redmine::ControllerTest
   end
 
   def test_index_at_project_level
+    @request.session[:user_id] = 2
+
     get :index, :params => {:project_id => 'ecookbook', :c => ['project']}
     assert_response :success
 
@@ -736,6 +738,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
@@ -770,6 +775,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