From eb41340b030a201911b7c981ac90816b086a849b Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 19 Dec 2017 20:36:25 +0200 Subject: [PATCH] Working on task kanban --- app/Models/Task.php | 24 ++++++++++++------- app/Ninja/Datatables/TaskDatatable.php | 8 +++++-- app/Ninja/Repositories/TaskRepository.php | 4 +++- ...17_12_13_074024_add_remember_2fa_token.php | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/app/Models/Task.php b/app/Models/Task.php index 531f72cf768f..471538238382 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 85722feec296..464c398a4ec0 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 "

$label

"; diff --git a/app/Ninja/Repositories/TaskRepository.php b/app/Ninja/Repositories/TaskRepository.php index 59b3a4b5ab98..e749944f768e 100644 --- a/app/Ninja/Repositories/TaskRepository.php +++ b/app/Ninja/Repositories/TaskRepository.php @@ -25,6 +25,7 @@ class TaskRepository extends BaseRepository ->leftJoin('contacts', 'contacts.client_id', '=', 'clients.id') ->leftJoin('invoices', 'invoices.id', '=', 'tasks.invoice_id') ->leftJoin('projects', 'projects.id', '=', 'tasks.project_id') + ->leftJoin('task_statuses', 'task_statuses.id', '=', 'tasks.task_status_id') ->where('tasks.account_id', '=', Auth::user()->account_id) ->where(function ($query) { // handle when client isn't set $query->where('contacts.is_primary', '=', true) @@ -56,7 +57,8 @@ class TaskRepository extends BaseRepository 'tasks.user_id', 'projects.name as project', 'projects.public_id as project_public_id', - 'projects.user_id as project_user_id' + 'projects.user_id as project_user_id', + 'task_statuses.name as task_status' ); if ($clientPublicId) { diff --git a/database/migrations/2017_12_13_074024_add_remember_2fa_token.php b/database/migrations/2017_12_13_074024_add_remember_2fa_token.php index 22b5889649b5..821725be3311 100644 --- a/database/migrations/2017_12_13_074024_add_remember_2fa_token.php +++ b/database/migrations/2017_12_13_074024_add_remember_2fa_token.php @@ -36,7 +36,7 @@ class AddRemember2faToken extends Migration }); Schema::table('tasks', function ($table) { - $table->unsignedInteger('task_status_id')->nullable(); + $table->unsignedInteger('task_status_id')->index()->nullable(); $table->smallInteger('task_status_sort_order')->default(0); });