chore: add issue count column in classification and sub classification

This commit is contained in:
myuqinurrohman 2025-03-21 13:11:15 +07:00
parent f51a2ef4a3
commit e4fd3ee809
20 changed files with 201 additions and 88 deletions

View File

@ -25,13 +25,12 @@ public function create(){
public function store(ClassificationRequest $request){ public function store(ClassificationRequest $request){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['slug'] = Str::slug($validatedData['name']);
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$createdClassification = Classification::create($validatedData); $createdClassification = Classification::create($validatedData);
if($createdClassification){ if($createdClassification){
return redirect()->back()->with('success-status', 'Berhasil menambahkan klasifikasi.'); return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil menambahkan klasifikasi.');
}else{ }else{
return redirect()->back()->with('failed-status', 'Gagal menambahkan klasifikasi.'); return redirect()->back()->with('failed-status', 'Gagal menambahkan klasifikasi.');
} }
@ -48,7 +47,6 @@ public function edit($id){
public function update(ClassificationRequest $request, $id){ public function update(ClassificationRequest $request, $id){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['slug'] = Str::slug($validatedData['name']);
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$classification = Classification::findOrFail(decrypt_id($id)); $classification = Classification::findOrFail(decrypt_id($id));

View File

@ -56,11 +56,21 @@ public function classification(Request $request){
return $subClassificationCount; return $subClassificationCount;
} }
})
->addColumn('issues', function ($data) {
$issueCount = $data->issues->count();
if($issueCount > 0){
return $issueCount. ' [<a href="'.route('dashboard.issue.managements.index', ['classification' => encrypt_id($data->id)]).'">Lihat</a>]';
}else{
return $issueCount;
}
}) })
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.classifications.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.classifications.show', ['id' => encrypt_id($data->id)]);
$addSubClassificationUrl = route('dashboard.sub.classifications.create', ['classification' => $data->slug]); $addSubClassificationUrl = route('dashboard.sub.classifications.create', ['classification' => encrypt_id($data->id)]);
$editUrl = route('dashboard.classifications.edit', ['id' => encrypt_id($data->id)]); $editUrl = route('dashboard.classifications.edit', ['id' => encrypt_id($data->id)]);
@ -92,7 +102,7 @@ public function classification(Request $request){
return $dropdown; return $dropdown;
}) })
->rawColumns(['sub_classifications', 'status', 'action']) ->rawColumns(['sub_classifications', 'issues', 'status', 'action'])
->make(true); ->make(true);
} }
@ -134,6 +144,16 @@ public function subClassification(Request $request){
return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Aktif</span>'; return '<span class="badge bg-primary" style="display:inline-block;font-size:0.8rem;">Aktif</span>';
} }
}) })
->addColumn('issues', function ($data) {
$issueCount = $data->issues->count();
if($issueCount > 0){
return $issueCount. ' [<a href="'.route('dashboard.issue.managements.index', ['sub_classification' => encrypt_id($data->id)]).'">Lihat</a>]';
}else{
return $issueCount;
}
})
->addColumn('action', function ($data) { ->addColumn('action', function ($data) {
$showUrl = route('dashboard.sub.classifications.show', ['id' => encrypt_id($data->id)]); $showUrl = route('dashboard.sub.classifications.show', ['id' => encrypt_id($data->id)]);
@ -163,7 +183,7 @@ public function subClassification(Request $request){
return $dropdown; return $dropdown;
}) })
->rawColumns(['status', 'action']) ->rawColumns(['issues', 'status', 'action'])
->make(true); ->make(true);
} }
@ -1662,7 +1682,20 @@ public function mediaMonitoring(Request $request){
public function issueManagement(Request $request){ public function issueManagement(Request $request){
if ($request->ajax()) { if ($request->ajax()) {
$classificationParam = $request->input('classification', null);
$subClassificationParam = $request->input('sub_classification', null);
if($classificationParam){
$data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->where('classification_id', decrypt_id($classificationParam))->get();
}else if($subClassificationParam){
$data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->where('sub_classification_id', decrypt_id($subClassificationParam))->get();
}else{
$data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->get(); $data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->get();
}
return DataTables::of($data) return DataTables::of($data)
->addIndexColumn() ->addIndexColumn()

View File

@ -16,9 +16,14 @@
class IssueManagementController extends Controller class IssueManagementController extends Controller
{ {
public function index(){ public function index(Request $request){
return view('dashboard.issue-managements.index', [ return view('dashboard.issue-managements.index', [
'title' => 'Manajemen Isu' 'title' => 'Manajemen Isu',
'classification' => $request->input('classification', null),
'sub_classification' => $request->input('sub_classification', null),
'location' => $request->input('location', null),
'sub_location' => $request->input('sub_location', null),
'agency' => $request->input('agency', null),
]); ]);
} }

View File

@ -42,13 +42,12 @@ public function create(Request $request){
public function store(SubClassificationRequest $request){ public function store(SubClassificationRequest $request){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['slug'] = Str::slug($validatedData['name']);
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$createdSubClassification = SubClassification::create($validatedData); $createdSubClassification = SubClassification::create($validatedData);
if($createdSubClassification){ if($createdSubClassification){
return redirect()->back()->with('success-status', 'Berhasil menambahkan sub klasifikasi.'); return redirect()->route('dashboard.sub.classifications.index')->with('success-status', 'Berhasil menambahkan sub klasifikasi.');
}else{ }else{
return redirect()->back()->with('failed-status', 'Gagal menambahkan sub klasifikasi.'); return redirect()->back()->with('failed-status', 'Gagal menambahkan sub klasifikasi.');
} }
@ -66,7 +65,6 @@ public function edit($id){
public function update(SubClassificationRequest $request, $id){ public function update(SubClassificationRequest $request, $id){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['slug'] = Str::slug($validatedData['name']);
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$subClassification = SubClassification::findOrFail(decrypt_id($id)); $subClassification = SubClassification::findOrFail(decrypt_id($id));

View File

@ -20,4 +20,8 @@ class Classification extends Model
public function subClassifications(){ public function subClassifications(){
return $this->hasMany(SubClassification::class, 'classification_id', 'id'); return $this->hasMany(SubClassification::class, 'classification_id', 'id');
} }
public function issues(){
return $this->hasMany(IssueManagement::class, 'classification_id', 'id');
}
} }

View File

@ -19,4 +19,8 @@ class SubClassification extends Model
public function classification(){ public function classification(){
return $this->belongsTo(Classification::class, 'classification_id', 'id'); return $this->belongsTo(Classification::class, 'classification_id', 'id');
} }
public function issues(){
return $this->hasMany(IssueManagement::class, 'sub_classification_id', 'id');
}
} }

View File

@ -12,7 +12,7 @@
<div class="card-head"> <div class="card-head">
<h5 class="card-title">{{$title}}</h5> <h5 class="card-title">{{$title}}</h5>
</div> </div>
<form action="{{route('dashboard.classifications.store')}}" method="post"> <form action="{{route('dashboard.classifications.store')}}" method="post" id="myForm">
@csrf @csrf
<div class="row g-4"> <div class="row g-4">
<div class="col-lg-6"> <div class="col-lg-6">
@ -49,7 +49,7 @@
<hr> <hr>
<div class="form-group d-flex justify-content-end"> <div class="form-group d-flex justify-content-end">
<a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a> <a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
<button type="submit" class="btn btn-md btn-primary">Tambahkan</button> <button type="button" class="btn btn-md btn-primary" id="submitButton">Tambahkan</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
<div class="card-head"> <div class="card-head">
<h5 class="card-title">{{$title}}</h5> <h5 class="card-title">{{$title}}</h5>
</div> </div>
<form action="{{route('dashboard.classifications.update', ['id' => encrypt_id($classification->id)])}}" method="post"> <form action="{{route('dashboard.classifications.update', ['id' => encrypt_id($classification->id)])}}" method="post" id="myForm">
@csrf @csrf
@method('put') @method('put')
<div class="row g-4"> <div class="row g-4">
@ -49,8 +49,12 @@
<div class="col-12"> <div class="col-12">
<hr> <hr>
<div class="form-group d-flex justify-content-end"> <div class="form-group d-flex justify-content-end">
@if (request()->query('show'))
<a href="{{route('dashboard.classifications.show', ['id' => encrypt_id($classification->id)])}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
@else
<a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a> <a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
<button type="submit" class="btn btn-md btn-primary">Simpan</button> @endif
<button type="button" class="btn btn-md btn-primary" id="submitButton">Simpan</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -44,11 +44,12 @@
<table class="table table-striped table-bordered nowrap" id="classificationsTable" border="1"> <table class="table table-striped table-bordered nowrap" id="classificationsTable" border="1">
<thead> <thead>
<tr> <tr>
<th style="width: 10% !important;">No</th> <th>No</th>
<th>Nama</th> <th>Nama</th>
<th style="width: 13% !important;">Status</th> <th>Status</th>
<th style="width: 17% !important;">Sub Klasifikasi</th> <th>Sub Klasifikasi</th>
<th style="width: 10% !important;"></th> <th>Isu</th>
<th></th>
</tr> </tr>
</thead> </thead>
</table> </table>

View File

@ -1,5 +1,5 @@
@include('partials.dashboard.head') @include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'journalists']) @include('partials.dashboard.sidebar', ['page' => 'classifications'])
@include('partials.dashboard.header') @include('partials.dashboard.header')
<!-- content @s --> <!-- content @s -->
<div class="nk-content "> <div class="nk-content ">
@ -12,7 +12,7 @@
<div class="card-content"> <div class="card-content">
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card"> <ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Jurnalis</span></a> <a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Klasifikasi</span></a>
</li> </li>
</ul><!-- .nav-tabs --> </ul><!-- .nav-tabs -->
<div class="card-inner"> <div class="card-inner">
@ -44,6 +44,30 @@
</div> </div>
</div> </div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Sub Klasifikasi</span>
<span class="profile-ud-value">
@if ($classification->subClassifications->count() > 0)
<a href="{{route('dashboard.sub.classifications.index', ['classification' => encrypt_id($classification->id)])}}"><u>{{$classification->subClassifications->count()}}</u></a>
@else
{{$classification->subClassifications->count()}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Isu</span>
<span class="profile-ud-value">
@if ($classification->issues->count() > 0)
<a href="{{route('dashboard.issue.managements.index', ['classification' => encrypt_id($classification->id)])}}"><u>{{$classification->issues->count()}}</u></a>
@else
{{$classification->issues->count()}}
@endif
</span>
</div>
</div>
</div><!-- .profile-ud-list --> </div><!-- .profile-ud-list -->
</div><!-- .nk-block --> </div><!-- .nk-block -->
{{-- <div class="nk-divider divider md"></div> --}} {{-- <div class="nk-divider divider md"></div> --}}
@ -59,22 +83,10 @@
</div><!-- .bq-note-item --> </div><!-- .bq-note-item -->
</div><!-- .bq-note --> </div><!-- .bq-note -->
</div><!-- .nk-block --> </div><!-- .nk-block -->
{{-- <div class="nk-block">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">Konten</span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
{!!$journalistMonitoring->content!!}
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block --> --}}
<hr> <hr>
<div class="nk-block d-flex justify-content-end"> <div class="nk-block d-flex justify-content-end">
<a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a> <a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
{{-- <a href="{{route('dashboard.content.recaps.edit', ['id' => encrypt_id($journalistMonitoring->id)])}}" class="btn btn-warning"><span>Ubah</span></a> --}} <a href="{{route('dashboard.classifications.edit', ['id' => encrypt_id($classification->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
</div><!-- .nk-block --> </div><!-- .nk-block -->
</div><!-- .card-inner --> </div><!-- .card-inner -->
</div><!-- .card-content --> </div><!-- .card-content -->

View File

@ -30,6 +30,7 @@
</div><!-- .nk-block-head --> </div><!-- .nk-block-head -->
<div class="nk-block"> <div class="nk-block">
<div class="row g-gs"> <div class="row g-gs">
@if (is_role(['1']))
<div class="col-xxl-3 col-md-6"> <div class="col-xxl-3 col-md-6">
<div class="card card-full overflow-hidden"> <div class="card card-full overflow-hidden">
<div class="nk-ecwg nk-ecwg7 h-100"> <div class="nk-ecwg nk-ecwg7 h-100">
@ -210,6 +211,7 @@
</div> </div>
</div><!-- .card --> </div><!-- .card -->
</div><!-- .col --> </div><!-- .col -->
@endif
</div><!-- .row --> </div><!-- .row -->
</div><!-- .nk-block --> </div><!-- .nk-block -->
<div class="nk-block"> <div class="nk-block">

View File

@ -12,7 +12,7 @@
<div class="card-head"> <div class="card-head">
<h5 class="card-title">{{$title}}</h5> <h5 class="card-title">{{$title}}</h5>
</div> </div>
<form action="{{route('dashboard.sub.classifications.store')}}" method="post"> <form action="{{route('dashboard.sub.classifications.store')}}" method="post" id="myForm">
@csrf @csrf
<div class="row g-4"> <div class="row g-4">
<div class="col-lg-6"> <div class="col-lg-6">
@ -67,7 +67,7 @@
<hr> <hr>
<div class="form-group d-flex justify-content-end"> <div class="form-group d-flex justify-content-end">
<a href="{{route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a> <a href="{{route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
<button type="submit" class="btn btn-md btn-primary">Tambahkan</button> <button type="button" class="btn btn-md btn-primary" id="submitButton">Tambahkan</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
<div class="card-head"> <div class="card-head">
<h5 class="card-title">{{$title}}</h5> <h5 class="card-title">{{$title}}</h5>
</div> </div>
<form action="{{route('dashboard.sub.classifications.update', ['id' => encrypt_id($subClassification->id)])}}" method="post"> <form action="{{route('dashboard.sub.classifications.update', ['id' => encrypt_id($subClassification->id)])}}" method="post" id="myForm">
@csrf @csrf
@method('put') @method('put')
<div class="row g-4"> <div class="row g-4">
@ -61,8 +61,12 @@
<div class="col-12"> <div class="col-12">
<hr> <hr>
<div class="form-group d-flex justify-content-end"> <div class="form-group d-flex justify-content-end">
@if (request()->query('show'))
<a href="{{route('dashboard.sub.classifications.show', ['id' => encrypt_id($subClassification->id)])}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
@else
<a href="{{route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a> <a href="{{route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
<button type="submit" class="btn btn-md btn-primary">Simpan</button> @endif
<button type="button" class="btn btn-md btn-primary" id="submitButton">Simpan</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -44,11 +44,12 @@
<table class="table table-striped table-bordered nowrap" id="subClassificationsTable" border="1"> <table class="table table-striped table-bordered nowrap" id="subClassificationsTable" border="1">
<thead> <thead>
<tr> <tr>
<th style="width: 10% !important;">No</th> <th>No</th>
<th>Klasifikasi</th> <th>Klasifikasi</th>
<th>Nama</th> <th>Nama</th>
<th style="width: 13% !important;">Status</th> <th>Isu</th>
<th style="width: 10% !important;"></th> <th>Status</th>
<th></th>
</tr> </tr>
</thead> </thead>
</table> </table>

View File

@ -1,5 +1,5 @@
@include('partials.dashboard.head') @include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'journalists']) @include('partials.dashboard.sidebar', ['page' => 'sub_classifications'])
@include('partials.dashboard.header') @include('partials.dashboard.header')
<!-- content @s --> <!-- content @s -->
<div class="nk-content "> <div class="nk-content ">
@ -12,7 +12,7 @@
<div class="card-content"> <div class="card-content">
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card"> <ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Jurnalis</span></a> <a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Sub Klasifikasi</span></a>
</li> </li>
</ul><!-- .nav-tabs --> </ul><!-- .nav-tabs -->
<div class="card-inner"> <div class="card-inner">
@ -34,6 +34,18 @@
<span class="profile-ud-value">{{$subClassification->classification->name}}</span> <span class="profile-ud-value">{{$subClassification->classification->name}}</span>
</div> </div>
</div> </div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Isu</span>
<span class="profile-ud-value">
@if ($subClassification->issues->count() > 0)
<a href="{{route('dashboard.issue.managements.index', ['sub_classification' => encrypt_id($subClassification->id)])}}"><u>{{$subClassification->issues->count()}}</u></a>
@else
{{$subClassification->issues->count()}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item"> <div class="profile-ud-item">
<div class="profile-ud wider"> <div class="profile-ud wider">
<span class="profile-ud-label">Status</span> <span class="profile-ud-label">Status</span>
@ -65,22 +77,10 @@
</div><!-- .bq-note-item --> </div><!-- .bq-note-item -->
</div><!-- .bq-note --> </div><!-- .bq-note -->
</div><!-- .nk-block --> </div><!-- .nk-block -->
{{-- <div class="nk-block">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">Konten</span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
{!!$journalistMonitoring->content!!}
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block --> --}}
<hr> <hr>
<div class="nk-block d-flex justify-content-end"> <div class="nk-block d-flex justify-content-end">
<a href="{{route('dashboard.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a> <a href="{{route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
{{-- <a href="{{route('dashboard.content.recaps.edit', ['id' => encrypt_id($journalistMonitoring->id)])}}" class="btn btn-warning"><span>Ubah</span></a> --}} <a href="{{route('dashboard.sub.classifications.edit', ['id' => encrypt_id($subClassification->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
</div><!-- .nk-block --> </div><!-- .nk-block -->
</div><!-- .card-inner --> </div><!-- .card-inner -->
</div><!-- .card-content --> </div><!-- .card-content -->

View File

@ -38,20 +38,20 @@
@enderror @enderror
</div> </div>
</div> </div>
@if ($user->role_id !== 3)
<div class="col-lg-6"> <div class="col-lg-6">
<div class="form-group"> <div class="form-group">
<label class="form-label">Role<span class="required-input">*</span></label> <label class="form-label">Role<span class="required-input">*</span></label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="role_id"> <select class="form-select js-select2" name="role_id">
@foreach ($roles as $role) @foreach ($roles as $role)
@if ($role->id != '3')
<option value="{{$role->id}}" {{$user->role_id == $role->id ? 'selected' : ''}}>{{$role->name}}</option> <option value="{{$role->id}}" {{$user->role_id == $role->id ? 'selected' : ''}}>{{$role->name}}</option>
@endif
@endforeach @endforeach
</select> </select>
</div> </div>
</div> </div>
</div> </div>
@endif
<div class="col-lg-6"> <div class="col-lg-6">
<div class="form-group"> <div class="form-group">
<label class="form-label">Status<span class="required-input">*</span></label> <label class="form-label">Status<span class="required-input">*</span></label>

View File

@ -33,13 +33,33 @@
{ data: 'name', name: 'name' }, { data: 'name', name: 'name' },
{ data: 'status', name: 'status' }, { data: 'status', name: 'status' },
{ data: 'sub_classifications', name: 'sub_classifications' }, { data: 'sub_classifications', name: 'sub_classifications' },
{ data: 'issues', name: 'issues' },
{ data: 'action', name: 'action', orderable: false, searchable: false }, { data: 'action', name: 'action', orderable: false, searchable: false },
{ data: 'created_at', name: 'created_at', visible: false }, { data: 'created_at', name: 'created_at', visible: false },
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false }, { data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
], ],
columnDefs: [
{ targets: 0, width: 'auto' },
{ targets: 2, width: '7%' },
{ targets: 3, width: '10%' },
{ targets: 4, width: '10%' },
{ targets: 5, width: 'auto' },
{
targets: [1],
createdCell: function(td, cellData, rowData, row, col) {
$(td).css({
'word-wrap': 'break-word',
'white-space': 'normal',
'overflow-wrap': 'break-word'
});
}
}
],
language: datatableLanguage, language: datatableLanguage,
autoWidth: false, autoWidth: false,
order: [[5, 'desc']], order: [
[6, 'desc'],
],
pagingType: "simple", pagingType: "simple",
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']], lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
scrollX: true scrollX: true
@ -60,14 +80,34 @@
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false }, { data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
{ data: 'classification', name: 'classification' }, { data: 'classification', name: 'classification' },
{ data: 'name', name: 'name' }, { data: 'name', name: 'name' },
{ data: 'issues', name: 'issues' },
{ data: 'status', name: 'status' }, { data: 'status', name: 'status' },
{ data: 'action', name: 'action', orderable: false, searchable: false }, { data: 'action', name: 'action', orderable: false, searchable: false },
{ data: 'created_at', name: 'created_at', visible: false }, { data: 'created_at', name: 'created_at', visible: false },
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false }, { data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
], ],
columnDefs: [
{ targets: 0, width: 'auto' },
{ targets: 1, width: '10%' },
{ targets: 3, width: '10%' },
{ targets: 4, width: '10%' },
{ targets: 5, width: 'auto' },
{
targets: [2],
createdCell: function(td, cellData, rowData, row, col) {
$(td).css({
'word-wrap': 'break-word',
'white-space': 'normal',
'overflow-wrap': 'break-word'
});
}
}
],
language: datatableLanguage, language: datatableLanguage,
autoWidth: false, autoWidth: false,
order: [[5, 'desc']], order: [
[6, 'desc']
],
pagingType: "simple", pagingType: "simple",
lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']], lengthMenu: [[10, 25, 50, 100, -1], ['Tampilkan 10 data', 'Tampilkan 25 data', 'Tampilkan 50 data', 'Tampilkan 100 data', 'Tampilkan semua']],
scrollX: true scrollX: true
@ -729,7 +769,7 @@
$('#issueManagementsTable').DataTable({ $('#issueManagementsTable').DataTable({
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: '{{ route('dashboard.issue.managements.data') }}', ajax: '{{ route('dashboard.issue.managements.data', ["classification" => $classification, "sub_classification" => $sub_classification, "location" => $location, "sub_location" => $sub_location, "agency" => $agency]) }}',
columns: [ columns: [
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false }, { data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
{ data: 'code', name: 'code' }, { data: 'code', name: 'code' },

View File

@ -699,6 +699,8 @@ function ecommerceBarS1(selector, set_data) {
data: [4305, 859, 482, 138] data: [4305, 859, 482, 138]
}] }]
}; };
@if(is_role(['1']))
var issueStatistics = { var issueStatistics = {
labels: ["Krisis", "Negatif", "Netral", "Positif"], labels: ["Krisis", "Negatif", "Netral", "Positif"],
dataUnit: 'Data', dataUnit: 'Data',
@ -720,6 +722,7 @@ function ecommerceBarS1(selector, set_data) {
data: ["{{ $facebookMediaMonitoring }}", "{{ $twitterMediaMonitoring }}", "{{ $websiteMediaMonitoring }}", "{{ $youtubeMediaMonitoring }}", "{{ $instagramMediaMonitoring }}", "{{ $tiktokMediaMonitoring }}", "{{ $cetakMediaMonitoring }}"] data: ["{{ $facebookMediaMonitoring }}", "{{ $twitterMediaMonitoring }}", "{{ $websiteMediaMonitoring }}", "{{ $youtubeMediaMonitoring }}", "{{ $instagramMediaMonitoring }}", "{{ $tiktokMediaMonitoring }}", "{{ $cetakMediaMonitoring }}"]
}] }]
}; };
@endif
var mediaOrderStatistics = { var mediaOrderStatistics = {
labels: ["Menunggu", "Diterima", "Ditolak"], labels: ["Menunggu", "Diterima", "Ditolak"],

View File

@ -143,7 +143,7 @@ function statusAction(url, message, confirmButtonAction) {
reverseButtons: true reverseButtons: true
}).then((result) => { }).then((result) => {
if (result.isConfirmed) { if (result.isConfirmed) {
console.log("Form akan dikirim..."); // console.log("Form akan dikirim...");
$('#myForm').off('submit').submit(); // Pastikan hanya submit 1x $('#myForm').off('submit').submit(); // Pastikan hanya submit 1x
} }

View File

@ -51,6 +51,7 @@
Route::get('/overview', 'index')->name('overview'); Route::get('/overview', 'index')->name('overview');
}); });
Route::middleware('role:1,2,4')->group(function(){
Route::prefix('classifications')->name('classifications.')->group(function(){ Route::prefix('classifications')->name('classifications.')->group(function(){
Route::controller(ClassificationController::class)->group(function(){ Route::controller(ClassificationController::class)->group(function(){
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
@ -67,7 +68,9 @@
Route::get('/data', [DatatableController::class, 'classification'])->name('data'); Route::get('/data', [DatatableController::class, 'classification'])->name('data');
}); });
});
Route::middleware('role:1,2,4')->group(function(){
Route::prefix('sub-classifications')->name('sub.classifications.')->group(function(){ Route::prefix('sub-classifications')->name('sub.classifications.')->group(function(){
Route::controller(SubClassificationController::class)->group(function(){ Route::controller(SubClassificationController::class)->group(function(){
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
@ -84,6 +87,7 @@
Route::get('/data', [DatatableController::class, 'subClassification'])->name('data'); Route::get('/data', [DatatableController::class, 'subClassification'])->name('data');
}); });
});
Route::prefix('locations')->name('locations.')->group(function(){ Route::prefix('locations')->name('locations.')->group(function(){
Route::controller(LocationController::class)->group(function(){ Route::controller(LocationController::class)->group(function(){