33class TimerSessionsController < TrackyController
44 def index
55 @timer_sessions_in_range = TimerSession . includes ( :time_entries , :timer_session_time_entries , issues : :project )
6- . finished
7- . created_by ( User . current )
6+ . finished . created_by ( User . current )
87 @non_matching_timer_session_ids = TimeDiscrepancyLoader . uneven_timer_session_ids ( @timer_sessions_in_range )
98 set_timer_sessions
109 @timer_offset = offset_for_time_zone
@@ -25,10 +24,7 @@ def time_entries_in_range(timer_sessions)
2524
2625 def rebalance
2726 @timer_session = user_scoped_timer_session ( params [ :id ] )
28- TimeRebalancer . new (
29- @timer_session . relevant_issues . map ( &:id ) ,
30- @timer_session
31- ) . force_rebalance
27+ TimeRebalancer . new ( @timer_session . relevant_issues . map ( &:id ) , @timer_session ) . force_rebalance
3228 flash [ :notice ] = l ( :notice_successful_update )
3329 redirect_to timer_sessions_path
3430 end
@@ -55,20 +51,20 @@ def continue
5551 timer_session_template = user_scoped_timer_session ( params [ :id ] )
5652 linked_issues = timer_session_template . relevant_issues
5753 new_timer_session = timer_session_template . dup
58- new_timer_session . update ( timer_end : nil ,
59- finished : false ,
54+ new_timer_session . update ( timer_end : nil , finished : false ,
6055 timer_start : ( User . current . time_zone || Time . zone ) . now . asctime )
6156 IssueConnector . new ( linked_issues . map ( &:id ) || [ ] , new_timer_session ) . run
6257 redirect_to timer_sessions_path
6358 end
6459
6560 def update
6661 @timer_session = user_scoped_timer_session ( params [ :id ] )
67- if @timer_session . update ( timer_session_params )
68- TimeRebalancer . new ( timer_session_params [ :issue_ids ] ,
69- @timer_session ) . rebalance_entries
62+
63+ if @timer_session . update ( timer_session_update_params )
64+ TimeRebalancer . new ( selected_issue_ids || @timer_session . relevant_issues . map ( &:id ) , @timer_session )
65+ . rebalance_entries
7066 flash [ :notice ] = l ( :notice_successful_update )
71- render_js ( @timer_session . valid? ? :update_redirect : :update )
67+ render_js ( :update_redirect )
7268 else
7369 render_js :update
7470 end
@@ -95,11 +91,18 @@ def user_scoped_timer_session(id)
9591 TimerSession . where ( user : User . current ) . find ( id )
9692 end
9793
94+ def selected_issue_ids
95+ return timer_session_params [ :issue_ids ] . reject ( &:blank? ) if timer_session_params . key? ( :issue_ids )
96+
97+ Array . wrap ( timer_session_params [ :issue_id ] ) . reject ( &:blank? ) if timer_session_params . key? ( :issue_id )
98+ end
99+
98100 def timer_session_params
99- params . require ( :timer_session ) . permit ( :comments ,
100- :timer_start ,
101- :timer_end ,
102- issue_ids : [ ] )
101+ params . require ( :timer_session ) . permit ( :comments , :timer_start , :timer_end , :issue_id , issue_ids : [ ] )
102+ end
103+
104+ def timer_session_update_params
105+ timer_session_params . except ( :issue_id , :issue_ids )
103106 end
104107
105108 def report_query_params
0 commit comments