diff --git a/app/Ninja/Repositories/TaskRepository.php b/app/Ninja/Repositories/TaskRepository.php
index fb05ddf2708c..18fe77c50a7a 100644
--- a/app/Ninja/Repositories/TaskRepository.php
+++ b/app/Ninja/Repositories/TaskRepository.php
@@ -154,6 +154,14 @@ class TaskRepository extends BaseRepository
}
}
+ /*
+ if ($count = count($timeLog)) {
+ $lastTime = $timeLog[$count - 1];
+ $task->is_running = count($lastTime) == 2 && $lastTime[1];
+ \Log::info('is running: ' . $task->is_running);
+ }
+ */
+
$task->time_log = json_encode($timeLog);
$task->save();
diff --git a/resources/views/tasks/time_tracker.blade.php b/resources/views/tasks/time_tracker.blade.php
index 3d256f60ce0f..c04155d25c44 100644
--- a/resources/views/tasks/time_tracker.blade.php
+++ b/resources/views/tasks/time_tracker.blade.php
@@ -95,13 +95,15 @@
+
diff --git a/resources/views/tasks/time_tracker_knockout.blade.php b/resources/views/tasks/time_tracker_knockout.blade.php
index 4f6b37efee54..460798eca8f3 100644
--- a/resources/views/tasks/time_tracker_knockout.blade.php
+++ b/resources/views/tasks/time_tracker_knockout.blade.php
@@ -15,38 +15,10 @@
if (! model.selectedTask() || ! model.formChanged()) {
return;
}
- var data = $('#taskForm').serialize();
var task = model.selectedTask();
+ var data = $('#taskForm').serialize();
data += '&time_log=' + JSON.stringify(task.times());
- var url = '{{ url('/tasks') }}';
- var method = 'post';
- if (task.public_id()) {
- method = 'put';
- url += '/' + task.public_id();
- }
- $.ajax({
- dataType: 'json',
- type: method,
- data: data,
- url: url,
- accepts: {
- json: 'application/json'
- },
- success: function(response) {
- console.log(response);
- var task = self.selectedTask();
- var projectId = $('input[name=project_id]').val();
- if (projectId == -1) {
- var project = response.project;
- project.client = response.client;
- projects.push(project);
- addProjectToMaps(project);
- refreshProjectList();
- }
- task.update(response);
- self.formChanged(false);
- },
- });
+ task.save(data, true);
}
self.submitBulkAction = function(action, task) {
@@ -144,12 +116,14 @@
self.viewClient = function(task) {
self.filter(task.client().displayName());
+ self.selectedProject(false);
self.selectedClient(task.client());
return false;
}
self.viewProject = function(task) {
self.filter(task.project().name());
+ self.selectedClient(false);
self.selectedProject(task.project());
return false;
}
@@ -348,6 +322,39 @@
]
}
+ self.save = function(data, isSelected) {
+ var url = '{{ url('/tasks') }}';
+ var method = 'post';
+ if (self.public_id()) {
+ method = 'put';
+ url += '/' + self.public_id();
+ }
+ $.ajax({
+ dataType: 'json',
+ type: method,
+ data: data,
+ url: url,
+ accepts: {
+ json: 'application/json'
+ },
+ success: function(response) {
+ console.log(response);
+ if (isSelected) {
+ var projectId = $('input[name=project_id]').val();
+ if (projectId == -1) {
+ var project = response.project;
+ project.client = response.client;
+ projects.push(project);
+ addProjectToMaps(project);
+ refreshProjectList();
+ }
+ self.update(response);
+ model.formChanged(false);
+ }
+ },
+ });
+ }
+
self.update = function(data) {
self.data = data;
var times = JSON.parse(data.time_log);
@@ -431,6 +438,7 @@
time.startTime(moment().unix());
self.addTime(time);
}
+ self.save('time_log=' + JSON.stringify(self.times()));
}
self.listItemState = ko.computed(function() {