|
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