chore: change show locations UI

This commit is contained in:
myuqinurrohman 2025-04-16 14:45:04 +07:00
parent b4f5aa1a2b
commit 07f13bb802
18 changed files with 231 additions and 90 deletions

View File

@ -34,7 +34,7 @@ public function store(ClassificationRequest $request){
$createdClassification = Classification::create($validatedData); $createdClassification = Classification::create($validatedData);
return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil membuat klasifikasi baru.') return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil membuat klasifikasi baru.')
->with('new_data', $createdClassification->id); ->with('new_data', encrypt_id($createdClassification->id));
}catch (\Exception $e){ }catch (\Exception $e){
return redirect()->back()->with('failed-status', 'Gagal membuat klasifikasi baru.'); return redirect()->back()->with('failed-status', 'Gagal membuat klasifikasi baru.');

View File

@ -52,7 +52,7 @@ public function classification(Request $request){
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) use ($newData) { ->addColumn('name', function ($data) use ($newData) {
if(filled($newData) && $newData == $data->id){ 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; return '<span class="badge bg-info" style="display:inline-block;font-size:0.8rem; margin-right:0.5rem;">Baru</span>'. $data->name;
}else{ }else{
return $data->name; return $data->name;
@ -163,7 +163,7 @@ public function subClassification(Request $request){
->addIndexColumn() ->addIndexColumn()
->addColumn('name', function ($data) use ($newData) { ->addColumn('name', function ($data) use ($newData) {
if(filled($newData) && $newData == $data->id){ 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; return '<span class="badge bg-info" style="display:inline-block;font-size:0.8rem; margin-right:0.5rem;">Baru</span>'. $data->name;
}else{ }else{
return $data->name; return $data->name;
@ -236,8 +236,18 @@ public function location(Request $request){
$data = Location::with(['subLocations'])->get(); $data = Location::with(['subLocations'])->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('status', function ($data) { ->addColumn('status', function ($data) {
if ($data->status == '0') { if ($data->status == '0') {
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Nonaktif</span>'; return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Nonaktif</span>';
@ -300,7 +310,7 @@ public function location(Request $request){
return $dropdown; return $dropdown;
}) })
->rawColumns(['sub_locations', 'issues', 'status', 'action']) ->rawColumns(['name', 'sub_locations', 'issues', 'status', 'action'])
->make(true); ->make(true);
} }
@ -319,10 +329,20 @@ public function subLocation(Request $request){
$data = SubLocation::with(['location'])->get(); $data = SubLocation::with(['location'])->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('location', function ($data) { ->addColumn('location', function ($data) {
return $data->location->name; return '<a href="'.route('dashboard.locations.show', ['id' => encrypt_id($data->location->id), 'sub_location' => true]).'" class="text-dark">'.$data->location->name.'</a>';
}) })
->addColumn('status', function ($data) { ->addColumn('status', function ($data) {
if ($data->status == '0') { if ($data->status == '0') {
@ -370,7 +390,7 @@ public function subLocation(Request $request){
return $dropdown; return $dropdown;
}) })
->rawColumns(['issues', 'status', 'action']) ->rawColumns(['name', 'location', 'issues', 'status', 'action'])
->make(true); ->make(true);
} }

View File

@ -13,13 +13,14 @@ class LocationController extends Controller
{ {
public function index(){ public function index(){
return view('dashboard.locations.index', [ return view('dashboard.locations.index', [
'title' => 'Lokus' 'title' => 'Data Lokus',
'new_data' => session()->get('new_data', null),
]); ]);
} }
public function create(){ public function create(){
return view('dashboard.locations.create', [ return view('dashboard.locations.create', [
'title' => 'Tambah Lokus' 'title' => 'Buat Lokus Baru'
]); ]);
} }
@ -27,11 +28,12 @@ public function store(LocationRequest $request){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$createdLocation = Location::create($validatedData); try{
$createdLocation = Location::create($validatedData);
if($createdLocation){ return redirect()->route('dashboard.locations.index')->with('success-status', 'Berhasil membuat lokus baru.')
return redirect()->route('dashboard.locations.index')->with('success-status', 'Berhasil menambahkan lokus.'); ->with('new_data', encrypt_id($createdLocation->id));
}else{ }catch(\Exception $e){
return redirect()->back()->with('failed-status', 'Gagal menambahkan lokus.'); return redirect()->back()->with('failed-status', 'Gagal menambahkan lokus.');
} }
} }
@ -49,18 +51,18 @@ public function update(LocationRequest $request, $id){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$location = Location::findOrFail(decrypt_id($id)); try{
$updatedLocation = $location->update($validatedData); $location = Location::findOrFail(decrypt_id($id));
$location->update($validatedData);
if($updatedLocation){ return redirect()->route('dashboard.locations.show', ['id' => encrypt_id($location->id)])->with('success-status', 'Berhasil mengubah lokus.');
return redirect()->back()->with('success-status', 'Berhasil mengubah lokus.'); }catch(\Exception $e){
}else{
return redirect()->back()->with('failed-status', 'Gagal mengubah lokus.'); return redirect()->back()->with('failed-status', 'Gagal mengubah lokus.');
} }
} }
public function show($id){ public function show($id){
$location = Location::find(decrypt_id($id)); $location = Location::findOrFail(decrypt_id($id));
return view('dashboard.locations.show', [ return view('dashboard.locations.show', [
'title' => 'Detail Lokus', 'title' => 'Detail Lokus',
@ -71,7 +73,6 @@ public function show($id){
public function destroy($id){ public function destroy($id){
try { try {
$location = Location::findOrFail(decrypt_id($id)); $location = Location::findOrFail(decrypt_id($id));
$location->delete(); $location->delete();
return response()->json(['message' => 'Berhasil menghapus lokus.']); return response()->json(['message' => 'Berhasil menghapus lokus.']);

View File

@ -50,7 +50,7 @@ public function store(SubClassificationRequest $request){
$createdSubClassification = SubClassification::create($validatedData); $createdSubClassification = SubClassification::create($validatedData);
return redirect()->route('dashboard.sub.classifications.index')->with('success-status', 'Berhasil membuat sub klasifikasi baru.') return redirect()->route('dashboard.sub.classifications.index')->with('success-status', 'Berhasil membuat sub klasifikasi baru.')
->with('new_data', $createdSubClassification->id); ->with('new_data', encrypt_id($createdSubClassification->id));
}catch(\Exception $e){ }catch(\Exception $e){
return redirect()->back()->with('failed-status', 'Gagal membuat sub klasifikasi baru.'); return redirect()->back()->with('failed-status', 'Gagal membuat sub klasifikasi baru.');
} }

View File

@ -15,8 +15,9 @@ class SubLocationController extends Controller
public function index(Request $request){ public function index(Request $request){
$viewData = [ $viewData = [
'title' => 'Sub Lokus', 'title' => 'Data Sub Lokus',
'location' => $request->input('location', null), 'location' => $request->input('location', null),
'new_data' => session()->get('new_data', null),
]; ];
return view('dashboard.sub-locations.index', $viewData); return view('dashboard.sub-locations.index', $viewData);
@ -25,7 +26,7 @@ public function index(Request $request){
public function create(Request $request){ public function create(Request $request){
$viewData = [ $viewData = [
'title' => 'Tambah Sub Lokus', 'title' => 'Buat Sub Lokus Baru',
'fromLocation' => false 'fromLocation' => false
]; ];
@ -44,11 +45,12 @@ public function store(SubLocationRequest $request){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$createdSubLocation = SubLocation::create($validatedData); try{
$createdSubLocation = SubLocation::create($validatedData);
if($createdSubLocation){ return redirect()->route('dashboard.sub.locations.index')->with('success-status', 'Berhasil membuat sub lokus baru.')
return redirect()->route('dashboard.sub.locations.index')->with('success-status', 'Berhasil menambahkan sub lokus.'); ->with('new_data', encrypt_id($createdSubLocation->id));
}else{ }catch(\Exception $e){
return redirect()->back()->with('failed-status', 'Gagal menambahkan sub lokus.'); return redirect()->back()->with('failed-status', 'Gagal menambahkan sub lokus.');
} }
} }
@ -67,18 +69,18 @@ public function update(SubLocationRequest $request, $id){
$validatedData = $request->validated(); $validatedData = $request->validated();
$validatedData['enhancer_id'] = Auth::id(); $validatedData['enhancer_id'] = Auth::id();
$subLocation = SubLocation::findOrFail(decrypt_id($id)); try{
$updatedSubLocation = $subLocation->update($validatedData); $subLocation = SubLocation::findOrFail(decrypt_id($id));
$subLocation->update($validatedData);
if($updatedSubLocation){ return redirect()->route('dashboard.sub.locations.show', ['id' => encrypt_id($subLocation->id)])->with('success-status', 'Berhasil mengubah sub lokus.');
return redirect()->back()->with('success-status', 'Berhasil mengubah sub lokus.'); }catch(\Exception $e){
}else{
return redirect()->back()->with('failed-status', 'Gagal mengubah sub lokus.'); return redirect()->back()->with('failed-status', 'Gagal mengubah sub lokus.');
} }
} }
public function show($id){ public function show($id){
$subLocation = SubLocation::with(['location'])->find(decrypt_id($id)); $subLocation = SubLocation::with(['location'])->findOrFail(decrypt_id($id));
return view('dashboard.sub-locations.show', [ return view('dashboard.sub-locations.show', [
'title' => 'Detail Sub Lokus', 'title' => 'Detail Sub Lokus',
@ -89,7 +91,6 @@ public function show($id){
public function destroy($id){ public function destroy($id){
try { try {
$subLocation = SubLocation::findOrFail(decrypt_id($id)); $subLocation = SubLocation::findOrFail(decrypt_id($id));
$subLocation->delete(); $subLocation->delete();
return response()->json(['message' => 'Berhasil menghapus sub lokus.']); return response()->json(['message' => 'Berhasil menghapus sub lokus.']);

View File

@ -22,4 +22,8 @@ public function subLocations(){
public function issues(){ public function issues(){
return $this->hasMany(IssueManagement::class, 'location_id', 'id'); return $this->hasMany(IssueManagement::class, 'location_id', 'id');
} }
public function enhancer(){
return $this->belongsTo(User::class, 'enhancer_id', 'id');
}
} }

View File

@ -23,4 +23,8 @@ public function location(){
public function issues(){ public function issues(){
return $this->hasMany(IssueManagement::class, 'sub_location_id', 'id'); return $this->hasMany(IssueManagement::class, 'sub_location_id', 'id');
} }
public function enhancer(){
return $this->belongsTo(User::class, 'enhancer_id', 'id');
}
} }

View File

@ -51,7 +51,7 @@
<div class="profile-ud-list"> <div class="profile-ud-list">
<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">Nama Klasifikasi</span> <span class="profile-ud-label">Nama</span>
<span class="profile-ud-value">{{$classification->name}}</span> <span class="profile-ud-value">{{$classification->name}}</span>
</div> </div>
</div> </div>
@ -61,7 +61,7 @@
@if (filled($classification->deleted_at)) @if (filled($classification->deleted_at))
<span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span>
@elseif ($classification->status == 0) @elseif ($classification->status == 0)
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Nonaktif</span></span>
@elseif ($classification->status == 1) @elseif ($classification->status == 1)
<span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span> <span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span>
@else @else

View File

@ -10,16 +10,19 @@
<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 Lokus Baru</h5>
<p>Masukkan informasi yang diperlukan untuk membuat lokus.</p>
</div>
</div> </div>
<form action="{{route('dashboard.locations.store')}}" method="post" id="myForm"> <form action="{{route('dashboard.locations.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">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="name">Nama Lokus<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 lokus" value="{{old('name')}}"> <input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Wanayasa, Plered, Pasawahan" value="{{old('name')}}">
</div> </div>
@error('name') @error('name')
<span class="validation-error">{{$message}}</span> <span class="validation-error">{{$message}}</span>
@ -31,10 +34,14 @@
<label class="form-label">Status<span class="required-input">*</span></label> <label class="form-label">Status<span class="required-input">*</span></label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="status"> <select class="form-select js-select2" name="status">
<option value="select" selected disabled>Pilih Status</option>
<option value="1" {{old('status') == '1' ? 'selected' : ''}}>Aktif</option> <option value="1" {{old('status') == '1' ? 'selected' : ''}}>Aktif</option>
<option value="0" {{old('status') == '0' ? 'selected' : ''}}>Tidak Aktif</option> <option value="0" {{old('status') == '0' ? 'selected' : ''}}>Tidak Aktif</option>
</select> </select>
</div> </div>
@error('status')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
@ -43,6 +50,9 @@
<div class="form-control-wrap"> <div class="form-control-wrap">
<textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea> <textarea class="tinymce-basic form-control" name="description">{!!old('description')!!}</textarea>
</div> </div>
@error('description')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">

View File

@ -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 Lokus</h5>
<p>Perbarui informasi lokus ini.</p>
</div>
</div> </div>
<form action="{{route('dashboard.locations.update', ['id' => encrypt_id($location->id)])}}" method="post" id="myForm"> <form action="{{route('dashboard.locations.update', ['id' => encrypt_id($location->id)])}}" method="post" id="myForm">
@csrf @csrf
@ -18,9 +21,9 @@
<div class="row g-4"> <div class="row g-4">
<div class="col-lg-6"> <div class="col-lg-6">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="name">Nama Lokus<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 lokus" value="{{ $location->name}}"> <input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Wanayasa, Plered, Pasawahan" value="{{ $location->name}}">
</div> </div>
@error('name') @error('name')
<span class="validation-error">{{$message}}</span> <span class="validation-error">{{$message}}</span>
@ -36,6 +39,9 @@
<option value="0" {{$location->status == '0' ? 'selected' : ''}}>Tidak Aktif</option> <option value="0" {{$location->status == '0' ? 'selected' : ''}}>Tidak Aktif</option>
</select> </select>
</div> </div>
@error('status')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
@ -45,6 +51,9 @@
<textarea class="tinymce-basic form-control" name="description">{!!$location->description!!}</textarea> <textarea class="tinymce-basic form-control" name="description">{!!$location->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>

View File

@ -46,9 +46,9 @@
<tr> <tr>
<th>No</th> <th>No</th>
<th>Nama</th> <th>Nama</th>
<th>Jumlah Sub Lokasi</th>
<th>Jumlah Isu</th>
<th>Status</th> <th>Status</th>
<th>Sub Lokasi</th>
<th>Isu</th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>

View File

@ -6,13 +6,40 @@
<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 Lokus</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Detail lokus dapat dilihat di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
@if (request()->query('sub_location') && request()->query('sub_location') === '1')
<a href="{{route('dashboard.sub.locations.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.sub.locations.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>
@elseif (request()->query('sub_location') && request()->query('sub_location') !== 1)
<a href="{{route('dashboard.sub.locations.show', ['id' => request()->query('sub_location')])}}" 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.sub.locations.show', ['id' => request()->query('sub_location')])}}" 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>
@else
<a href="{{route('dashboard.locations.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.locations.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>
@endif
</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 Lokus</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.locations.edit', ['id' => encrypt_id($location->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">
@ -24,7 +51,7 @@
<div class="profile-ud-list"> <div class="profile-ud-list">
<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">Nama Lokasi</span> <span class="profile-ud-label">Nama</span>
<span class="profile-ud-value">{{$location->name}}</span> <span class="profile-ud-value">{{$location->name}}</span>
</div> </div>
</div> </div>
@ -34,7 +61,7 @@
@if (filled($location->deleted_at)) @if (filled($location->deleted_at))
<span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span>
@elseif ($location->status == 0) @elseif ($location->status == 0)
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Nonaktif</span></span>
@elseif ($location->status == 1) @elseif ($location->status == 1)
<span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span> <span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span>
@else @else
@ -73,6 +100,12 @@
<span class="profile-ud-value">{{idn_date($location->created_at, 'l, d F Y')}}</span> <span class="profile-ud-value">{{idn_date($location->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">{{$location->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> --}}
@ -83,16 +116,11 @@
<div class="bq-note"> <div class="bq-note">
<div class="bq-note-item"> <div class="bq-note-item">
<div class="bq-note-text"> <div class="bq-note-text">
{!!$location->description ?? '-' !!} {!!$classification->description ?? '-' !!}
</div> </div>
</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.locations.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
<a href="{{route('dashboard.locations.edit', ['id' => encrypt_id($location->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 -->

View File

@ -73,7 +73,7 @@
@if (filled($subClassification->deleted_at)) @if (filled($subClassification->deleted_at))
<span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span>
@elseif ($subClassification->status == 0) @elseif ($subClassification->status == 0)
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Nonaktif</span></span>
@elseif ($subClassification->status == 1) @elseif ($subClassification->status == 1)
<span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span> <span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span>
@else @else

View File

@ -10,16 +10,19 @@
<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 Sub Lokus Baru</h5>
<p>Masukkan informasi yang diperlukan untuk membuat sub lokus.</p>
</div>
</div> </div>
<form action="{{route('dashboard.sub.locations.store')}}" method="post" id="myForm"> <form action="{{route('dashboard.sub.locations.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">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="name">Nama Sub Lokus<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 sub lokus" value="{{old('name')}}"> <input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Contoh: Citalang, Sempur, Gunungkarung" value="{{old('name')}}">
</div> </div>
@error('name') @error('name')
<span class="validation-error">{{$message}}</span> <span class="validation-error">{{$message}}</span>
@ -36,12 +39,16 @@
</select> </select>
@else @else
<select class="form-select js-select2" data-search="on" name="location_id"> <select class="form-select js-select2" data-search="on" name="location_id">
<option value="select" selected disabled>Pilih Lokus</option>
@foreach ($locations as $location) @foreach ($locations as $location)
<option value="{{$location->id}}" {{old('location_id') == $location->id ? 'selected' : ''}}>{{$location->name}}</option> <option value="{{$location->id}}" {{old('location_id') == $location->id ? 'selected' : ''}}>{{$location->name}}</option>
@endforeach @endforeach
</select> </select>
@endif @endif
</div> </div>
@error('location_id')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
@ -49,10 +56,14 @@
<label class="form-label">Status<span class="required-input">*</span></label> <label class="form-label">Status<span class="required-input">*</span></label>
<div class="form-control-wrap"> <div class="form-control-wrap">
<select class="form-select js-select2" name="status"> <select class="form-select js-select2" name="status">
<option value="select" selected disabled>Pilih Status</option>
<option value="1" {{old('status') == '1' ? 'selected' : ''}}>Aktif</option> <option value="1" {{old('status') == '1' ? 'selected' : ''}}>Aktif</option>
<option value="0" {{old('status') == '0' ? 'selected' : ''}}>Tidak Aktif</option> <option value="0" {{old('status') == '0' ? 'selected' : ''}}>Tidak Aktif</option>
</select> </select>
</div> </div>
@error('status')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
@ -62,6 +73,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>

View File

@ -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 Sub Lokus</h5>
<p>Perbarui informasi sub lokus ini.</p>
</div>
</div> </div>
<form action="{{route('dashboard.sub.locations.update', ['id' => encrypt_id($subLocation->id)])}}" method="post" id="myForm"> <form action="{{route('dashboard.sub.locations.update', ['id' => encrypt_id($subLocation->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 Sub Lokus<span class="required-input">*</span></label> <label class="form-label" for="name">Nama Sub Lokus<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 sub lokus" value="{{$subLocation->name}}"> <input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Contoh: Citalang, Sempur, Gunungkarung" value="{{$subLocation->name}}">
</div> </div>
@error('name') @error('name')
<span class="validation-error">{{$message}}</span> <span class="validation-error">{{$message}}</span>
@ -38,6 +41,9 @@
</select> </select>
</div> </div>
</div> </div>
@error('location_id')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<div class="form-group"> <div class="form-group">
@ -49,6 +55,9 @@
</select> </select>
</div> </div>
</div> </div>
@error('status')
<span class="validation-error">{{$message}}</span>
@enderror
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="form-group"> <div class="form-group">
@ -57,6 +66,9 @@
<textarea class="tinymce-basic form-control" name="description">{!!$subLocation->description!!}</textarea> <textarea class="tinymce-basic form-control" name="description">{!!$subLocation->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>

View File

@ -45,8 +45,8 @@
<thead> <thead>
<tr> <tr>
<th>No</th> <th>No</th>
<th>Lokus</th>
<th>Nama</th> <th>Nama</th>
<th>Lokus</th>
<th>Isu</th> <th>Isu</th>
<th>Status</th> <th>Status</th>
<th></th> <th></th>

View File

@ -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 Sub Lokus</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Detail sub lokus dapat dilihat di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.sub.locations.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>
<a href="{{route('dashboard.sub.locations.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>
</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 Sub Lokus</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.sub.locations.edit', ['id' => encrypt_id($subLocation->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">
@ -24,14 +43,16 @@
<div class="profile-ud-list"> <div class="profile-ud-list">
<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">Nama Sub Lokus</span> <span class="profile-ud-label">Nama</span>
<span class="profile-ud-value">{{$subLocation->name}}</span> <span class="profile-ud-value">{{$subLocation->name}}</span>
</div> </div>
</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">Nama Lokus</span> <span class="profile-ud-label">Lokus</span>
<span class="profile-ud-value">{{$subLocation->location->name}}</span> <span class="profile-ud-value">
<a href="{{route('dashboard.locations.show', ['id' => encrypt_id($subLocation->location->id), 'sub_location' => encrypt_id($subLocation->id)])}}">{{$subLocation->location->name}}</a>
</span>
</div> </div>
</div> </div>
<div class="profile-ud-item"> <div class="profile-ud-item">
@ -52,7 +73,7 @@
@if (filled($subLocation->deleted_at)) @if (filled($subLocation->deleted_at))
<span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Dihapus</span></span>
@elseif ($subLocation->status == 0) @elseif ($subLocation->status == 0)
<span class="profile-ud-value"><span class="badge bg-warning">Nonaktif</span></span> <span class="profile-ud-value"><span class="badge bg-danger">Nonaktif</span></span>
@elseif ($subLocation->status == 1) @elseif ($subLocation->status == 1)
<span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span> <span class="profile-ud-value"><span class="badge bg-primary">Aktif</span></span>
@else @else
@ -66,6 +87,12 @@
<span class="profile-ud-value">{{idn_date($subLocation->created_at, 'l, d F Y')}}</span> <span class="profile-ud-value">{{idn_date($subLocation->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">{{$subLocation->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> --}}
@ -81,11 +108,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.sub.locations.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
<a href="{{route('dashboard.sub.locations.edit', ['id' => encrypt_id($subLocation->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 -->

View File

@ -142,29 +142,37 @@
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: '{{ route('dashboard.locations.data') }}', ajax: '{{ route('dashboard.locations.data') }}',
ajax: {
url: '{{ route('dashboard.locations.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' },
{ data: 'status', name: 'status' },
{ data: 'sub_locations', name: 'sub_locations' }, { data: 'sub_locations', name: 'sub_locations' },
{ data: 'issues', name: 'issues' }, { data: 'issues', name: 'issues' },
{ 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: [ columnDefs: [
{ targets: 0, width: 'auto' }, { targets: 0, width: '2%' }, // Index
{ targets: 2, width: '7%' }, { targets: 1, width: '20%' }, // Name
{ targets: 3, width: '10%' }, { targets: 2, width: '3%' }, // Sub Location
{ targets: 4, width: '10%' }, { targets: 3, width: '3%' }, // Issue
{ targets: 5, width: '5%' }, { targets: 4, width: '3%' }, // Status
{ targets: 5, 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',
}); });
} }
} }
@ -188,11 +196,18 @@
$('#subLocationsTable').DataTable({ $('#subLocationsTable').DataTable({
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: '{{ route('dashboard.sub.locations.data', ["location" => $location]) }}', ajax: {
url: '{{ route('dashboard.sub.locations.data') }}',
type: 'GET',
data: function(d) {
d.location = '{{ $location }}';
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: 'location', name: 'location' },
{ data: 'name', name: 'name' }, { data: 'name', name: 'name' },
{ data: 'location', name: 'location' },
{ data: 'issues', name: 'issues' }, { 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 },
@ -200,18 +215,19 @@
{ 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: 1, width: 'auto' }, { targets: 1, width: '20%' }, // Name
{ targets: 3, width: '12%' }, { targets: 2, width: '3%' }, // Sub Location
{ targets: 4, width: '7%' }, { targets: 3, width: '3%' }, // Issue
{ targets: 5, width: '5%' }, { targets: 4, width: '3%' }, // Status
{ targets: 5, width: '2%', className: 'text-center' }, // Action button
{ {
targets: [2], 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',
}); });
} }
} }