@@ -34,11 +34,17 @@ function main() {
3434
3535 getRecords ( db ) ;
3636 initAddButton ( db ) ;
37+
38+ // save jobs status in case of page close or unload.
39+ window . addEventListener ( "beforeunload" , ( e ) => {
40+ document . querySelectorAll ( ".start-pause-button[data-timer-running=true]" )
41+ . forEach ( element => element . onclick ( ) ) ;
42+ } ) ;
3743 }
3844
3945 function secToStr ( seconds ) {
40- let days = Math . floor ( seconds / 86400 ) ;
41- let hours = Math . floor ( ( seconds % 86400 ) / 3600 ) ;
46+ // let days = Math.floor(seconds / 86400);
47+ let hours = Math . floor ( seconds / 3600 ) ;
4248 let minutes = Math . floor ( ( seconds % 3600 ) / 60 ) ;
4349 let leftSeconds = seconds % 60 ;
4450 //console.debug(days + " days " + hours + ":" + minutes + ":" + leftSeconds);
@@ -152,8 +158,8 @@ function main() {
152158
153159 let counter = 0 ;
154160 let subtotal_time = c_time ;
155-
156- card . querySelector ( "div > div" ) . innerText = title ;
161+
162+ card . querySelector ( "div > div" ) . innerText = title ;
157163
158164 let card_common_time = card . querySelector ( ".common-time" ) ;
159165 card_common_time . innerText = secToStr ( subtotal_time ) ;
@@ -169,12 +175,14 @@ function main() {
169175 let cb_reset = card . querySelector ( ".reset-button" ) ;
170176
171177 let timer_running = false ;
178+ cb_start_pause . setAttribute ( "data-timer-running" , false ) ;
179+
172180 let intervalId = null ;
173181
174182 let hide_time = 0 ;
175183 let hide_counter_state = 0 ;
176184 let hide_subtotal_time_state = 0 ;
177-
185+
178186 let on_visibility_change = ( ) => {
179187 if ( document . hidden ) {
180188 hide_time = Date . now ( ) ;
@@ -191,8 +199,11 @@ function main() {
191199 document . addEventListener ( "visibilitychange" , on_visibility_change ) ;
192200
193201 cb_start_pause . onclick = ( ) => {
202+ console . debug ( "Start-Stop clicked" ) ;
194203 if ( timer_running === false ) {
195204 timer_running = true ;
205+
206+ cb_start_pause . setAttribute ( "data-timer-running" , true ) ;
196207 cb_start_pause . classList . toggle ( "start-button" , false ) ;
197208 cb_start_pause . classList . toggle ( "pause-button" , true ) ;
198209 cb_start_pause . title = "Pause" ;
@@ -206,18 +217,21 @@ function main() {
206217 } , 1000 ) ;
207218 }
208219 else {
220+ console . debug ( "Start-Stop clicked - stop" ) ;
209221 timer_running = false ;
222+
223+ cb_start_pause . setAttribute ( "data-timer-running" , false ) ;
210224 cb_start_pause . classList . toggle ( "pause-button" , false ) ;
211225 cb_start_pause . classList . toggle ( "start-button" , true ) ;
212226 cb_start_pause . title = "Start" ;
213227 clearInterval ( intervalId ) ;
214228 counter = 0 ;
215-
229+
216230 updateTime ( db , id , subtotal_time ) ;
217231 card_common_time . innerText = secToStr ( subtotal_time ) ;
218232 card_subtotal_time . innerText = secToStr ( subtotal_time ) ;
219233 card_current_time . innerText = "00:00:00" ;
220- }
234+ }
221235 }
222236
223237 cb_reset . onclick = ( ) => {
0 commit comments