diff --git a/app/Entities/Users/User.php b/app/Entities/Users/User.php
index 992c7cc..7c1a704 100644
--- a/app/Entities/Users/User.php
+++ b/app/Entities/Users/User.php
@@ -2,7 +2,6 @@
namespace App\Entities\Users;
-use App\Entities\Projects\Job;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
@@ -128,7 +127,7 @@ class User extends Authenticatable
public function jobs()
{
- return $this->hasMany(Job::class, 'worker_id');
+ return $this->hasMany('App\Entities\Projects\Job', 'worker_id');
}
public function projects()
diff --git a/app/Http/Controllers/Users/ProjectsController.php b/app/Http/Controllers/Users/ProjectsController.php
index 8cb9bc5..2d28bde 100644
--- a/app/Http/Controllers/Users/ProjectsController.php
+++ b/app/Http/Controllers/Users/ProjectsController.php
@@ -17,9 +17,7 @@ class ProjectsController extends Controller
$projects = $user->projects()
->where(function ($query) {
$query->where('projects.name', 'like', '%'.request('q').'%');
- if (request('status')) {
- $query->where('status_id', request('status'));
- }
+ $query->where('status_id', request('status', 2));
})
->latest()
->with(['customer'])
diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php
index c8d019d..b264b8f 100755
--- a/app/Http/Controllers/Users/UsersController.php
+++ b/app/Http/Controllers/Users/UsersController.php
@@ -61,7 +61,12 @@ class UsersController extends Controller
public function show(User $user)
{
- return view('users.show', compact('user'));
+ $userCurrentJobs = $user->jobs()
+ ->whereHas('project', function ($query) {
+ $query->whereIn('status_id', [2, 3]);
+ })->with('tasks')->get();
+
+ return view('users.show', compact('user', 'userCurrentJobs'));
}
public function edit(User $user)
diff --git a/resources/lang/en/user.php b/resources/lang/en/user.php
index 6906f46..6fcaa0d 100644
--- a/resources/lang/en/user.php
+++ b/resources/lang/en/user.php
@@ -6,6 +6,7 @@ return [
'list' => 'User List',
'user_id' => 'User ID',
'profile' => 'Profile',
+ 'current_jobs' => 'Current Jobs',
'search' => 'Search User: ketik nama',
'search' => 'Type user name then hit Enter..',
'found' => 'User found.',
@@ -40,6 +41,7 @@ return [
],
// Relations
- 'jobs' => 'Job List',
- 'projects' => 'Project List',
+ 'jobs' => 'Job List',
+ 'jobs_count' => 'Job Count',
+ 'projects' => 'Project List',
];
diff --git a/resources/lang/id/user.php b/resources/lang/id/user.php
index fd1d549..8533d33 100644
--- a/resources/lang/id/user.php
+++ b/resources/lang/id/user.php
@@ -6,6 +6,7 @@ return [
'list' => 'Daftar User',
'user_id' => 'User ID',
'profile' => 'Profil',
+ 'current_jobs' => 'Job on progress',
'search' => 'Cari User: ketik nama',
'search' => 'Ketik nama user lalu tekan Enter..',
'found' => 'User ditemukan',
@@ -39,6 +40,7 @@ return [
],
// Relations
- 'jobs' => 'Daftar Job',
- 'projects' => 'Daftar Project',
+ 'jobs' => 'Daftar Job',
+ 'jobs_count' => 'Jumlah Job',
+ 'projects' => 'Daftar Project',
];
diff --git a/resources/views/layouts/user.blade.php b/resources/views/layouts/user.blade.php
index 3db8ff8..91d5db1 100755
--- a/resources/views/layouts/user.blade.php
+++ b/resources/views/layouts/user.blade.php
@@ -6,13 +6,10 @@
@section('content')
@include('users.partials.breadcrumb')
-
+
+ {!! link_to_route('users.edit', trans('user.edit'), [$user], ['id' => 'edit-user-' . $user->id, 'class' => 'btn btn-warning']) !!}
+ {!! link_to_route('users.index', trans('user.back_to_index'), [], ['class' => 'btn btn-default']) !!}
+
@include('users.partials.nav-tabs')
@yield('content-user')
@endsection
diff --git a/resources/views/users/partials/nav-tabs.blade.php b/resources/views/users/partials/nav-tabs.blade.php
index 2534688..5375a10 100644
--- a/resources/views/users/partials/nav-tabs.blade.php
+++ b/resources/views/users/partials/nav-tabs.blade.php
@@ -4,10 +4,18 @@
{!! link_to_route('users.show', trans('user.profile'), [$user]) !!}
- {!! link_to_route('users.jobs', trans('user.jobs').' ('.$user->jobs()->count().')', [$user]) !!}
+ @php
+ $onProgressJobsCount = AdminDashboard::onProgressJobCount($user);
+ @endphp
+ {!! link_to_route(
+ 'users.jobs',
+ trans('user.jobs').' ('.$onProgressJobsCount.')',
+ [$user],
+ ['title' => $onProgressJobsCount.' '.trans('user.current_jobs')]
+ ) !!}
- {!! link_to_route('users.projects', trans('user.projects').' ('.$user->projects->count().')', [$user]) !!}
+ {!! link_to_route('users.projects', trans('user.projects'), [$user]) !!}
diff --git a/resources/views/users/projects.blade.php b/resources/views/users/projects.blade.php
index 36d0d99..671dce4 100755
--- a/resources/views/users/projects.blade.php
+++ b/resources/views/users/projects.blade.php
@@ -5,8 +5,8 @@
@section('content-user')
{!! Form::open(['method' => 'get', 'class' => 'form-inline']) !!}
- {!! FormField::select('status', ProjectStatus::toArray(), ['value' => Request::get('status'), 'placeholder' => trans('project.all')]) !!}
- {!! Form::text('q', Request::get('q'), ['class' => 'form-control index-search-field', 'placeholder' => trans('project.search'), 'style' => 'width:100%;max-width:350px']) !!}
+ {!! FormField::select('status', ProjectStatus::toArray(), ['value' => request('status', 2), 'placeholder' => trans('project.all')]) !!}
+ {!! Form::text('q', request('q'), ['class' => 'form-control index-search-field', 'placeholder' => trans('project.search'), 'style' => 'width:100%;max-width:350px']) !!}
{!! Form::submit(trans('project.search'), ['class' => 'btn btn-info btn-sm']) !!}
{!! link_to_route('users.projects', trans('app.reset'), [$user], ['class' => 'btn btn-default btn-sm']) !!}
{!! Form::close() !!}
diff --git a/resources/views/users/show.blade.php b/resources/views/users/show.blade.php
index 6df1db3..ef605f5 100755
--- a/resources/views/users/show.blade.php
+++ b/resources/views/users/show.blade.php
@@ -4,6 +4,11 @@
+
+
+ {{ $user->name }} | {{ trans('user.profile') }}
+
+
| {{ trans('user.user_id') }} | {{ $user->id }} |
| {{ trans('user.name') }} | {{ $user->name }} |
@@ -11,10 +16,83 @@
| {{ trans('user.role') }} | {!! $user->roleList() !!} |
| {{ trans('lang.lang') }} | {{ trans('lang.'.$user->lang) }} |
-
+
+
+
+
+
{{$user->name}} | {{ trans('user.current_jobs') }}
+
+
+ @php
+ $currentJobTotal = 0;
+ @endphp
+
+ | {{ trans('job.progress') }} |
+ {{ trans('user.jobs_count') }} |
+
+
+ | 0 - 10% |
+
+ {{ $count = $userCurrentJobs->filter(function ($job) {
+ return $job->progress == 0;
+ })->count() }}
+ @php
+ $currentJobTotal += $count;
+ @endphp
+ |
+
+
+ | 11 - 50% |
+
+ {{ $count = $userCurrentJobs->filter(function ($job) {
+ return $job->progress > 10 && $job->progress <= 50;
+ })->count() }}
+ @php
+ $currentJobTotal += $count;
+ @endphp
+ |
+
+
+ | 51 - 75% |
+
+ {{ $count = $userCurrentJobs->filter(function ($job) {
+ return $job->progress > 50 && $job->progress <= 75;
+ })->count() }}
+ @php
+ $currentJobTotal += $count;
+ @endphp
+ |
+
+
+ | 76 - 99% |
+
+ {{ $count = $userCurrentJobs->filter(function ($job) {
+ return $job->progress > 75 && $job->progress <= 99;
+ })->count() }}
+ @php
+ $currentJobTotal += $count;
+ @endphp
+ |
+
+
+ | 100% |
+
+ {{ $count = $userCurrentJobs->filter(function ($job) {
+ return $job->progress == 100;
+ })->count() }}
+ @php
+ $currentJobTotal += $count;
+ @endphp
+ |
+
+
+
+
+ | {{ trans('app.total') }} |
+ {{ $currentJobTotal }} |
+
+
+
diff --git a/tests/Unit/Models/UserTest.php b/tests/Unit/Models/UserTest.php
index efa91a5..e7f44b6 100644
--- a/tests/Unit/Models/UserTest.php
+++ b/tests/Unit/Models/UserTest.php
@@ -20,9 +20,7 @@ class UserTest extends TestCase
{
$user = factory(User::class)->create();
- $this->assertEquals(link_to_route('users.show', $user->name, [$user->id], [
- 'target' => '_blank',
- ]), $user->nameLink());
+ $this->assertEquals(link_to_route('users.show', $user->name, [$user]), $user->nameLink());
}
/** @test */