Working on task kanban

This commit is contained in:
Hillel Coren 2017-12-19 20:36:25 +02:00
parent 543c80564c
commit eb41340b03
4 changed files with 25 additions and 13 deletions

View File

@ -247,21 +247,25 @@ class Task extends EntityModel
return $statuses; return $statuses;
} }
public static function calcStatusLabel($isRunning, $balance, $invoiceNumber) public static function calcStatusLabel($isRunning, $balance, $invoiceNumber, $taskStatus)
{ {
if ($invoiceNumber) { if ($invoiceNumber) {
if (floatval($balance) > 0) { if (floatval($balance) > 0) {
$label = 'invoiced'; $label = trans('texts.invoiced');
} else { } else {
$label = 'paid'; $label = trans('texts.paid');
} }
} elseif ($isRunning) { } elseif ($taskStatus) {
$label = 'running'; $label = $taskStatus;
} else { } 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) public static function calcStatusClass($isRunning, $balance, $invoiceNumber)
@ -275,7 +279,7 @@ class Task extends EntityModel
} elseif ($isRunning) { } elseif ($isRunning) {
return 'primary'; return 'primary';
} else { } else {
return 'warning'; return 'info';
} }
} }
@ -302,7 +306,9 @@ class Task extends EntityModel
$invoiceNumber = false; $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);
} }
} }

View File

@ -49,7 +49,11 @@ class TaskDatatable extends EntityDatatable
[ [
'duration', 'duration',
function ($model) { function ($model) {
if (! Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])) {
return Utils::formatTime(Task::calcDuration($model)); 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) 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); $class = Task::calcStatusClass($model->is_running, $model->balance, $model->invoice_number);
return "<h4><div class=\"label label-{$class}\">$label</div></h4>"; return "<h4><div class=\"label label-{$class}\">$label</div></h4>";

View File

@ -25,6 +25,7 @@ class TaskRepository extends BaseRepository
->leftJoin('contacts', 'contacts.client_id', '=', 'clients.id') ->leftJoin('contacts', 'contacts.client_id', '=', 'clients.id')
->leftJoin('invoices', 'invoices.id', '=', 'tasks.invoice_id') ->leftJoin('invoices', 'invoices.id', '=', 'tasks.invoice_id')
->leftJoin('projects', 'projects.id', '=', 'tasks.project_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('tasks.account_id', '=', Auth::user()->account_id)
->where(function ($query) { // handle when client isn't set ->where(function ($query) { // handle when client isn't set
$query->where('contacts.is_primary', '=', true) $query->where('contacts.is_primary', '=', true)
@ -56,7 +57,8 @@ class TaskRepository extends BaseRepository
'tasks.user_id', 'tasks.user_id',
'projects.name as project', 'projects.name as project',
'projects.public_id as project_public_id', '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) { if ($clientPublicId) {

View File

@ -36,7 +36,7 @@ class AddRemember2faToken extends Migration
}); });
Schema::table('tasks', function ($table) { 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); $table->smallInteger('task_status_sort_order')->default(0);
}); });