chore: change content recap table view

This commit is contained in:
myuqinurrohman 2025-04-21 08:06:22 +07:00
parent 0994e1717a
commit 2ee3c08670
3 changed files with 184 additions and 19 deletions

View File

@ -14,7 +14,13 @@ class ContentRecapController extends Controller
public function index(Request $request){
return view('dashboard.content-recaps.index', [
'title' => 'Rekap Konten',
'classification' => $request->input('classification', null)
'classifications' => ContentRecapClassification::all(),
'classification' => $request->input('classification', null),
'channel' => $request->input('channel', null),
'social_media' => $request->input('social_media', null),
'posted_year' => $request->input('posted_year', null),
'posted_month' => $request->input('posted_month', null),
'posted_date' => $request->input('posted_date', null),
]);
}

View File

@ -16,18 +16,23 @@
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
<div class="toggle-expand-content" data-content="pageMenu">
<ul class="nk-block-tools g-3">
{{-- <li>
<div class="drodown">
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
<div class="dropdown-menu dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Last 30 Days</span></a></li>
<li><a href="#"><span>Last 6 Months</span></a></li>
<li><a href="#"><span>Last 1 Years</span></a></li>
</ul>
</div>
<li>
@if (filled(value: $channel) || filled(value: $social_media) || filled($posted_year) || filled($posted_month) || filled($posted_date))
<span class="mx-1">
<a href="{{route('dashboard.news.index')}}" class="text-secondary">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-xbox-x"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 2c5.523 0 10 4.477 10 10s-4.477 10 -10 10s-10 -4.477 -10 -10s4.477 -10 10 -10m3.6 5.2a1 1 0 0 0 -1.4 .2l-2.2 2.933l-2.2 -2.933a1 1 0 1 0 -1.6 1.2l2.55 3.4l-2.55 3.4a1 1 0 1 0 1.6 1.2l2.2 -2.933l2.2 2.933a1 1 0 0 0 1.6 -1.2l-2.55 -3.4l2.55 -3.4a1 1 0 0 0 -.2 -1.4" /></svg>
</a>
</span>
@endif
<div>
<a href="javascript: void(0);" class="btn btn-white btn-dim btn-outline-light" data-bs-toggle="modal" data-bs-target="#modalFilter"><em class="d-none d-sm-inline icon ni ni-filter"></em><span><span class="d-none d-md-inline">Filter</a>
</div>
</li> --}}
</li>
<li>
<div>
<a href="javascript: void(0);" class="btn btn-info" data-bs-toggle="modal" data-bs-target="#modalExport"><em class="d-none d-sm-inline icon ni ni-upload"></em><span><span class="d-none d-md-inline">Export</a>
</div>
</li>
<li class="nk-block-tools-opt"><a href="{{route('dashboard.content.recaps.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
</ul>
</div>
@ -57,6 +62,160 @@
</div>
</div>
</div>
<div class="modal fade" id="modalExport">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Export</h5>
<a href="javascript:void(0);" class="close" data-bs-dismiss="modal" aria-label="Close">
<em class="icon ni ni-cross"></em>
</a>
</div>
<form action="{{route('dashboard.news.export')}}" class="form-validate is-alter" method="post">
@csrf
<div class="modal-body">
<div class="form-group">
<label class="form-label">Kanal</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="channel" data-search="on">
<option value="all">Semua</option>
<option value="website">Website</option>
<option value="tiktok">Tiktok</option>
<option value="youtube">YouTube</option>
<option value="instagram">Instagram</option>
<option value="facebook">Facebook</option>
<option value="twitter">Twitter</option>
<option value="cetak">Cetak</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label">Klasifikasi</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="category">
<option value="all">Semua</option>
@foreach ($classifications as $item)
<option value="encrypt_id({{$item->id}})">{{$item->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="form-label">Media Sosial</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="social_media">
<option value="all">Semua</option>
<option value="PPID Diskominfo Purwakarta">PPID Diskominfo Purwakarta</option>
<option value="Diskominfo Purwakarta">Diskominfo Purwakarta</option>
<option value="Purwakarta Saber Hoaks">Purwakarta Saber Hoaks</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label" for="year">Tahun</label>
<div class="form-control-wrap">
<input type="number" class="form-control" id="year" placeholder="Data berita pada tahun" name="year">
</div>
</div>
<div class="form-group">
<label class="form-label" for="month">Bulan</label>
<div class="form-control-wrap">
<input type="month" class="form-control" id="month" placeholder="Data berita pada bulan dan tahun" name="month">
</div>
</div>
<div class="form-group">
<label class="form-label" for="date">Tanggal</label>
<div class="form-control-wrap">
<input type="date" class="form-control" id="date" placeholder="Data berita pada bulan dan tahun" name="date">
</div>
</div>
</div>
<div class="modal-footer bg-light">
<span class="sub-text">
<button type="submit" class="btn btn-sm btn-primary">Export</button>
</span>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="modalFilter">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Filter</h5>
<a href="javascript:void(0);" class="close" data-bs-dismiss="modal" aria-label="Close">
<em class="icon ni ni-cross"></em>
</a>
</div>
<form action="{{route('dashboard.news.filter')}}" class="form-validate is-alter" method="post">
@csrf
<div class="modal-body">
<div class="form-group">
<label class="form-label">Kanal</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="channel" data-search="on">
<option value="all" {{$channel == 'all' ? 'selected' : ''}}>Semua</option>
<option value="website" {{$channel == 'website' ? 'selected' : ''}}>Website</option>
<option value="tiktok" {{$channel == 'tiktok' ? 'selected' : ''}}>Tiktok</option>
<option value="youtube" {{$channel == 'youtube' ? 'selected' : ''}}>YouTube</option>
<option value="instagram" {{$channel == 'instagram' ? 'selected' : ''}}>Instagram</option>
<option value="facebook" {{$channel == 'facebook' ? 'selected' : ''}}>Facebook</option>
<option value="twitter" {{$channel == 'twitter' ? 'selected' : ''}}>Twitter</option>
<option value="cetak" {{$channel == 'cetak' ? 'selected' : ''}}>Cetak</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label">Klasifikasi</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="category">
<option value="all">Semua</option>
@foreach ($classifications as $item)
<option value="encrypt_id({{$item->id}})">{{$item->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="form-label">Media Sosial</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="social_media">
<option value="all" {{$social_media == 'all' ? 'selected' : ''}}>Semua</option>
<option value="PPID Diskominfo Purwakarta" {{$social_media == 'PPID Diskominfo Purwakarta' ? 'selected' : ''}}>PPID Diskominfo Purwakarta</option>
<option value="Diskominfo Purwakarta" {{$social_media == 'Diskominfo Purwakarta' ? 'selected' : ''}}>Diskominfo Purwakarta</option>
<option value="Purwakarta Saber Hoaks" {{$social_media == 'Purwakarta Saber Hoaks' ? 'selected' : ''}}>Purwakarta Saber Hoaks</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label" for="year">Tahun</label>
<div class="form-control-wrap">
<input type="number" class="form-control" id="year" placeholder="Data berita pada tahun" name="year" value="{{ old('year', $year ?? '') }}">
</div>
</div>
<div class="form-group">
<label class="form-label" for="month">Bulan</label>
<div class="form-control-wrap">
<input type="month" class="form-control" id="month" placeholder="Data berita pada bulan dan tahun" name="month" value="{{ old('month', $month ?? '') }}">
</div>
</div>
<div class="form-group">
<label class="form-label" for="date">Tanggal</label>
<div class="form-control-wrap">
<input type="date" class="form-control" id="date" placeholder="Data berita pada bulan dan tahun" name="date" value="{{ old('date', $date ?? '') }}">
</div>
</div>
</div>
<div class="modal-footer bg-light">
<span class="sub-text">
<button type="submit" class="btn btn-sm btn-primary">Filter</button>
</span>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -999,17 +999,17 @@
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
],
columnDefs: [
{ targets: 0, width: '5%' }, // Index
{ targets: 1, width: '25%' }, // Title
{ targets: 0, width: '2%' }, // Index
{ targets: 1, width: '20%' }, // Content Theme
{ targets: 2, width: '10%' }, // Channel
{ targets: 3, width: '7%' }, // Social Media
{ targets: 4, width: '10%' }, // Posted Date
{ targets: 5, width: '12%' }, // Classification
{ targets: 6, width: '20%' }, // Link
{ targets: 7, width: '8%', className: 'text-center' }, // Action button
{ targets: 5, width: '10%' }, // Classification
{ targets: 6, width: '10%' }, // Link
{ targets: 7, width: '2%', className: 'text-center' }, // Action button
{
targets: [1, 3, 5, 6], // Title & Link
targets: [1, 2, 6], // Title & Link
createdCell: function(td) {
$(td).css({
'white-space': 'normal',
@ -1021,7 +1021,7 @@
language: datatableLanguage,
// responsive: true,
autoWidth: false,
order: [[9, 'desc']],
order: [[8, '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