From 86db7be9db0a19c0e6ba21e4c61101edc88c3220 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 2 Oct 2017 15:47:26 +0300 Subject: [PATCH] Working on the time tracker --- .../tasks/time_tracker_knockout.blade.php | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/resources/views/tasks/time_tracker_knockout.blade.php b/resources/views/tasks/time_tracker_knockout.blade.php index 6a2f09f9cff5..ddfc9ac14b41 100644 --- a/resources/views/tasks/time_tracker_knockout.blade.php +++ b/resources/views/tasks/time_tracker_knockout.blade.php @@ -156,9 +156,10 @@ self.tasks = ko.observableArray(); self.filter = ko.observable(''); self.clock = ko.observable(0); + self.formChanged = ko.observable(false); - self.isStartEnabled = ko.observable(true); - self.isSaveEnabled = ko.observable(true); + self.sendingRequest = ko.observable(false); + self.sendingBulkRequest = ko.observable(false); self.selectedTask = ko.observable(false); self.selectedClient = ko.observable(false); @@ -179,6 +180,14 @@ return navigator.userAgent == "{{ TIME_TRACKER_USER_AGENT }}"; } + self.isStartEnabled = ko.computed(function() { + return ! self.sendingRequest(); + }); + + self.isSaveEnabled = ko.computed(function() { + return ! self.sendingRequest(); + }); + self.onSaveClick = function() { if (! model.selectedTask() || ! model.formChanged()) { return; @@ -235,7 +244,7 @@ id: task.public_id(), action: action, } - self.isStartEnabled(false); + self.sendingBulkRequest(true); $.ajax({ dataType: 'json', type: 'post', @@ -263,7 +272,7 @@ } }).always(function() { setTimeout(function() { - model.isStartEnabled(true); + model.sendingBulkRequest(false); }, 1000); }); } @@ -665,7 +674,7 @@ } else { data += '&is_running=0'; } - model.isSaveEnabled(false); + model.sendingRequest(true); $.ajax({ dataType: 'json', type: method, @@ -721,8 +730,7 @@ }, }).always(function() { setTimeout(function() { - model.isSaveEnabled(true); - model.isStartEnabled(true); + model.sendingRequest(false); }, 1000); }); } @@ -900,7 +908,7 @@ } self.onStartClick = function() { - if (! model.isStartEnabled()) { + if (model.sendingRequest()) { return false; } if (! self.checkForOverlaps()) { @@ -926,7 +934,6 @@ if (model.formChanged() && selectedTask && selectedTask.public_id() == self.public_id()) { model.onSaveClick(); } else { - model.isStartEnabled(false); self.save(); } } @@ -962,7 +969,7 @@ }); self.startClass = ko.computed(function() { - if (! model.isStartEnabled()) { + if (model.sendingRequest()) { return 'disabled'; }