feat: user profile
This commit is contained in:
parent
614dd4c589
commit
0d2c8b64b9
@ -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>';
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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 ">
|
||||
|
||||
@ -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">
|
||||
|
||||
102
resources/views/dashboard/users/profiles/account.blade.php
Normal file
102
resources/views/dashboard/users/profiles/account.blade.php
Normal 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])
|
||||
217
resources/views/dashboard/users/profiles/company.blade.php
Normal file
217
resources/views/dashboard/users/profiles/company.blade.php
Normal 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])
|
||||
128
resources/views/dashboard/users/profiles/journalists.blade.php
Normal file
128
resources/views/dashboard/users/profiles/journalists.blade.php
Normal 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])
|
||||
@ -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"> </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'])
|
||||
115
resources/views/dashboard/users/profiles/media.blade.php
Normal file
115
resources/views/dashboard/users/profiles/media.blade.php
Normal 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])
|
||||
19
resources/views/dashboard/users/profiles/tabs.blade.php
Normal file
19
resources/views/dashboard/users/profiles/tabs.blade.php
Normal 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 -->
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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(){
|
||||
|
||||
Loading…
Reference in New Issue
Block a user