diff --git a/app/Models/Task.php b/app/Models/Task.php index 531f72cf7..471538238 100644 --- a/app/Models/Task.php +++ b/app/Models/Task.php @@ -247,21 +247,25 @@ class Task extends EntityModel return $statuses; } - public static function calcStatusLabel($isRunning, $balance, $invoiceNumber) + public static function calcStatusLabel($isRunning, $balance, $invoiceNumber, $taskStatus) { if ($invoiceNumber) { if (floatval($balance) > 0) { - $label = 'invoiced'; + $label = trans('texts.invoiced'); } else { - $label = 'paid'; + $label = trans('texts.paid'); } - } elseif ($isRunning) { - $label = 'running'; + } elseif ($taskStatus) { + $label = $taskStatus; } else { - $label = 'logged'; + $label = trans('texts.logged'); } - return trans("texts.{$label}"); + if ($isRunning) { + $label .= ' | ' . trans('texts.running'); + } + + return $label; } public static function calcStatusClass($isRunning, $balance, $invoiceNumber) @@ -275,7 +279,7 @@ class Task extends EntityModel } elseif ($isRunning) { return 'primary'; } else { - return 'warning'; + return 'info'; } } @@ -302,7 +306,9 @@ class Task extends EntityModel $invoiceNumber = false; } - return static::calcStatusLabel($this->is_running, $balance, $invoiceNumber); + $taskStatus = $this->task_status ? $this->task_status->name : false; + + return static::calcStatusLabel($this->is_running, $balance, $invoiceNumber, $taskStatus); } } diff --git a/app/Ninja/Datatables/TaskDatatable.php b/app/Ninja/Datatables/TaskDatatable.php index 85722feec..464c398a4 100644 --- a/app/Ninja/Datatables/TaskDatatable.php +++ b/app/Ninja/Datatables/TaskDatatable.php @@ -49,7 +49,11 @@ class TaskDatatable extends EntityDatatable [ 'duration', function ($model) { - return Utils::formatTime(Task::calcDuration($model)); + if (! Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])) { + return Utils::formatTime(Task::calcDuration($model)); + } + + return link_to("tasks/{$model->public_id}/edit", Utils::formatTime(Task::calcDuration($model)))->toHtml(); }, ], [ @@ -120,7 +124,7 @@ class TaskDatatable extends EntityDatatable private function getStatusLabel($model) { - $label = Task::calcStatusLabel($model->is_running, $model->balance, $model->invoice_number); + $label = Task::calcStatusLabel($model->is_running, $model->balance, $model->invoice_number, $model->task_status); $class = Task::calcStatusClass($model->is_running, $model->balance, $model->invoice_number); return "