From 78909d1de4bd799ba88735959151313c19827205 Mon Sep 17 00:00:00 2001 From: myuqinurrohman Date: Wed, 2 Apr 2025 21:44:08 +0700 Subject: [PATCH] chore: change show or detail user UI --- .../Dashboard/DatatableController.php | 2 +- .../Controllers/Dashboard/UserController.php | 29 ++++++++++++------- app/Models/Company.php | 4 +-- app/Models/Journalist.php | 2 +- app/Models/Media.php | 4 +-- app/Models/User.php | 6 +++- .../users/profiles/account.blade.php | 15 ++-------- .../users/profiles/company.blade.php | 15 ++-------- .../users/profiles/heading.blade.php | 27 +++++++++++++++++ .../users/profiles/journalists.blade.php | 15 ++-------- .../users/profiles/login-activity.blade.php | 15 ++-------- .../dashboard/users/profiles/media.blade.php | 15 ++-------- .../dashboard/users/profiles/tabs.blade.php | 24 ++++++++++++++- routes/web.php | 2 +- 14 files changed, 90 insertions(+), 85 deletions(-) create mode 100644 resources/views/dashboard/users/profiles/heading.blade.php diff --git a/app/Http/Controllers/Dashboard/DatatableController.php b/app/Http/Controllers/Dashboard/DatatableController.php index cdaaa1a..6271d81 100644 --- a/app/Http/Controllers/Dashboard/DatatableController.php +++ b/app/Http/Controllers/Dashboard/DatatableController.php @@ -1891,7 +1891,7 @@ public function user(Request $request){ } }) ->addColumn('action', function ($data) { - $showUrl = route('dashboard.users.show', ['id' => encrypt_id($data->id)]); + $showUrl = route('dashboard.users.show', ['id' => encrypt_id($data->id), 'type' => 'account']); $acceptUrl = route('dashboard.users.status.action', ['id' => encrypt_id($data->id), 'action' => 'accept']); diff --git a/app/Http/Controllers/Dashboard/UserController.php b/app/Http/Controllers/Dashboard/UserController.php index 895b24b..9e28aab 100644 --- a/app/Http/Controllers/Dashboard/UserController.php +++ b/app/Http/Controllers/Dashboard/UserController.php @@ -70,23 +70,29 @@ public function update(UserRequest $request, $id){ } } - public function show($id){ + public function show($id, $type){ $user = User::with(['role', 'company.media.journalists'])->findOrFail(decrypt_id($id)); - $viewData = [ - 'title' => 'Detail Pengguna', + $data = [ + 'title' => 'Profile Pengguna', 'user' => $user, - 'roles' => Role::all() + 'roles' => Role::all(), + 'page' => 'show-user', + 'type' => $type ]; - if($user->role_id === '3'){ - $viewData['company'] = $user->company; - $viewData['media'] = $user->company->media; - $viewData['journalists'] = $user->company->media->journalists; + if($type === 'account'){ + return view('dashboard.users.profiles.account', $data); + }elseif($type === 'login-activities'){ + $data['loginActivities'] = LoginHistory::where('user_id', $user->id)->orderByDesc('id')->simplePaginate(20); + return view('dashboard.users.profiles.login-activity', $data); + }elseif($type === 'company'){ + return view('dashboard.users.profiles.company', $data); + }elseif($type === 'media'){ + return view('dashboard.users.profiles.media', $data); + }elseif($type === 'journalists'){ + return view('dashboard.users.profiles.journalists', $data); } - - - return view('dashboard.users.show', $viewData); } public function resetPassword($id){ @@ -165,6 +171,7 @@ public function profile($type){ 'title' => 'Detail Akun', 'user' => Auth::user(), 'roles' => Role::all(), + 'page' => 'profile', 'type' => $type ]; diff --git a/app/Models/Company.php b/app/Models/Company.php index 1e8eb42..2ef453b 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -41,10 +41,10 @@ class Company extends Model ]; public function user(){ - return $this->belongsTo(User::class, 'user_id', 'id'); + return $this->belongsTo(User::class, 'user_id', 'id')->withTrashed(); } public function media(){ - return $this->hasOne(Media::class, 'company_id', 'id'); + return $this->hasOne(Media::class, 'company_id', 'id')->withTrashed(); } } diff --git a/app/Models/Journalist.php b/app/Models/Journalist.php index 664292a..c9de028 100644 --- a/app/Models/Journalist.php +++ b/app/Models/Journalist.php @@ -25,7 +25,7 @@ class Journalist extends Model ]; public function media(){ - return $this->belongsTo(Media::class, 'media_id', 'id'); + return $this->belongsTo(Media::class, 'media_id', 'id')->withTrashed(); } public function cooperationProposals() diff --git a/app/Models/Media.php b/app/Models/Media.php index 97f50cc..7dac51f 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -27,11 +27,11 @@ class Media extends Model ]; public function company(){ - return $this->belongsTo(Company::class, 'company_id', 'id'); + return $this->belongsTo(Company::class, 'company_id', 'id')->withTrashed(); } public function journalists(){ - return $this->hasMany(Journalist::class, 'media_id', 'id'); + return $this->hasMany(Journalist::class, 'media_id', 'id')->withTrashed(); } public function cooperations() diff --git a/app/Models/User.php b/app/Models/User.php index 19cd0de..2130918 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -64,6 +64,10 @@ public function role(){ } public function company(){ - return $this->hasOne(Company::class, 'user_id', 'id'); + return $this->hasOne(Company::class, 'user_id', 'id')->withTrashed(); + } + + public function loginHistories(){ + return $this->hasMany(LoginHistory::class, 'user_id', 'id'); } } diff --git a/resources/views/dashboard/users/profiles/account.blade.php b/resources/views/dashboard/users/profiles/account.blade.php index fa5cd11..796d5a2 100644 --- a/resources/views/dashboard/users/profiles/account.blade.php +++ b/resources/views/dashboard/users/profiles/account.blade.php @@ -1,5 +1,5 @@ @include('partials.dashboard.head') -@include('partials.dashboard.sidebar', ['page' => 'profile']) +@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')]) @include('partials.dashboard.header')
@@ -8,18 +8,7 @@
-
-

Profile

-
-
    -
  • Lihat informasi pribadi Anda di sini.
  • -
-
-
-
- Kembali - -
+ @include('dashboard.users.profiles.heading')
diff --git a/resources/views/dashboard/users/profiles/company.blade.php b/resources/views/dashboard/users/profiles/company.blade.php index b1d0c03..b580529 100644 --- a/resources/views/dashboard/users/profiles/company.blade.php +++ b/resources/views/dashboard/users/profiles/company.blade.php @@ -1,5 +1,5 @@ @include('partials.dashboard.head') -@include('partials.dashboard.sidebar', ['page' => 'profile']) +@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')]) @include('partials.dashboard.header')
@@ -8,18 +8,7 @@
-
-

Profile

-
-
    -
  • Lihat informasi pribadi Anda di sini.
  • -
-
-
-
- Kembali - -
+ @include('dashboard.users.profiles.heading')
diff --git a/resources/views/dashboard/users/profiles/heading.blade.php b/resources/views/dashboard/users/profiles/heading.blade.php new file mode 100644 index 0000000..d01b87a --- /dev/null +++ b/resources/views/dashboard/users/profiles/heading.blade.php @@ -0,0 +1,27 @@ +@if ($page === 'profile') +
+

Profile

+
+
    +
  • Lihat informasi pribadi Anda di sini.
  • +
+
+
+
+ Kembali + +
+@elseif ($page === 'show-user') +
+

Profile Pengguna

+
+
    +
  • Lihat detail informasi pengguna di sini.
  • +
+
+
+
+ Kembali + +
+@endif diff --git a/resources/views/dashboard/users/profiles/journalists.blade.php b/resources/views/dashboard/users/profiles/journalists.blade.php index 18da5fa..364061f 100644 --- a/resources/views/dashboard/users/profiles/journalists.blade.php +++ b/resources/views/dashboard/users/profiles/journalists.blade.php @@ -1,5 +1,5 @@ @include('partials.dashboard.head') -@include('partials.dashboard.sidebar', ['page' => 'profile']) +@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')]) @include('partials.dashboard.header')
@@ -8,18 +8,7 @@
-
-

Profile

-
-
    -
  • Lihat informasi pribadi Anda di sini.
  • -
-
-
-
- Kembali - -
+ @include('dashboard.users.profiles.heading')
diff --git a/resources/views/dashboard/users/profiles/login-activity.blade.php b/resources/views/dashboard/users/profiles/login-activity.blade.php index bdf82df..e18dec1 100644 --- a/resources/views/dashboard/users/profiles/login-activity.blade.php +++ b/resources/views/dashboard/users/profiles/login-activity.blade.php @@ -1,5 +1,5 @@ @include('partials.dashboard.head') -@include('partials.dashboard.sidebar', ['page' => 'profile']) +@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')]) @include('partials.dashboard.header')
@@ -8,18 +8,7 @@
-
-

Profile

-
-
    -
  • Lihat informasi pribadi Anda di sini.
  • -
-
-
-
- Kembali - -
+ @include('dashboard.users.profiles.heading')
diff --git a/resources/views/dashboard/users/profiles/media.blade.php b/resources/views/dashboard/users/profiles/media.blade.php index 5d1c877..e3781d2 100644 --- a/resources/views/dashboard/users/profiles/media.blade.php +++ b/resources/views/dashboard/users/profiles/media.blade.php @@ -1,5 +1,5 @@ @include('partials.dashboard.head') -@include('partials.dashboard.sidebar', ['page' => 'profile']) +@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')]) @include('partials.dashboard.header')
@@ -8,18 +8,7 @@
-
-

Profile

-
-
    -
  • Lihat informasi pribadi Anda di sini.
  • -
-
-
-
- Kembali - -
+ @include('dashboard.users.profiles.heading')
diff --git a/resources/views/dashboard/users/profiles/tabs.blade.php b/resources/views/dashboard/users/profiles/tabs.blade.php index 6ddb1f0..a90345c 100644 --- a/resources/views/dashboard/users/profiles/tabs.blade.php +++ b/resources/views/dashboard/users/profiles/tabs.blade.php @@ -1,8 +1,9 @@ +@if ($page === 'profile') +@elseif ($page === 'show-user') + +@endif diff --git a/routes/web.php b/routes/web.php index ba0b672..e9a099f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -466,7 +466,7 @@ Route::get('/', 'index')->name('index'); Route::get('/create', 'create')->name('create'); Route::post('/', 'store')->name('store'); - Route::get('/{id}/show', 'show')->name('show'); + Route::get('/{id}/{type}/show', 'show')->name('show'); Route::get('/{id}/edit', 'edit')->name('edit'); Route::put('/{id}', 'update')->name('update'); Route::get('/{id}/reset', 'resetPassword')->name('reset.password');