chore: change show or detail user UI

This commit is contained in:
myuqinurrohman 2025-04-02 21:44:08 +07:00
parent 0d2c8b64b9
commit 78909d1de4
14 changed files with 90 additions and 85 deletions

View File

@ -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']);

View File

@ -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
];

View File

@ -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();
}
}

View File

@ -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()

View File

@ -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()

View File

@ -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');
}
}

View File

@ -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')
<!-- content @s -->
<div class="nk-content ">
@ -8,18 +8,7 @@
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi pribadi Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.overview')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.overview')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@include('dashboard.users.profiles.heading')
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">

View File

@ -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')
<!-- content @s -->
<div class="nk-content ">
@ -8,18 +8,7 @@
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi pribadi Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.overview')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.overview')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@include('dashboard.users.profiles.heading')
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">

View File

@ -0,0 +1,27 @@
@if ($page === 'profile')
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi pribadi Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.overview')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.overview')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@elseif ($page === 'show-user')
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile Pengguna</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat detail informasi pengguna di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.users.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.users.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@endif

View File

@ -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')
<!-- content @s -->
<div class="nk-content ">
@ -8,18 +8,7 @@
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi pribadi Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.overview')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.overview')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@include('dashboard.users.profiles.heading')
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">

View File

@ -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')
<!-- content @s -->
<div class="nk-content ">
@ -8,18 +8,7 @@
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi pribadi Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.overview')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.overview')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@include('dashboard.users.profiles.heading')
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">

View File

@ -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')
<!-- content @s -->
<div class="nk-content ">
@ -8,18 +8,7 @@
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Profile</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi pribadi Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.overview')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.overview')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@include('dashboard.users.profiles.heading')
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">

View File

@ -1,8 +1,9 @@
@if ($page === 'profile')
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
<li class="nav-item">
<a class="nav-link {{$type === 'account' ? 'active' : ''}}" href="{{route('dashboard.users.profile', ['type' => 'account'])}}"><em class="icon ni ni-user-circle"></em><span>Akun</span></a>
</li>
@if (is_role(['3']))
@if ($user->role_id === 3)
<li class="nav-item">
<a class="nav-link {{$type === 'company' ? 'active' : ''}}" href="{{route('dashboard.users.profile', ['type' => 'company'])}}"><em class="icon ni ni-building-fill"></em><span>Perusahaan</span></a>
</li>
@ -17,3 +18,24 @@
<a class="nav-link {{$type === 'login-activities' ? 'active' : ''}}" href="{{route('dashboard.users.profile', ['type' => 'login-activities'])}}"><em class="icon ni ni-activity"></em><span>Aktivitas Login</span></a>
</li>
</ul><!-- .nav-tabs -->
@elseif ($page === 'show-user')
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
<li class="nav-item">
<a class="nav-link {{$type === 'account' ? 'active' : ''}}" href="{{route('dashboard.users.show', ['id' => encrypt_id($user->id),'type' => 'account'])}}"><em class="icon ni ni-user-circle"></em><span>Akun</span></a>
</li>
@if ($user->role_id === 3)
<li class="nav-item">
<a class="nav-link {{$type === 'company' ? 'active' : ''}}" href="{{route('dashboard.users.show', ['id' => encrypt_id($user->id),'type' => 'company'])}}"><em class="icon ni ni-building-fill"></em><span>Perusahaan</span></a>
</li>
<li class="nav-item">
<a class="nav-link {{$type === 'media' ? 'active' : ''}}" href="{{route('dashboard.users.show', ['id' => encrypt_id($user->id),'type' => 'media'])}}"><em class="icon ni ni-medium"></em><span>Media</span></a>
</li>
<li class="nav-item">
<a class="nav-link {{$type === 'journalists' ? 'active' : ''}}" href="{{route('dashboard.users.show', ['id' => encrypt_id($user->id),'type' => 'journalists'])}}"><em class="icon ni ni-user-list"></em><span>Jurnalis</span></a>
</li>
@endif
<li class="nav-item">
<a class="nav-link {{$type === 'login-activities' ? 'active' : ''}}" href="{{route('dashboard.users.show', ['id' => encrypt_id($user->id),'type' => 'login-activities'])}}"><em class="icon ni ni-activity"></em><span>Aktivitas Login</span></a>
</li>
</ul><!-- .nav-tabs -->
@endif

View File

@ -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');