From 208d422d76c61134c450a5e104fba01d2411ce11 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 19 Sep 2017 19:38:28 +0300 Subject: [PATCH] Working on time tracker --- resources/views/time_tracker.blade.php | 29 +++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/resources/views/time_tracker.blade.php b/resources/views/time_tracker.blade.php index e4b3b8caaa65..c5d2b98fb339 100644 --- a/resources/views/time_tracker.blade.php +++ b/resources/views/time_tracker.blade.php @@ -124,7 +124,7 @@
- + {!! DropdownButton::normal(trans('texts.archive')) ->withAttributes([ 'class' => 'archive-dropdown', @@ -138,7 +138,7 @@ {!! Button::normal(trans('texts.cancel')) ->appendIcon(Icon::create('remove-circle')) ->withAttributes([ - 'data-bind' => 'click: onCancelClick, visible: !selectedTask().public_id', + 'data-bind' => 'click: onCancelClick, visible: selectedTask().isNew', ]) ->large() !!}   @@ -208,12 +208,17 @@ return; } var data = $('#taskForm').serialize(); - var times = model.selectedTask().times(); - data += '&time_log=' + JSON.stringify(times); + var task = model.selectedTask(); + 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: 'post', + type: method, data: data, url: url, accepts: { @@ -222,8 +227,11 @@ success: function(response) { console.log(response); //var task = new TaskModel(response); + var isNew = self.selectedTask().isNew(); self.selectedTask().update(response); - self.addTask(self.selectedTask()); + if (isNew) { + self.addTask(self.selectedTask()); + } }, }); } @@ -364,6 +372,7 @@ function TaskModel(data) { var self = this; + self.public_id = ko.observable(); self.description = ko.observable('test'); self.time_log = ko.observableArray(); self.client_id = ko.observable(); @@ -387,7 +396,9 @@ } }, 'ignore': [ - 'time_log' + 'time_log', + 'client_id', + 'project_id', ] } @@ -405,6 +416,10 @@ self.update(data); } + self.isNew = function() { + return ! self.public_id(); + } + self.showActionButton = function() { self.actionButtonVisible(true); }