From 926d7626ce599fb062dadcdcc86094b8380d2919 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Thu, 1 Feb 2018 06:39:49 +0800 Subject: [PATCH] Update sidebar view Restructure sidebar view partial Update on progress/unfinished jobs query based on user/worker --- app/Entities/Projects/JobsRepository.php | 20 ++++++++------ app/Http/Controllers/JobsController.php | 2 +- app/Providers/AuthServiceProvider.php | 1 - app/Queries/AdminDashboardQuery.php | 19 ++++++++----- resources/views/jobs/edit.blade.php | 2 +- .../views/layouts/partials/lang-switcher.blade.php | 25 +++++++++++++++++ resources/views/layouts/partials/sidebar.blade.php | 31 +++------------------- tests/Unit/Queries/AdminDashboardQueryTest.php | 11 ++++---- 8 files changed, 60 insertions(+), 51 deletions(-) create mode 100644 resources/views/layouts/partials/lang-switcher.blade.php diff --git a/app/Entities/Projects/JobsRepository.php b/app/Entities/Projects/JobsRepository.php index 5b7078d..aded52e 100755 --- a/app/Entities/Projects/JobsRepository.php +++ b/app/Entities/Projects/JobsRepository.php @@ -3,6 +3,7 @@ namespace App\Entities\Projects; use App\Entities\BaseRepository; +use App\Entities\Users\User; use DB; /** @@ -19,16 +20,19 @@ class JobsRepository extends BaseRepository parent::__construct($model); } - public function getUnfinishedJobs() + public function getUnfinishedJobs(User $user) { - return $this->model->whereHas('tasks', function ($query) { + $jobsQuery = $this->model->whereHas('tasks', function ($query) { return $query->where('progress', '<', 100); - }) - ->whereHas('project', function ($query) { - return $query->whereIn('status_id', [2, 3]); - }) - ->with(['tasks', 'project']) - ->get(); + })->whereHas('project', function ($query) { + return $query->whereIn('status_id', [2, 3]); + })->with(['tasks', 'project']); + + if ($user->hasRole('admin') == false) { + $jobsQuery->where('worker_id', $user->id); + } + + return $jobsQuery->get(); } public function requireProjectById($projectId) diff --git a/app/Http/Controllers/JobsController.php b/app/Http/Controllers/JobsController.php index 54c15d4..71cdb1d 100755 --- a/app/Http/Controllers/JobsController.php +++ b/app/Http/Controllers/JobsController.php @@ -24,7 +24,7 @@ class JobsController extends Controller public function index() { - $jobs = $this->repo->getUnfinishedJobs(); + $jobs = $this->repo->getUnfinishedJobs(auth()->user()); return view('jobs.unfinished', compact('jobs')); } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 9b739ea..fb211cf 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -51,7 +51,6 @@ class AuthServiceProvider extends ServiceProvider { return [ 'manage_agency', - 'manage_backups', 'manage_options', 'manage_payments', 'manage_subscriptions', diff --git a/app/Queries/AdminDashboardQuery.php b/app/Queries/AdminDashboardQuery.php index b70d8ea..1111442 100644 --- a/app/Queries/AdminDashboardQuery.php +++ b/app/Queries/AdminDashboardQuery.php @@ -6,6 +6,7 @@ use App\Entities\Payments\Payment; use App\Entities\Projects\Job; use App\Entities\Projects\Project; use App\Entities\Subscriptions\Subscription; +use App\Entities\Users\User; use Carbon\Carbon; /** @@ -99,14 +100,18 @@ class AdminDashboardQuery * * @return int */ - public function onProgressJobCount() + public function onProgressJobCount(User $user) { - return Job::whereHas('tasks', function ($query) { + $jobQuery = Job::whereHas('tasks', function ($query) { return $query->where('progress', '<', 100); - }) - ->whereHas('project', function ($query) { - return $query->whereIn('status_id', [2, 3]); - }) - ->count(); + })->whereHas('project', function ($query) { + return $query->whereIn('status_id', [2, 3]); + }); + + if ($user->hasRole('admin') == false) { + $jobQuery->where('worker_id', $user->id); + } + + return $jobQuery->count(); } } diff --git a/resources/views/jobs/edit.blade.php b/resources/views/jobs/edit.blade.php index 3a2d0be..93b92ce 100755 --- a/resources/views/jobs/edit.blade.php +++ b/resources/views/jobs/edit.blade.php @@ -15,7 +15,7 @@ {!! FormField::price('price', ['label'=> trans('job.price')]) !!}
- {!! FormField::select('worker_id', $workers, ['label'=> trans('job.worker'),'value' => 1]) !!} + {!! FormField::select('worker_id', $workers, ['label'=> trans('job.worker')]) !!}
{!! FormField::radios('type_id', [1 => 'Project','Tambahan'], ['value' => 1,'label'=> trans('job.type'),'list_style' => 'unstyled']) !!} diff --git a/resources/views/layouts/partials/lang-switcher.blade.php b/resources/views/layouts/partials/lang-switcher.blade.php new file mode 100644 index 0000000..ebbf247 --- /dev/null +++ b/resources/views/layouts/partials/lang-switcher.blade.php @@ -0,0 +1,25 @@ +
+ {{ trans('lang.lang') }} : + {!! FormField::formButton( + [ + 'route' => 'users.profile.switch-lang', + 'method' => 'patch', + 'title' => auth()->user()->lang != 'en' ? trans('lang.switch_tooltip', ['lang' => trans('lang.en')]) : '' + ], + 'EN', + ['class' => 'btn btn-default btn-xs', 'id' => 'switch_lang_en'] + + (auth()->user()->lang == 'en' ? ['disabled' => 'disabled'] : []), + ['lang' => 'en'] + ) !!} + {!! FormField::formButton( + [ + 'route' => 'users.profile.switch-lang', + 'method' => 'patch', + 'title' => auth()->user()->lang != 'id' ? trans('lang.switch_tooltip', ['lang' => trans('lang.id')]) : '' + ], + 'ID', + ['class' => 'btn btn-default btn-xs', 'id' => 'switch_lang_id'] + + (auth()->user()->lang == 'id' ? ['disabled' => 'disabled'] : []), + ['lang' => 'id'] + ) !!} +
diff --git a/resources/views/layouts/partials/sidebar.blade.php b/resources/views/layouts/partials/sidebar.blade.php index 8bd3986..a5b4ba0 100755 --- a/resources/views/layouts/partials/sidebar.blade.php +++ b/resources/views/layouts/partials/sidebar.blade.php @@ -13,35 +13,11 @@ {{ appLogoImage(['class' => 'sidebar-logo']) }}
{{ config('app.name') }}
-
- {{ trans('lang.lang') }} : - {!! FormField::formButton( - [ - 'route' => 'users.profile.switch-lang', - 'method' => 'patch', - 'title' => auth()->user()->lang != 'en' ? trans('lang.switch_tooltip', ['lang' => trans('lang.en')]) : '' - ], - 'EN', - ['class' => 'btn btn-default btn-xs', 'id' => 'switch_lang_en'] - + (auth()->user()->lang == 'en' ? ['disabled' => 'disabled'] : []), - ['lang' => 'en'] - ) !!} - {!! FormField::formButton( - [ - 'route' => 'users.profile.switch-lang', - 'method' => 'patch', - 'title' => auth()->user()->lang != 'id' ? trans('lang.switch_tooltip', ['lang' => trans('lang.id')]) : '' - ], - 'ID', - ['class' => 'btn btn-default btn-xs', 'id' => 'switch_lang_id'] - + (auth()->user()->lang == 'id' ? ['disabled' => 'disabled'] : []), - ['lang' => 'id'] - ) !!} -
+ @include('layouts.partials.lang-switcher')