diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 9495406cd387..51c882d6b439 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -8,6 +8,7 @@ use App\Http\Requests\UpdateTaskRequest; use App\Models\Client; use App\Models\Project; use App\Models\Task; +use App\Models\TaskStatus; use App\Ninja\Datatables\TaskDatatable; use App\Ninja\Repositories\InvoiceRepository; use App\Ninja\Repositories\TaskRepository; @@ -267,6 +268,14 @@ class TaskController extends BaseController $this->taskRepo->save($ids, ['action' => $action]); Session::flash('message', trans($action == 'stop' ? 'texts.stopped_task' : 'texts.resumed_task')); return $this->returnBulk($this->entityType, $action, $ids); + } elseif (strpos($action, 'update_status') === 0) { + list($action, $statusPublicId) = explode(':', $action); + Task::scope($ids)->update([ + 'task_status_id' => TaskStatus::getPrivateId($statusPublicId), + 'task_status_sort_order' => 9999, + ]); + Session::flash('message', trans('texts.updated_task_status')); + return $this->returnBulk($this->entityType, $action, $ids); } elseif ($action == 'invoice' || $action == 'add_to_invoice') { $tasks = Task::scope($ids)->with('account', 'client', 'project')->orderBy('project_id', 'id')->get(); $clientPublicId = false; diff --git a/app/Ninja/Datatables/TaskDatatable.php b/app/Ninja/Datatables/TaskDatatable.php index c4a5814afd44..051e1d2d5bde 100644 --- a/app/Ninja/Datatables/TaskDatatable.php +++ b/app/Ninja/Datatables/TaskDatatable.php @@ -3,6 +3,7 @@ namespace App\Ninja\Datatables; use App\Models\Task; +use App\Models\TaskStatus; use Auth; use URL; use Utils; @@ -129,4 +130,26 @@ class TaskDatatable extends EntityDatatable return "