chore: change government agency show UI
This commit is contained in:
parent
07f13bb802
commit
4206ae896c
@ -402,10 +402,20 @@ public function governmentAgency(Request $request){
|
||||
if ($request->ajax()) {
|
||||
$data = GovernmentAgency::with(['issues'])->get();
|
||||
|
||||
$newData = $request->input('new_data', null);
|
||||
|
||||
return DataTables::of($data)
|
||||
->addIndexColumn()
|
||||
->addColumn('name', function ($data) use ($newData) {
|
||||
|
||||
if(filled($newData) && decrypt_id($newData) == $data->id){
|
||||
return '<span class="badge bg-info" style="display:inline-block;font-size:0.8rem; margin-right:0.5rem;">Baru</span>'. $data->name;
|
||||
}else{
|
||||
return $data->name;
|
||||
}
|
||||
})
|
||||
->addColumn('short_name', function ($data) {
|
||||
return filled($data->short_name) ? $data->short_name : '-';
|
||||
return filled($data->short_name) ? $data->short_name : '<i class="text-warning">Belum ditambahkan</i>';
|
||||
})
|
||||
->addColumn('issues', function ($data) {
|
||||
$issueCount = $data->issues->count();
|
||||
@ -446,7 +456,7 @@ public function governmentAgency(Request $request){
|
||||
return $dropdown;
|
||||
})
|
||||
|
||||
->rawColumns(['issues', 'action'])
|
||||
->rawColumns(['name', 'short_name', 'issues', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
||||
@ -13,13 +13,14 @@ class GovernmentAgencyController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('dashboard.government-agencies.index', [
|
||||
'title' => 'OPD'
|
||||
'title' => 'Data OPD',
|
||||
'new_data' => session()->get('new_data', null),
|
||||
]);
|
||||
}
|
||||
|
||||
public function create(){
|
||||
return view('dashboard.government-agencies.create', [
|
||||
'title' => 'Tambah OPD'
|
||||
'title' => 'Buat OPD Baru'
|
||||
]);
|
||||
}
|
||||
|
||||
@ -27,11 +28,12 @@ public function store(GovernmentAgencyRequest $request){
|
||||
$validatedData = $request->validated();
|
||||
$validatedData['enhancer_id'] = Auth::id();
|
||||
|
||||
$createdGovernmentAgency = GovernmentAgency::create($validatedData);
|
||||
try{
|
||||
$createdGovernmentAgency = GovernmentAgency::create($validatedData);
|
||||
|
||||
if($createdGovernmentAgency){
|
||||
return redirect()->route('dashboard.government.agencies.index')->with('success-status', 'Berhasil menambahkan OPD.');
|
||||
}else{
|
||||
return redirect()->route('dashboard.government.agencies.index')->with('success-status', 'Berhasil membuat OPD baru.')
|
||||
->with('new_data', encrypt_id($createdGovernmentAgency->id));
|
||||
}catch(\Exception $e){
|
||||
return redirect()->back()->with('failed-status', 'Gagal menambahkan OPD');
|
||||
}
|
||||
}
|
||||
@ -53,7 +55,7 @@ public function update(GovernmentAgencyRequest $request, $id){
|
||||
$updatedGovernmentAgency = $governmentAgency->update($validatedData);
|
||||
|
||||
if($updatedGovernmentAgency){
|
||||
return redirect()->back()->with('success-status', 'Berhasil mengubah OPD.');
|
||||
return redirect()->route('dashboard.government.agencies.show', ['id' => encrypt_id($governmentAgency->id)])->with('success-status', 'Berhasil mengubah OPD.');
|
||||
}else{
|
||||
return redirect()->back()->with('failed-status', 'Gagal mengubah OPD');
|
||||
}
|
||||
|
||||
@ -25,4 +25,8 @@ public function issues()
|
||||
->using(IssueManagementGovernmentAgency::class)
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function enhancer(){
|
||||
return $this->belongsTo(User::class, 'enhancer_id', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,7 +10,10 @@
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
<div class="nk-block-head">
|
||||
<h5 class="title">Buat OPD Baru</h5>
|
||||
<p>Masukkan informasi yang diperlukan untuk membuat OPD.</p>
|
||||
</div>
|
||||
</div>
|
||||
<form action="{{route('dashboard.government.agencies.store')}}" method="post" id="myForm">
|
||||
@csrf
|
||||
@ -19,7 +22,7 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="name">Nama<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Masukan nama OPD" value="{{old('name')}}">
|
||||
<input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Kesatuan Bangsa dan Politik" value="{{old('name')}}">
|
||||
</div>
|
||||
@error('name')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@ -30,18 +33,18 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="short_name">Singkatan Nama</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control @error('short_name') border-danger @enderror" id="short_name" name="short_name" placeholder="Masukan singkatan nama OPD" value="{{old('short_name')}}">
|
||||
<input type="text" class="form-control @error('short_name') border-danger @enderror" id="short_name" name="short_name" placeholder="Contoh: Kesbangpol" value="{{old('short_name')}}">
|
||||
</div>
|
||||
@error('short_name')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-8">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="location">Lokasi</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control @error('location') border-danger @enderror" id="location" name="location" placeholder="Masukan lokasi OPD" value="{{old('location')}}">
|
||||
<input type="text" class="form-control @error('location') border-danger @enderror" id="location" name="location" placeholder="Contoh: Jl. Braga No. 10, Kel. Braga, Kec. Sumur Bandung, Kota Bandung, Jawa Barat" value="{{old('location')}}">
|
||||
</div>
|
||||
@error('location')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@ -55,6 +58,9 @@
|
||||
<textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
@error('description')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
|
||||
@ -10,7 +10,10 @@
|
||||
<div class="card card-bordered card-preview">
|
||||
<div class="card-inner">
|
||||
<div class="card-head">
|
||||
<h5 class="card-title">{{$title}}</h5>
|
||||
<div class="nk-block-head">
|
||||
<h5 class="title">Ubah OPD</h5>
|
||||
<p>Perbarui informasi OPD ini.</p>
|
||||
</div>
|
||||
</div>
|
||||
<form action="{{route('dashboard.government.agencies.update', ['id' => encrypt_id($governmentAgency->id)])}}" method="post" id="myForm">
|
||||
@csrf
|
||||
@ -20,7 +23,7 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="name">Nama<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Masukan nama OPD" value="{{$governmentAgency->name}}">
|
||||
<input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Kesatuan Bangsa dan Politik" value="{{$governmentAgency->name}}">
|
||||
</div>
|
||||
@error('name')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@ -31,18 +34,18 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="short_name">Singkatan Nama</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control @error('short_name') border-danger @enderror" id="short_name" name="short_name" placeholder="Masukan singkatan nama OPD" value="{{$governmentAgency->short_name}}">
|
||||
<input type="text" class="form-control @error('short_name') border-danger @enderror" id="short_name" name="short_name" placeholder="Contoh: Kesbangpol" value="{{$governmentAgency->short_name}}">
|
||||
</div>
|
||||
@error('short_name')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-8">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="location">Lokasi</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control @error('location') border-danger @enderror" id="location" name="location" placeholder="Masukan lokasi OPD" value="{{$governmentAgency->location}}">
|
||||
<input type="text" class="form-control @error('location') border-danger @enderror" id="location" name="location" placeholder="Contoh: Jl. Braga No. 10, Kel. Braga, Kec. Sumur Bandung, Kota Bandung, Jawa Barat" value="{{$governmentAgency->location}}">
|
||||
</div>
|
||||
@error('location')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@ -56,6 +59,9 @@
|
||||
<textarea class="tinymce-basic form-control" name="description">{!!$governmentAgency->description!!}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
@error('description')
|
||||
<span class="validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
|
||||
@ -6,13 +6,32 @@
|
||||
<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">Detail OPD</h3>
|
||||
<div class="nk-block-des text-soft">
|
||||
<ul class="list-inline">
|
||||
<li>Detail OPD dapat dilihat di sini.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-block-head-content">
|
||||
<a href="{{route('dashboard.government.agencies.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
|
||||
<a href="{{route('dashboard.government.agencies.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .nk-block-head -->
|
||||
<div class="nk-block nk-block-lg">
|
||||
<div class="card">
|
||||
<div class="card-aside-wrap">
|
||||
<div class="card-content">
|
||||
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail OPD</span></a>
|
||||
<a class="nav-link text-primary" href="javascript:void(0);"><em class="icon ni ni-info"></em><span>Detail Informasi</span></a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-trigger d-xxl-none">
|
||||
<a href="{{route('dashboard.government.agencies.edit', ['id' => encrypt_id($governmentAgency->id), 'show' => true])}}" class="btn btn-icon btn-trigger"><em class="icon ni ni-edit"></em></a>
|
||||
</li>
|
||||
</ul><!-- .nav-tabs -->
|
||||
<div class="card-inner">
|
||||
@ -58,6 +77,12 @@
|
||||
<span class="profile-ud-value">{{idn_date($governmentAgency->created_at, 'l, d F Y')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Dibuat Oleh</span>
|
||||
<span class="profile-ud-value">{{$governmentAgency->enhancer->name ?? '-'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
@ -73,11 +98,6 @@
|
||||
</div><!-- .bq-note-item -->
|
||||
</div><!-- .bq-note -->
|
||||
</div><!-- .nk-block -->
|
||||
<hr>
|
||||
<div class="nk-block d-flex justify-content-end">
|
||||
<a href="{{route('dashboard.government.agencies.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||
<a href="{{route('dashboard.government.agencies.edit', ['id' => encrypt_id($governmentAgency->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .card-inner -->
|
||||
</div><!-- .card-content -->
|
||||
</div><!-- .card-aside-wrap -->
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
<th>No</th>
|
||||
<th>Nama</th>
|
||||
<th>Lokus</th>
|
||||
<th>Isu</th>
|
||||
<th>Jumlah Isu</th>
|
||||
<th>Status</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
@ -250,7 +250,13 @@
|
||||
$('#governmentAgenciesTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{{ route('dashboard.government.agencies.data') }}',
|
||||
ajax: {
|
||||
url: '{{ route('dashboard.government.agencies.data') }}',
|
||||
type: 'GET',
|
||||
data: function(d) {
|
||||
d.new_data = '{{ $new_data }}';
|
||||
}
|
||||
},
|
||||
columns: [
|
||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||
{ data: 'name', name: 'name' },
|
||||
@ -261,16 +267,18 @@
|
||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||
],
|
||||
columnDefs: [
|
||||
{ targets: 0, width: 'auto' },
|
||||
{ targets: 2, width: '10%' },
|
||||
{ targets: 3, width: '7%' },
|
||||
{ targets: 0, width: '2%' }, // Index
|
||||
{ targets: 1, width: '20%' }, // Name
|
||||
{ targets: 2, width: '6%' }, // Short Name
|
||||
{ targets: 3, width: '3%' }, // Issue
|
||||
{ targets: 4, width: '2%', className: 'text-center' }, // Action button
|
||||
|
||||
{
|
||||
targets: [1],
|
||||
createdCell: function(td, cellData, rowData, row, col) {
|
||||
targets: [1, 2], // Title & Link
|
||||
createdCell: function(td) {
|
||||
$(td).css({
|
||||
'word-wrap': 'break-word',
|
||||
'white-space': 'normal',
|
||||
'overflow-wrap': 'break-word'
|
||||
'word-break': 'break-word',
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -278,7 +286,7 @@
|
||||
language: datatableLanguage,
|
||||
// responsive: true,
|
||||
autoWidth: false,
|
||||
order: [[4, 'desc']],
|
||||
order: [[5, '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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user