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()) {
|
if ($request->ajax()) {
|
||||||
$data = GovernmentAgency::with(['issues'])->get();
|
$data = GovernmentAgency::with(['issues'])->get();
|
||||||
|
|
||||||
|
$newData = $request->input('new_data', null);
|
||||||
|
|
||||||
return DataTables::of($data)
|
return DataTables::of($data)
|
||||||
->addIndexColumn()
|
->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) {
|
->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) {
|
->addColumn('issues', function ($data) {
|
||||||
$issueCount = $data->issues->count();
|
$issueCount = $data->issues->count();
|
||||||
@ -446,7 +456,7 @@ public function governmentAgency(Request $request){
|
|||||||
return $dropdown;
|
return $dropdown;
|
||||||
})
|
})
|
||||||
|
|
||||||
->rawColumns(['issues', 'action'])
|
->rawColumns(['name', 'short_name', 'issues', 'action'])
|
||||||
->make(true);
|
->make(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,13 +13,14 @@ class GovernmentAgencyController extends Controller
|
|||||||
{
|
{
|
||||||
public function index(){
|
public function index(){
|
||||||
return view('dashboard.government-agencies.index', [
|
return view('dashboard.government-agencies.index', [
|
||||||
'title' => 'OPD'
|
'title' => 'Data OPD',
|
||||||
|
'new_data' => session()->get('new_data', null),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create(){
|
public function create(){
|
||||||
return view('dashboard.government-agencies.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 = $request->validated();
|
||||||
$validatedData['enhancer_id'] = Auth::id();
|
$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 membuat OPD baru.')
|
||||||
return redirect()->route('dashboard.government.agencies.index')->with('success-status', 'Berhasil menambahkan OPD.');
|
->with('new_data', encrypt_id($createdGovernmentAgency->id));
|
||||||
}else{
|
}catch(\Exception $e){
|
||||||
return redirect()->back()->with('failed-status', 'Gagal menambahkan OPD');
|
return redirect()->back()->with('failed-status', 'Gagal menambahkan OPD');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,7 +55,7 @@ public function update(GovernmentAgencyRequest $request, $id){
|
|||||||
$updatedGovernmentAgency = $governmentAgency->update($validatedData);
|
$updatedGovernmentAgency = $governmentAgency->update($validatedData);
|
||||||
|
|
||||||
if($updatedGovernmentAgency){
|
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{
|
}else{
|
||||||
return redirect()->back()->with('failed-status', 'Gagal mengubah OPD');
|
return redirect()->back()->with('failed-status', 'Gagal mengubah OPD');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,4 +25,8 @@ public function issues()
|
|||||||
->using(IssueManagementGovernmentAgency::class)
|
->using(IssueManagementGovernmentAgency::class)
|
||||||
->withTimestamps();
|
->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 card-bordered card-preview">
|
||||||
<div class="card-inner">
|
<div class="card-inner">
|
||||||
<div class="card-head">
|
<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>
|
</div>
|
||||||
<form action="{{route('dashboard.government.agencies.store')}}" method="post" id="myForm">
|
<form action="{{route('dashboard.government.agencies.store')}}" method="post" id="myForm">
|
||||||
@csrf
|
@csrf
|
||||||
@ -19,7 +22,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="name">Nama<span class="required-input">*</span></label>
|
<label class="form-label" for="name">Nama<span class="required-input">*</span></label>
|
||||||
<div class="form-control-wrap">
|
<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>
|
</div>
|
||||||
@error('name')
|
@error('name')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
@ -30,18 +33,18 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="short_name">Singkatan Nama</label>
|
<label class="form-label" for="short_name">Singkatan Nama</label>
|
||||||
<div class="form-control-wrap">
|
<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>
|
</div>
|
||||||
@error('short_name')
|
@error('short_name')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-8">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="location">Lokasi</label>
|
<label class="form-label" for="location">Lokasi</label>
|
||||||
<div class="form-control-wrap">
|
<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>
|
</div>
|
||||||
@error('location')
|
@error('location')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
@ -55,6 +58,9 @@
|
|||||||
<textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea>
|
<textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@error('description')
|
||||||
|
<span class="validation-error">{{$message}}</span>
|
||||||
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@ -10,7 +10,10 @@
|
|||||||
<div class="card card-bordered card-preview">
|
<div class="card card-bordered card-preview">
|
||||||
<div class="card-inner">
|
<div class="card-inner">
|
||||||
<div class="card-head">
|
<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>
|
</div>
|
||||||
<form action="{{route('dashboard.government.agencies.update', ['id' => encrypt_id($governmentAgency->id)])}}" method="post" id="myForm">
|
<form action="{{route('dashboard.government.agencies.update', ['id' => encrypt_id($governmentAgency->id)])}}" method="post" id="myForm">
|
||||||
@csrf
|
@csrf
|
||||||
@ -20,7 +23,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="name">Nama<span class="required-input">*</span></label>
|
<label class="form-label" for="name">Nama<span class="required-input">*</span></label>
|
||||||
<div class="form-control-wrap">
|
<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>
|
</div>
|
||||||
@error('name')
|
@error('name')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
@ -31,18 +34,18 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="short_name">Singkatan Nama</label>
|
<label class="form-label" for="short_name">Singkatan Nama</label>
|
||||||
<div class="form-control-wrap">
|
<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>
|
</div>
|
||||||
@error('short_name')
|
@error('short_name')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-8">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="location">Lokasi</label>
|
<label class="form-label" for="location">Lokasi</label>
|
||||||
<div class="form-control-wrap">
|
<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>
|
</div>
|
||||||
@error('location')
|
@error('location')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
@ -56,6 +59,9 @@
|
|||||||
<textarea class="tinymce-basic form-control" name="description">{!!$governmentAgency->description!!}</textarea>
|
<textarea class="tinymce-basic form-control" name="description">{!!$governmentAgency->description!!}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@error('description')
|
||||||
|
<span class="validation-error">{{$message}}</span>
|
||||||
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@ -6,13 +6,32 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="nk-content-inner">
|
<div class="nk-content-inner">
|
||||||
<div class="nk-content-body">
|
<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="nk-block nk-block-lg">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-aside-wrap">
|
<div class="card-aside-wrap">
|
||||||
<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 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>
|
</li>
|
||||||
</ul><!-- .nav-tabs -->
|
</ul><!-- .nav-tabs -->
|
||||||
<div class="card-inner">
|
<div class="card-inner">
|
||||||
@ -58,6 +77,12 @@
|
|||||||
<span class="profile-ud-value">{{idn_date($governmentAgency->created_at, 'l, d F Y')}}</span>
|
<span class="profile-ud-value">{{idn_date($governmentAgency->created_at, 'l, d F Y')}}</span>
|
||||||
</div>
|
</div>
|
||||||
</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><!-- .profile-ud-list -->
|
||||||
</div><!-- .nk-block -->
|
</div><!-- .nk-block -->
|
||||||
{{-- <div class="nk-divider divider md"></div> --}}
|
{{-- <div class="nk-divider divider md"></div> --}}
|
||||||
@ -73,11 +98,6 @@
|
|||||||
</div><!-- .bq-note-item -->
|
</div><!-- .bq-note-item -->
|
||||||
</div><!-- .bq-note -->
|
</div><!-- .bq-note -->
|
||||||
</div><!-- .nk-block -->
|
</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-inner -->
|
||||||
</div><!-- .card-content -->
|
</div><!-- .card-content -->
|
||||||
</div><!-- .card-aside-wrap -->
|
</div><!-- .card-aside-wrap -->
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
<th>No</th>
|
<th>No</th>
|
||||||
<th>Nama</th>
|
<th>Nama</th>
|
||||||
<th>Lokus</th>
|
<th>Lokus</th>
|
||||||
<th>Isu</th>
|
<th>Jumlah Isu</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -250,7 +250,13 @@
|
|||||||
$('#governmentAgenciesTable').DataTable({
|
$('#governmentAgenciesTable').DataTable({
|
||||||
processing: true,
|
processing: true,
|
||||||
serverSide: 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: [
|
columns: [
|
||||||
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
|
||||||
{ data: 'name', name: 'name' },
|
{ data: 'name', name: 'name' },
|
||||||
@ -261,16 +267,18 @@
|
|||||||
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },
|
||||||
],
|
],
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{ targets: 0, width: 'auto' },
|
{ targets: 0, width: '2%' }, // Index
|
||||||
{ targets: 2, width: '10%' },
|
{ targets: 1, width: '20%' }, // Name
|
||||||
{ targets: 3, width: '7%' },
|
{ targets: 2, width: '6%' }, // Short Name
|
||||||
|
{ targets: 3, width: '3%' }, // Issue
|
||||||
|
{ targets: 4, width: '2%', className: 'text-center' }, // Action button
|
||||||
|
|
||||||
{
|
{
|
||||||
targets: [1],
|
targets: [1, 2], // Title & Link
|
||||||
createdCell: function(td, cellData, rowData, row, col) {
|
createdCell: function(td) {
|
||||||
$(td).css({
|
$(td).css({
|
||||||
'word-wrap': 'break-word',
|
|
||||||
'white-space': 'normal',
|
'white-space': 'normal',
|
||||||
'overflow-wrap': 'break-word'
|
'word-break': 'break-word',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,7 +286,7 @@
|
|||||||
language: datatableLanguage,
|
language: datatableLanguage,
|
||||||
// responsive: true,
|
// responsive: true,
|
||||||
autoWidth: false,
|
autoWidth: false,
|
||||||
order: [[4, 'desc']],
|
order: [[5, '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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user