diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index d07d4dd663..87be5cfbe0 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -307,10 +307,14 @@ class TaskController extends BaseController } else { $count = $this->taskService->bulk($ids, $action); - $message = Utils::pluralize($action.'d_task', $count); - Session::flash('message', $message); + if (request()->wantsJson()) { + return response()->json($count); + } else { + $message = Utils::pluralize($action.'d_task', $count); + Session::flash('message', $message); - return $this->returnBulk($this->entityType, $action, $ids); + return $this->returnBulk($this->entityType, $action, $ids); + } } } diff --git a/resources/views/time_tracker.blade.php b/resources/views/time_tracker.blade.php index ce00dea873..dd573f4356 100644 --- a/resources/views/time_tracker.blade.php +++ b/resources/views/time_tracker.blade.php @@ -136,7 +136,7 @@ ]) ->large() ->withContents([ - ['label' => trans('texts.delete_task'), 'url' => '#'], + ['label' => trans('texts.delete_task'), 'url' => 'javascript:model.onDeleteClick()'], ] )->split() !!} @@ -245,6 +245,55 @@ }); } + self.submitBulkAction = function(data, cb) { + $.ajax({ + dataType: 'json', + type: 'post', + data: data, + url: '{{ url('/tasks/bulk') }}', + accepts: { + json: 'application/json' + }, + success: function(response) { + console.log(response); + cb(); + }, + error: function(error) { + console.log(error); + } + }); + + } + + self.onDeleteClick = function() { + sweetConfirm(function() { + + }, "{{ trans('texts.delete_task') }}"); + + return false; + } + + self.onArchiveClick = function() { + sweetConfirm(function() { + var task = self.selectedTask(); + if (! task) { + return false; + } + var data = { + id: task.public_id(), + action: 'archive', + } + self.submitBulkAction(data, function() { + console.log('removing: ' + task); + var task = self.selectedTask(); + self.removeTask(task); + self.selectTask(false); + }); + }, "{{ trans('texts.archive_task') }}"); + + return false; + } + self.onCancelClick = function() { sweetConfirm(function() { var task = self.selectedTask(); @@ -425,7 +474,7 @@ self.selectedTask(task); //self.filter(''); - if (! task.project()) { + if (task && ! task.project()) { $('select#client_id').trigger('change'); } @@ -905,6 +954,10 @@ } ko.applyBindings(model); model.tock(); + + $('.archive-dropdown:not(.dropdown-toggle)').click(function() { + model.onArchiveClick(); + }); });