feat: user profile

This commit is contained in:
myuqinurrohman 2025-04-02 20:16:19 +07:00
parent 614dd4c589
commit 0d2c8b64b9
13 changed files with 797 additions and 7 deletions

View File

@ -200,3 +200,77 @@ function display_image($name, $dir = 'defaults', $default = 'default.jpg') {
return $defaultPath;
}
}
if (!function_exists('get_user_agent')) {
function get_user_agent($userAgentParam): array
{
$userAgent = $userAgentParam;
// Deteksi Sistem Operasi
$osArray = [
'Windows' => 'Windows',
'Mac' => 'Macintosh',
'Linux' => 'Linux',
'Android' => 'Android',
'iOS' => 'iPhone|iPad|iPod',
];
$osDetected = 'Unknown OS';
foreach ($osArray as $os => $pattern) {
if (preg_match("/$pattern/i", $userAgent)) {
$osDetected = $os;
break;
}
}
// Deteksi Browser
$browserArray = [
'Chrome' => 'Chrome',
'Firefox' => 'Firefox',
'Safari' => 'Safari',
'Edge' => 'Edg', // Microsoft Edge pakai "Edg" di User-Agent
'Opera' => 'Opera|OPR',
'Internet Explorer' => 'MSIE|Trident',
];
$browserDetected = 'Unknown Browser';
foreach ($browserArray as $browser => $pattern) {
if (preg_match("/$pattern/i", $userAgent)) {
$browserDetected = $browser;
break;
}
}
return [
'os' => $osDetected,
'browser' => $browserDetected,
'user_agent' => $userAgent,
];
}
}
if (!function_exists('display_file')) {
function display_file($dir, $filename)
{
$path = storage_path("app/public/uploads/{$dir}/{$filename}");
if(!filled($filename)){
return '<p class="text-center">Belum ditambahkan.</p>';
}
if (!file_exists($path)) {
return '<p class="text-center">File tidak ditemukan.</p>';
}
$mimeType = mime_content_type($path);
$fileUrl = asset("storage/{$filename}");
if (str_contains($mimeType, 'image')) {
return "<img src='{$fileUrl}' alt='File Image' class='img-fluid'>";
} elseif ($mimeType === 'application/pdf') {
return "<iframe src='{$fileUrl}' width='100%' height='600px'></iframe>";
}
return '<p class="text-center">Format file tidak didukung</p>';
}
}

View File

@ -5,9 +5,11 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\ResetPasswordRequest;
use App\Http\Requests\UserRequest;
use App\Models\LoginHistory;
use App\Models\Role;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
@ -157,4 +159,27 @@ public function destroy($id)
}
}
public function profile($type){
$data = [
'title' => 'Detail Akun',
'user' => Auth::user(),
'roles' => Role::all(),
'type' => $type
];
if($type === 'account'){
return view('dashboard.users.profiles.account', $data);
}elseif($type === 'login-activities'){
$data['loginActivities'] = LoginHistory::where('user_id', Auth::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);
}
}
}

View File

@ -1,5 +1,5 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'media_monitorings'])
@include('partials.dashboard.sidebar', ['page' => 'companies'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">

View File

@ -37,7 +37,7 @@
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nomor Telepon</span>
<span class="profile-ud-value">{{$journalist->email}}</span>
<span class="profile-ud-value">{{$journalist->phone_number}}</span>
</div>
</div>
<div class="profile-ud-item">

View File

@ -0,0 +1,102 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'profile'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<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>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
@include('dashboard.users.profiles.tabs')
<div class="card-inner">
<div class="nk-block">
<div class="nk-block-head">
<h5 class="title">Informasi Akun</h5>
<p>Informasi umum terkait akun Anda</p>
</div><!-- .nk-block-head -->
<div class="profile-ud-list">
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nama</span>
<span class="profile-ud-value">{{$user->name}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Email</span>
<span class="profile-ud-value">{{$user->email}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Role/Hak Akses</span>
<span class="profile-ud-value">{{$user->role->name}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Status</span>
<span class="profile-ud-value">
@switch($user->status)
@case(0)
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
@break
@case(1)
<span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span>
@break
@case(2)
<span class="profile-ud-value"><span class="badge bg-danger">Nonaktif</span></span>
@break
@case(3)
<span class="profile-ud-value"><span class="badge bg-danger">Ditolak</span></span>
@break
@default
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
@endswitch
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Dibuat Pada</span>
<span class="profile-ud-value">{{idn_date($user->created_at, 'd F Y')}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Pembaruan Terakhir</span>
<span class="profile-ud-value">{{idn_date($user->updated_at, 'd F Y')}}</span>
</div>
</div>
</div><!-- .profile-ud-list -->
</div><!-- .nk-block -->
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div><!-- .card -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -0,0 +1,217 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'profile'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<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>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
@include('dashboard.users.profiles.tabs')
<div class="card-inner">
<div class="nk-block">
<div class="nk-block-head">
<h5 class="title">Informasi Perusahaan</h5>
<p>Informasi umum terkait perusahaan Anda</p>
</div><!-- .nk-block-head -->
<div class="profile-ud-list">
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nama Perusahaan</span>
<span class="profile-ud-value">{{$user->company->name ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Email Perusahaan</span>
<span class="profile-ud-value">{{$user->company->email ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Direktur</span>
<span class="profile-ud-value">{{$user->company->director_name ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">NIK Direktur</span>
<span class="profile-ud-value">{{$user->company->director_nik ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Alamat</span>
<span class="profile-ud-value">{{$user->company->address ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Akta Pendirian</span>
<span class="profile-ud-value">{{$user->company->deed_incorporation ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">SPT Tahunan</span>
<span class="profile-ud-value">{{$user->company->annual_tax_return ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">NPWP</span>
<span class="profile-ud-value">{{$user->company->tax_id_number ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">PKP</span>
<span class="profile-ud-value">{{$user->company->taxable_enterprise ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Suket Domisili</span>
<span class="profile-ud-value">{{$user->company->domicile_certificate ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">SIUP</span>
<span class="profile-ud-value">{{$user->company->trade_license ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Profile</span>
<span class="profile-ud-value">{{$user->company->profile ?? '-'}}</span>
</div>
</div>
</div><!-- .profile-ud-list -->
</div><!-- .nk-block -->
{{-- <div class="nk-divider divider md"></div> --}}
<div class="nk-block">
{{-- <div class="nk-block-head nk-block-head-sm nk-block-between">
<h5 class="title">Admin Note</h5>
</div><!-- .nk-block-head --> --}}
<div id="accordion" class="accordion">
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#director-nik-doc">
<h6 class="title">Dokumen NIK Direktur</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="director-nik-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->director_nik_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#deed-incorporation-doc">
<h6 class="title">Dokumen Akta Pendirian</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="deed-incorporation-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->deed_incorporation_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#annual-tax-return-doc">
<h6 class="title">Dokumen SPT Tahunan</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="annual-tax-return-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->annual_tax_return_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#tax-id-number-doc">
<h6 class="title">Dokumen NPWP</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="tax-id-number-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->tax_id_number_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#taxable-enterprise-doc">
<h6 class="title">Dokumen PKP</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="taxable-enterprise-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->taxable_enterprise_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#domicile-certificate">
<h6 class="title">Dokumen Suket Domisili</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="domicile-certificate" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->domicile_certificate) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#trade-license-doc">
<h6 class="title">Dokumen SIUP</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="trade-license-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->trade_license_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#profile-doc">
<h6 class="title">Dokumen Profile</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="profile-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->profile_doc) !!}
</div>
</div>
</div>
</div>
</div><!-- .nk-block -->
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div><!-- .card -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -0,0 +1,128 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'profile'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<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>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
@include('dashboard.users.profiles.tabs')
<div class="card-inner">
<div class="nk-block">
<div class="nk-block-head">
<h5 class="title">Informasi Jurnalis</h5>
<p>Informasi umum terkait jurnalis Anda</p>
</div><!-- .nk-block-head -->
@foreach ($user->company->media->journalists as $journalist)
<div class="card card-bordered card-preview mb-2">
<div class="card-inner">
<div id="accordion-{{$loop->iteration}}" class="accordion accordion-s3">
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#accordion-item-2-2">
<h6 class="title">
<div class="user-card">
<div class="user-avatar sm bg-primary">
<em class="icon ni ni-user-alt"></em>
</div>
<div class="user-name" style="font-size: 1.1rem !important;">
<span class="tb-lead">{{$journalist->name}}</span>
</div>
</div>
</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="accordion-item-2-2" data-bs-parent="#accordion-{{$loop->iteration}}">
<div class="accordion-inner">
{{-- <div class="nk-divider divider md"></div> --}}
<div class="profile-ud-list">
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nama Jurnalis</span>
<span class="profile-ud-value">{{$journalist->name}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Email</span>
<span class="profile-ud-value">{{$journalist->email}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nomor Telepon</span>
<span class="profile-ud-value">{{$journalist->phone_number}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Kartu Pers</span>
<span class="profile-ud-value">
{{$journalist->press_card ?? '-'}}
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Sertifikat UKW</span>
<span class="profile-ud-value">
{{$journalist->ukw_sertificate ?? '-'}}
</span>
</div>
</div>
</div><!-- .profile-ud-list -->
<div class="nk-divider divider md"></div>
<div class="nk-block">
<div class="bq-note">
<div class="bq-note-item">
<span class="profile-ud-label mb-1">Dokumen Kartu Pers</span>
<div class="bq-note-text">
{!! display_file('journalists', $journalist->press_card_doc) !!}
</div>
</div><!-- .bq-note-item -->
<div class="bq-note-item">
<span class="profile-ud-label mb-1">Dokumen Sertifikat UKW</span>
<div class="bq-note-text">
{!! display_file('journalists', $journalist->ukw_sertificate_doc) !!}
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
</div>
</div><!-- .card-preview -->
@endforeach
</div><!-- .nk-block -->
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div><!-- .card -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -0,0 +1,72 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'profile'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<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>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
@include('dashboard.users.profiles.tabs')
<div class="card-inner">
<div class="nk-block">
<div class="nk-block-head">
<h5 class="title">Informasi Aktivitas Login</h5>
<p>Informasi umum terkait aktivitas/histori login akun Anda.</p>
</div><!-- .nk-block-head -->
<div class="nk-block card">
<table class="table table-ulogs">
<thead class="table-light">
<tr>
<th class="tb-col-os"><span class="overline-title">Browser <span class="d-sm-none">/ IP</span></span></th>
<th class="tb-col-ip"><span class="overline-title">IP</span></th>
<th class="tb-col-time"><span class="overline-title">Waktu</span></th>
<th class="tb-col-action"><span class="overline-title">&nbsp;</span></th>
</tr>
</thead>
<tbody>
@foreach ($loginActivities as $item)
<tr>
<td class="tb-col-os">{{get_user_agent($item->user_agent)['browser']}} on {{get_user_agent($item->user_agent)['os']}}</td>
<td class="tb-col-ip"><span class="sub-text">{{$item->ip_address}}</span></td>
<td class="tb-col-time"><span class="sub-text">{{idn_date($item->logged_in_at, 'H:i d F Y')}}</span></td>
<td class="tb-col-action"></td>
</tr>
@endforeach
</tbody>
</table>
</div><!-- .nk-block-head -->
<div style="margin-top: 1rem;">
{{$loginActivities->links()}}
</div>
</div><!-- .nk-block -->
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div><!-- .card -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false, 'datatable' => 'login_activity'])

View File

@ -0,0 +1,115 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'profile'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<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>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
@include('dashboard.users.profiles.tabs')
<div class="card-inner">
<div class="nk-block">
<div class="nk-block-head">
<h5 class="title">Informasi Media</h5>
<p>Informasi umum terkait media Anda</p>
</div><!-- .nk-block-head -->
<div class="profile-ud-list">
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nama Media</span>
<span class="profile-ud-value">{{$user->company->media->name ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Jenis</span>
<span class="profile-ud-value">{{ucfirst($user->company->media->type) ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Klasifikasi</span>
<span class="profile-ud-value">{{ucfirst($user->company->media->classification) ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Alamat</span>
<span class="profile-ud-value">{{$user->company->media->address ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Organisasi Kewartawanan</span>
<span class="profile-ud-value">{{$user->company->media->journalism_organization ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Sertifikat Dewan Press</span>
<span class="profile-ud-value">{{$user->company->media->press_council_certificate ?? '-'}}</span>
</div>
</div>
</div><!-- .profile-ud-list -->
</div><!-- .nk-block -->
{{-- <div class="nk-divider divider md"></div> --}}
<div class="nk-block">
{{-- <div class="nk-block-head nk-block-head-sm nk-block-between">
<h5 class="title">Admin Note</h5>
</div><!-- .nk-block-head --> --}}
<div id="accordion" class="accordion">
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#journalism-organization-doc">
<h6 class="title">Dokumen Organisasi Kewartawanan</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="journalism-organization-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('media', $user->company->media->journalism_organization_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#press-council-certificate-doc">
<h6 class="title">Dokumen Sertifikat Dewan Press</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="press-council-certificate-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('media', $user->company->press_council_certificate_doc) !!}
</div>
</div>
</div>
</div>
</div><!-- .nk-block -->
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div><!-- .card -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -0,0 +1,19 @@
<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']))
<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>
<li class="nav-item">
<a class="nav-link {{$type === 'media' ? 'active' : ''}}" href="{{route('dashboard.users.profile', ['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.profile', ['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.profile', ['type' => 'login-activities'])}}"><em class="icon ni ni-activity"></em><span>Aktivitas Login</span></a>
</li>
</ul><!-- .nav-tabs -->

View File

@ -980,3 +980,39 @@
});
</script>
@endif
@if ($datatable === 'login_activity')
<script>
$(document).ready(function() {
$('#loginHistoriesTable').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '{{ route('dashboard.login.history.data') }}',
type: 'GET',
data: function(d) {
d.year = null;
d.month = null;
d.date = null;
d.role = null;
d.user_id = '{{Auth::user()->id}}';
}
},
columns: [
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
{ data: 'name', name: 'name' },
// { data: 'role', name: 'role' },
{ data: 'logged_in_at', name: 'logged_in_at' },
{ data: 'created_at', name: 'created_at', visible: false },
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
],
language: datatableLanguage,
autoWidth: false,
order: [[4, 'desc']],
pagingType: "simple",
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
scrollX: true
});
});
</script>
@endif

View File

@ -135,7 +135,7 @@
</div>
<div class="dropdown-inner">
<ul class="link-list">
<li><a href="javascript:void(0);"><em class="icon ni ni-user-alt"></em><span>Profile</span></a></li>
<li><a href="{{route('dashboard.users.profile', ['type' => 'account'])}}"><em class="icon ni ni-user-alt"></em><span>Profile</span></a></li>
<li><a href="javascript:void(0);"><em class="icon ni ni-setting-alt"></em><span>Pengaturan Akun</span></a></li>
<li><a class="dark-switch" href="#"><em class="icon ni ni-moon"></em><span>Mode Gelap</span></a></li>
</ul>

View File

@ -460,9 +460,9 @@
});
});
Route::middleware('role:1')->group(function(){
Route::prefix('users')->name('users.')->group(function(){
Route::controller(UserController::class)->group(function(){
Route::prefix('users')->name('users.')->group(function(){
Route::controller(UserController::class)->group(function(){
Route::middleware(['role:1'])->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
@ -475,8 +475,10 @@
Route::delete('/{id}', 'destroy')->name('destroy');
});
Route::get('/data', [DatatableController::class, 'user'])->name('data');
Route::get('/profile/{type}', 'profile')->name('profile');
});
Route::get('/data', [DatatableController::class, 'user'])->name('data');
});
Route::middleware('role:1')->group(function(){