diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index f89805dd0b15..35922197d1ad 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Jobs\GenerateProjectChartData; use App\Http\Requests\CreateProjectRequest; use App\Http\Requests\ProjectRequest; use App\Http\Requests\UpdateProjectRequest; @@ -10,9 +11,6 @@ use App\Models\Project; use App\Ninja\Datatables\ProjectDatatable; use App\Ninja\Repositories\ProjectRepository; use App\Services\ProjectService; -use DateInterval; -use DatePeriod; -use stdClass; use Auth; use Input; use Session; @@ -56,65 +54,14 @@ class ProjectController extends BaseController { $account = auth()->user()->account; $project = $request->entity(); - $taskMap = []; - - foreach ($project->tasks as $task) { - $parts = json_decode($task->time_log) ?: []; - - if (! count($parts)) { - continue; - } - - foreach ($parts as $part) { - $start = $part[0]; - $end = count($part) > 1 ? $part[1] : time(); - - $date = $account->getDateTime(); - $date->setTimestamp($part[0]); - $sqlDate = $date->format('Y-m-d'); - - if (! isset($taskMap[$sqlDate])) { - $taskMap[$sqlDate] = 0; - } - - $taskMap[$sqlDate] += $end - $start; - } - } - - $labels = []; - $records = []; - $startDate = date_create('2017-11-01'); - $endDate = date_create('2017-12-01'); - - $interval = new DateInterval('P1D'); - $period = new DatePeriod($startDate, $interval, $endDate); - $data = []; - $amount = 0; - $color = '51,122,183'; - - foreach ($period as $date) { - $labels[] = $date->format('m/d/Y'); - $records[] = $amount+=10; - } - - $dataset = new stdClass(); - $dataset->data = $records; - $dataset->label = trans("texts.tasks"); - $dataset->lineTension = 0; - $dataset->borderWidth = 4; - $dataset->borderColor = "rgba({$color}, 1)"; - $dataset->backgroundColor = "rgba({$color}, 0.1)"; - - $data = new stdClass(); - $data->labels = $labels; - $data->datasets = [$dataset]; + $chartData = dispatch(new GenerateProjectChartData($project)); $data = [ 'account' => auth()->user()->account, 'project' => $project, 'title' => trans('texts.view_project'), 'showBreadcrumbs' => false, - 'data' => $data, + 'chartData' => $chartData, ]; return View::make('projects.show', $data); diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php index a8be105956d4..1ab526e05dc9 100644 --- a/resources/views/projects/show.blade.php +++ b/resources/views/projects/show.blade.php @@ -77,18 +77,28 @@
{{ trans('texts.tasks') }} | +3 | +
{{ trans('texts.duration') }} | +04:15:00 | +