|
1 | 1 |
|
2 | | - |
| 2 | + |
3 | 3 | (function() { |
4 | | - |
| 4 | + |
5 | 5 |
|
6 | 6 | $( function() { |
7 | 7 | var days='30'; |
|
230 | 230 | localStorage.setItem('timerStartTimeLocal', data.running[0].start + now - data.now ); |
231 | 231 | $('#start-tracking > span').addClass("stop-button").removeClass("play-button"); |
232 | 232 | timerInterval = setInterval(function() { |
| 233 | + if (localStorage.getItem('isTimerStarted') === 'false'){ |
| 234 | + clearInterval(timerInterval); |
| 235 | + return; |
| 236 | + } |
233 | 237 | var timerStartTimeLocal = localStorage.getItem('timerStartTimeLocal'); |
234 | 238 | var now = Math.floor(Date.now() / 1000); |
235 | 239 |
|
|
339 | 343 | .done(function(data, status, jqXHR) { |
340 | 344 | var response = data; |
341 | 345 | if ('Error' in response){ |
342 | | - alert(response.Error); |
| 346 | + alert(response.Error); |
343 | 347 | } |
344 | 348 | }) |
345 | 349 | .fail(function() { |
|
465 | 469 | .done(function(data, status, jqXHR) { |
466 | 470 | var response = data; |
467 | 471 | if ('Error' in response){ |
468 | | - alert(response.Error); |
| 472 | + alert(response.Error); |
469 | 473 | } |
470 | 474 | getWorkItems(); |
471 | 475 | }) |
|
484 | 488 | .done(function(data, status, jqXHR) { |
485 | 489 | var response = data; |
486 | 490 | if ('Error' in response){ |
487 | | - alert(response.Error); |
| 491 | + alert(response.Error); |
488 | 492 | } |
489 | 493 | getWorkItems(); |
490 | 494 | }) |
|
501 | 505 |
|
502 | 506 | function startTimer(projectId = null, tags = ""){ |
503 | 507 | if(localStorage.getItem('isTimerStarted') === 'true'){ |
504 | | - stopTimer(); |
| 508 | + stopTimer(startTimer, [projectId, tags]); |
| 509 | + return; |
505 | 510 | } |
506 | 511 | var baseUrl = OC.generateUrl('/apps/timetracker/ajax/start-timer'); |
507 | 512 | var workName = $('#work-input').val(); |
508 | 513 | if (workName == ''){ |
509 | 514 | workName = 'no description'; |
510 | 515 | } |
511 | 516 | var jqxhr = $.post( "ajax/start-timer/"+encodeURIComponent(encodeURIComponent(workName)), { projectId: projectId, tags: tags}, function() { |
512 | | - localStorage.setItem('isTimerStarted', true); |
513 | | - $('#start-tracking > span').addClass("stop-button").removeClass("play-button"); |
514 | | - getWorkItems(); |
515 | 517 | }) |
516 | 518 | .done(function(data, status, jqXHR) { |
517 | 519 | var response = data; |
518 | 520 | if ('Error' in response){ |
519 | 521 | alert(response.Error); |
| 522 | + } else { |
| 523 | + localStorage.setItem('isTimerStarted', true); |
| 524 | + $('#start-tracking > span').addClass("stop-button").removeClass("play-button"); |
520 | 525 | } |
521 | 526 | }) |
522 | 527 | .fail(function() { |
523 | 528 | alert( "error" ); |
524 | | - }); |
| 529 | + }).always(function() { |
| 530 | + getWorkItems(); |
| 531 | + }); |
525 | 532 |
|
526 | 533 | } |
527 | | - function stopTimer(){ |
| 534 | + function stopTimer(onStopped = null, args = []){ |
528 | 535 |
|
529 | 536 | var workName = $('#work-input').val(); |
530 | 537 | if (workName == ''){ |
531 | 538 | workName = 'no description'; |
532 | 539 | } |
533 | 540 | var jqxhr = $.post( "ajax/stop-timer/"+encodeURIComponent(encodeURIComponent(workName)), function() { // encode twice so we can pass / character |
534 | | - localStorage.setItem('isTimerStarted', false); |
535 | | - $('#start-tracking > span').addClass("play-button").removeClass("stop-button"); |
536 | | - getWorkItems(); |
537 | 541 | }) |
538 | 542 | .done(function(data, status, jqXHR) { |
539 | 543 | var response = data; |
540 | 544 | if ('Error' in response){ |
541 | 545 | alert(response.Error); |
| 546 | + } else { |
| 547 | + localStorage.setItem('isTimerStarted', false); |
| 548 | + $('#start-tracking > span').addClass("play-button").removeClass("stop-button"); |
| 549 | + if (onStopped != null){ |
| 550 | + onStopped(args[0], args[1]); |
| 551 | + } else { |
| 552 | + getWorkItems(); |
| 553 | + } |
542 | 554 | } |
543 | 555 | }) |
544 | 556 | .fail(function() { |
545 | 557 | alert( "error" ); |
546 | 558 | }) |
547 | 559 | .always(function() { |
| 560 | + |
548 | 561 | }); |
549 | 562 | } |
| 563 | + |
| 564 | + |
| 565 | + |
550 | 566 | $( "#datepicker-from" ).datepicker(); |
551 | 567 | $( "#datepicker-to" ).datepicker(); |
552 | 568 |
|
|
0 commit comments