chore: change show UI
This commit is contained in:
parent
eec001e8b5
commit
b4f5aa1a2b
@ -5,6 +5,7 @@
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\ClassificationRequest;
|
use App\Http\Requests\ClassificationRequest;
|
||||||
use App\Models\Classification;
|
use App\Models\Classification;
|
||||||
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
@ -13,14 +14,15 @@ class ClassificationController extends Controller
|
|||||||
{
|
{
|
||||||
public function index(Request $request){
|
public function index(Request $request){
|
||||||
return view('dashboard.classifications.index', [
|
return view('dashboard.classifications.index', [
|
||||||
'title' => 'Klasifikasi',
|
'title' => 'Data Klasifikasi',
|
||||||
'filter' => $request->input('filter', null)
|
'filter' => $request->input('filter', null),
|
||||||
|
'new_data' => session()->get('new_data', null),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create(){
|
public function create(){
|
||||||
return view('dashboard.classifications.create', [
|
return view('dashboard.classifications.create', [
|
||||||
'title' => 'Tambah Klasifikasi'
|
'title' => 'Buat Klasifikasi Baru'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,12 +30,14 @@ public function store(ClassificationRequest $request){
|
|||||||
$validatedData = $request->validated();
|
$validatedData = $request->validated();
|
||||||
$validatedData['enhancer_id'] = Auth::id();
|
$validatedData['enhancer_id'] = Auth::id();
|
||||||
|
|
||||||
$createdClassification = Classification::create($validatedData);
|
try{
|
||||||
|
$createdClassification = Classification::create($validatedData);
|
||||||
|
|
||||||
|
return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil membuat klasifikasi baru.')
|
||||||
|
->with('new_data', $createdClassification->id);
|
||||||
|
}catch (\Exception $e){
|
||||||
|
return redirect()->back()->with('failed-status', 'Gagal membuat klasifikasi baru.');
|
||||||
|
|
||||||
if($createdClassification){
|
|
||||||
return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil menambahkan klasifikasi.');
|
|
||||||
}else{
|
|
||||||
return redirect()->back()->with('failed-status', 'Gagal menambahkan klasifikasi.');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,18 +54,18 @@ public function update(ClassificationRequest $request, $id){
|
|||||||
$validatedData = $request->validated();
|
$validatedData = $request->validated();
|
||||||
$validatedData['enhancer_id'] = Auth::id();
|
$validatedData['enhancer_id'] = Auth::id();
|
||||||
|
|
||||||
$classification = Classification::findOrFail(decrypt_id($id));
|
try{
|
||||||
$updatedClassification = $classification->update($validatedData);
|
$classification = Classification::findOrFail(decrypt_id($id));
|
||||||
|
$classification->update($validatedData);
|
||||||
|
|
||||||
if($updatedClassification){
|
return redirect()->route('dashboard.classifications.show', ['id' => encrypt_id($classification->id)])->with('success-status', 'Berhasil mengubah klasifikasi.');
|
||||||
return redirect()->back()->with('success-status', 'Berhasil mengubah klasifikasi.');
|
}catch(\Exception $e){
|
||||||
}else{
|
|
||||||
return redirect()->back()->with('failed-status', 'Gagal mengubah klasifikasi.');
|
return redirect()->back()->with('failed-status', 'Gagal mengubah klasifikasi.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show($id){
|
public function show($id){
|
||||||
$classification = Classification::withTrashed()->find(decrypt_id($id));
|
$classification = Classification::withTrashed()->findOrFail(decrypt_id($id));
|
||||||
|
|
||||||
return view('dashboard.classifications.show', [
|
return view('dashboard.classifications.show', [
|
||||||
'title' => 'Detail Klasifikasi',
|
'title' => 'Detail Klasifikasi',
|
||||||
@ -69,15 +73,51 @@ public function show($id){
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy($id){
|
public function destroy($id)
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
$classification = Classification::findOrFail(decrypt_id($id));
|
$classification = Classification::findOrFail(decrypt_id($id));
|
||||||
|
|
||||||
$classification->delete();
|
$classification->delete();
|
||||||
|
|
||||||
return response()->json(['message' => 'Berhasil menghapus klasifikasi.']);
|
return response()->json([
|
||||||
|
'status' => 'success',
|
||||||
|
'message' => 'Berhasil menghapus klasifikasi.',
|
||||||
|
'id' => encrypt_id($classification->id), // untuk digunakan saat Undo
|
||||||
|
]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return response()->json(['message' => 'Gagal menghapus klasifikasi.'], 500);
|
return response()->json([
|
||||||
|
'status' => 'failed',
|
||||||
|
'message' => 'Gagal menghapus klasifikasi.',
|
||||||
|
], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function restore($id)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$classification = Classification::withTrashed()->findOrFail(decrypt_id($id));
|
||||||
|
|
||||||
|
if (!$classification->trashed()) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'failed',
|
||||||
|
'message' => 'Klasifikasi belum dihapus.',
|
||||||
|
], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$classification->restore();
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'success',
|
||||||
|
'message' => 'Klasifikasi berhasil dikembalikan.',
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'failed',
|
||||||
|
'message' => 'Gagal mengembalikan klasifikasi.',
|
||||||
|
], 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,9 +45,19 @@ public function classification(Request $request){
|
|||||||
$data = Classification::with(['subClassifications'])->get();
|
$data = Classification::with(['subClassifications'])->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) && $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(filled($data->deleted_at)){
|
if(filled($data->deleted_at)){
|
||||||
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Dihapus</span>';
|
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Dihapus</span>';
|
||||||
@ -112,7 +122,7 @@ public function classification(Request $request){
|
|||||||
return $dropdown;
|
return $dropdown;
|
||||||
})
|
})
|
||||||
|
|
||||||
->rawColumns(['sub_classifications', 'issues', 'status', 'action'])
|
->rawColumns(['name', 'sub_classifications', 'issues', 'status', 'action'])
|
||||||
->make(true);
|
->make(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,29 +137,40 @@ public function subClassification(Request $request){
|
|||||||
$data = SubClassification::with(['classification'])->onlyTrashed()->get();
|
$data = SubClassification::with(['classification'])->onlyTrashed()->get();
|
||||||
}else{
|
}else{
|
||||||
$classificationParam = $request->input('classification', null);
|
$classificationParam = $request->input('classification', null);
|
||||||
if ($classificationParam) {
|
if ($classificationParam) {
|
||||||
$classification = Classification::where('id', '=', decrypt_id($classificationParam))->first();
|
$classification = Classification::where('id', '=', decrypt_id($classificationParam))->first();
|
||||||
|
|
||||||
// Tambahkan pengecekan apakah classification ditemukan
|
// Tambahkan pengecekan apakah classification ditemukan
|
||||||
if ($classification) {
|
if ($classification) {
|
||||||
|
$data = SubClassification::with(['classification' => function($query) {
|
||||||
|
$query->withTrashed();
|
||||||
|
}])->where('classification_id', '=', $classification->id)->get();
|
||||||
|
} else {
|
||||||
|
return response()->json(['error' => 'Classification not found'], 404);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
$data = SubClassification::with(['classification' => function($query) {
|
$data = SubClassification::with(['classification' => function($query) {
|
||||||
$query->withTrashed();
|
$query->withTrashed();
|
||||||
}])->where('classification_id', '=', $classification->id)->get();
|
}])->get();
|
||||||
} else {
|
|
||||||
return response()->json(['error' => 'Classification not found'], 404);
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$data = SubClassification::with(['classification' => function($query) {
|
|
||||||
$query->withTrashed();
|
|
||||||
}])->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) && $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('classification', function ($data) {
|
->addColumn('classification', function ($data) {
|
||||||
return $data->classification->name;
|
return '<a href="'.route('dashboard.classifications.show', ['id' => encrypt_id($data->classification->id), 'sub_classification' => true]).'" class="text-dark">'.$data->classification->name.'</a>';
|
||||||
})
|
})
|
||||||
->addColumn('status', function ($data) {
|
->addColumn('status', function ($data) {
|
||||||
if(filled($data->deleted_at)){
|
if(filled($data->deleted_at)){
|
||||||
@ -202,7 +223,7 @@ public function subClassification(Request $request){
|
|||||||
return $dropdown;
|
return $dropdown;
|
||||||
})
|
})
|
||||||
|
|
||||||
->rawColumns(['issues', 'status', 'action'])
|
->rawColumns(['name', 'classification', 'issues', 'status', 'action'])
|
||||||
->make(true);
|
->make(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,9 +15,10 @@ class SubClassificationController extends Controller
|
|||||||
public function index(Request $request){
|
public function index(Request $request){
|
||||||
|
|
||||||
$viewData = [
|
$viewData = [
|
||||||
'title' => 'Sub Klasifikasi',
|
'title' => 'Data Sub Klasifikasi',
|
||||||
'classification' => $request->input('classification', null),
|
'classification' => $request->input('classification', null),
|
||||||
'filter' => $request->input('filter', null)
|
'filter' => $request->input('filter', null),
|
||||||
|
'new_data' => session()->get('new_data', null),
|
||||||
];
|
];
|
||||||
|
|
||||||
return view('dashboard.sub-classifications.index', $viewData);
|
return view('dashboard.sub-classifications.index', $viewData);
|
||||||
@ -26,7 +27,7 @@ public function index(Request $request){
|
|||||||
public function create(Request $request){
|
public function create(Request $request){
|
||||||
|
|
||||||
$viewData = [
|
$viewData = [
|
||||||
'title' => 'Tambah Sub Klasifikasi',
|
'title' => 'Buat Sub Klasifikasi Baru',
|
||||||
'fromClassification' => false
|
'fromClassification' => false
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -45,12 +46,13 @@ public function store(SubClassificationRequest $request){
|
|||||||
$validatedData = $request->validated();
|
$validatedData = $request->validated();
|
||||||
$validatedData['enhancer_id'] = Auth::id();
|
$validatedData['enhancer_id'] = Auth::id();
|
||||||
|
|
||||||
$createdSubClassification = SubClassification::create($validatedData);
|
try{
|
||||||
|
$createdSubClassification = SubClassification::create($validatedData);
|
||||||
|
|
||||||
if($createdSubClassification){
|
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 menambahkan sub klasifikasi.');
|
->with('new_data', $createdSubClassification->id);
|
||||||
}else{
|
}catch(\Exception $e){
|
||||||
return redirect()->back()->with('failed-status', 'Gagal menambahkan sub klasifikasi.');
|
return redirect()->back()->with('failed-status', 'Gagal membuat sub klasifikasi baru.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,18 +70,18 @@ public function update(SubClassificationRequest $request, $id){
|
|||||||
$validatedData = $request->validated();
|
$validatedData = $request->validated();
|
||||||
$validatedData['enhancer_id'] = Auth::id();
|
$validatedData['enhancer_id'] = Auth::id();
|
||||||
|
|
||||||
$subClassification = SubClassification::findOrFail(decrypt_id($id));
|
try{
|
||||||
$updatedSubClassification = $subClassification->update($validatedData);
|
$subClassification = SubClassification::findOrFail(decrypt_id($id));
|
||||||
|
$subClassification->update($validatedData);
|
||||||
|
|
||||||
if($updatedSubClassification){
|
return redirect()->route('dashboard.sub.classifications.show', ['id' => encrypt_id($subClassification->id)])->with('success-status', 'Berhasil mengubah sub klasifikasi.');
|
||||||
return redirect()->back()->with('success-status', 'Berhasil mengubah sub klasifikasi.');
|
}catch(\Exception $e){
|
||||||
}else{
|
|
||||||
return redirect()->back()->with('failed-status', 'Gagal mengubah sub klasifikasi.');
|
return redirect()->back()->with('failed-status', 'Gagal mengubah sub klasifikasi.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show($id){
|
public function show($id){
|
||||||
$subClassification = SubClassification::with(['classification'])->withTrashed()->find(decrypt_id($id));
|
$subClassification = SubClassification::with(['classification'])->withTrashed()->findOrFail(decrypt_id($id));
|
||||||
|
|
||||||
return view('dashboard.sub-classifications.show', [
|
return view('dashboard.sub-classifications.show', [
|
||||||
'title' => 'Detail Sub Klasifikasi',
|
'title' => 'Detail Sub Klasifikasi',
|
||||||
@ -90,7 +92,6 @@ public function show($id){
|
|||||||
public function destroy($id){
|
public function destroy($id){
|
||||||
try {
|
try {
|
||||||
$subClassification = SubClassification::findOrFail(decrypt_id($id));
|
$subClassification = SubClassification::findOrFail(decrypt_id($id));
|
||||||
|
|
||||||
$subClassification->delete();
|
$subClassification->delete();
|
||||||
|
|
||||||
return response()->json(['message' => 'Berhasil menghapus sub klasifikasi.']);
|
return response()->json(['message' => 'Berhasil menghapus sub klasifikasi.']);
|
||||||
|
|||||||
@ -24,4 +24,8 @@ public function subClassifications(){
|
|||||||
public function issues(){
|
public function issues(){
|
||||||
return $this->hasMany(IssueManagement::class, 'classification_id', 'id');
|
return $this->hasMany(IssueManagement::class, 'classification_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function enhancer(){
|
||||||
|
return $this->belongsTo(User::class, 'enhancer_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,4 +26,8 @@ public function classification(){
|
|||||||
public function issues(){
|
public function issues(){
|
||||||
return $this->hasMany(IssueManagement::class, 'sub_classification_id', 'id');
|
return $this->hasMany(IssueManagement::class, 'sub_classification_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function enhancer(){
|
||||||
|
return $this->belongsTo(User::class, 'enhancer_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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 Klasifikasi Baru</h5>
|
||||||
|
<p>Masukkan informasi yang diperlukan untuk membuat klasifikasi.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form action="{{route('dashboard.classifications.store')}}" method="post" id="myForm">
|
<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">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="name">Nama Klasifikasi<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 klasifikasi" value="{{old('name')}}">
|
<input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Pendidikan, Kesehatan, Konflik" 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="null" 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">
|
||||||
@ -44,6 +51,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 Klasifikasi</h5>
|
||||||
|
<p>Perbarui informasi klasifikasi ini.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form action="{{route('dashboard.classifications.update', ['id' => encrypt_id($classification->id)])}}" method="post" id="myForm">
|
<form action="{{route('dashboard.classifications.update', ['id' => encrypt_id($classification->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 Klasifikasi<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 klasifikasi" value="{{ $classification->name}}">
|
<input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Pendidikan, Kesehatan, Konflik" value="{{ $classification->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" {{$classification->status == '0' ? 'selected' : ''}}>Tidak Aktif</option>
|
<option value="0" {{$classification->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">
|
||||||
@ -44,6 +50,9 @@
|
|||||||
<div class="form-control-wrap">
|
<div class="form-control-wrap">
|
||||||
<textarea class="tinymce-basic form-control" name="description">{!!$classification->description!!}</textarea>
|
<textarea class="tinymce-basic form-control" name="description">{!!$classification->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">
|
||||||
|
|||||||
@ -34,8 +34,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>No</th>
|
<th>No</th>
|
||||||
<th>Nama</th>
|
<th>Nama</th>
|
||||||
<th>Sub Klasifikasi</th>
|
<th>Jumlah Sub Klasifikasi</th>
|
||||||
<th>Isu</th>
|
<th>Jumlah Isu</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -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 Klasifikasi</h3>
|
||||||
|
<div class="nk-block-des text-soft">
|
||||||
|
<ul class="list-inline">
|
||||||
|
<li>Detail klasifikasi dapat dilihat di sini.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="nk-block-head-content">
|
||||||
|
@if (request()->query('sub_classification') && request()->query('sub_classification') === '1')
|
||||||
|
<a href="{{route('dashboard.sub.classifications.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.classifications.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_classification') && request()->query('sub_classification') !== 1)
|
||||||
|
<a href="{{route('dashboard.sub.classifications.show', ['id' => request()->query('sub_classification')])}}" 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.classifications.show', ['id' => request()->query('sub_classification')])}}" 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.classifications.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.classifications.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 Klasifikasi</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.classifications.edit', ['id' => encrypt_id($classification->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">
|
||||||
@ -72,6 +99,12 @@
|
|||||||
<span class="profile-ud-value">{{idn_date($classification->created_at, 'l, d F Y')}}</span>
|
<span class="profile-ud-value">{{idn_date($classification->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">{{$classification->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> --}}
|
||||||
@ -87,13 +120,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.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
|
||||||
@if (!filled($classification->deleted_at))
|
|
||||||
<a href="{{route('dashboard.classifications.edit', ['id' => encrypt_id($classification->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
|
|
||||||
@endif
|
|
||||||
</div><!-- .nk-block -->
|
|
||||||
</div><!-- .card-inner -->
|
</div><!-- .card-inner -->
|
||||||
</div><!-- .card-content -->
|
</div><!-- .card-content -->
|
||||||
</div><!-- .card-aside-wrap -->
|
</div><!-- .card-aside-wrap -->
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
<div class="card-head">
|
<div class="card-head">
|
||||||
<div class="nk-block-head">
|
<div class="nk-block-head">
|
||||||
<h5 class="title">Buat Berita Baru</h5>
|
<h5 class="title">Buat Berita Baru</h5>
|
||||||
<p>Masukkan informasi untuk membuat berita/pengumuman baru.</p>
|
<p>Masukkan informasi yang diperlukan untuk membuat berita atau pengumuman.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form action="{{route('dashboard.news.store')}}" method="post" enctype="multipart/form-data" id="myForm">
|
<form action="{{route('dashboard.news.store')}}" method="post" enctype="multipart/form-data" id="myForm">
|
||||||
|
|||||||
@ -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 Klasifikasi Baru</h5>
|
||||||
|
<p>Masukkan informasi yang diperlukan untuk membuat sub klasifikasi.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form action="{{route('dashboard.sub.classifications.store')}}" method="post" id="myForm">
|
<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">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label" for="name">Nama Sub Klasifikasi<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 klasifikasi" value="{{old('name')}}">
|
<input type="text" class="form-control" id="name" name="name" placeholder="Contoh: Bisnis, Sosial, Kiriminal" 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="classification_id">
|
<select class="form-select js-select2" data-search="on" name="classification_id">
|
||||||
|
<option value="select" selected disabled>Pilih Klasifikasi</option>
|
||||||
@foreach ($classifications as $classification)
|
@foreach ($classifications as $classification)
|
||||||
<option value="{{$classification->id}}" {{old('classification_id') == $classification->id ? 'selected' : ''}}>{{$classification->name}}</option>
|
<option value="{{$classification->id}}" {{old('classification_id') == $classification->id ? 'selected' : ''}}>{{$classification->name}}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
@error('classification_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,11 +73,14 @@
|
|||||||
<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>
|
||||||
<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="{{request()->query('classification') ? route('dashboard.classifications.index') : route('dashboard.sub.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
||||||
<button type="button" class="btn btn-md btn-primary" id="submitButton">Tambahkan</button>
|
<button type="button" class="btn btn-md btn-primary" id="submitButton">Tambahkan</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -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 Klasifikasi</h5>
|
||||||
|
<p>Perbarui informasi sub klasifikasi ini.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form action="{{route('dashboard.sub.classifications.update', ['id' => encrypt_id($subClassification->id)])}}" method="post" id="myForm">
|
<form action="{{route('dashboard.sub.classifications.update', ['id' => encrypt_id($subClassification->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 Sub Klasifikasi<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 klasifikasi" value="{{$subClassification->name}}">
|
<input type="text" class="form-control @error('name') border-danger @enderror" id="name" name="name" placeholder="Contoh: Bisnis, Sosial, Kiriminal" value="{{$subClassification->name}}">
|
||||||
</div>
|
</div>
|
||||||
@error('name')
|
@error('name')
|
||||||
<span class="validation-error">{{$message}}</span>
|
<span class="validation-error">{{$message}}</span>
|
||||||
|
|||||||
@ -33,9 +33,9 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>No</th>
|
<th>No</th>
|
||||||
<th>Klasifikasi</th>
|
|
||||||
<th>Nama</th>
|
<th>Nama</th>
|
||||||
<th>Isu</th>
|
<th>Klasifikasi</th>
|
||||||
|
<th>Jumlah Isu</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -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 Klasifikasi</h3>
|
||||||
|
<div class="nk-block-des text-soft">
|
||||||
|
<ul class="list-inline">
|
||||||
|
<li>Detail sub klasifikasi dapat dilihat di sini.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="nk-block-head-content">
|
||||||
|
<a href="{{route('dashboard.sub.classifications.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.classifications.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 Klasifikasi</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.classifications.edit', ['id' => encrypt_id($subClassification->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 Klasifikasi</span>
|
<span class="profile-ud-label">Nama</span>
|
||||||
<span class="profile-ud-value">{{$subClassification->name}}</span>
|
<span class="profile-ud-value">{{$subClassification->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 Klasifikasi</span>
|
<span class="profile-ud-label">Klasifikasi</span>
|
||||||
<span class="profile-ud-value">{{$subClassification->classification->name}}</span>
|
<span class="profile-ud-value">
|
||||||
|
<a href="{{route('dashboard.classifications.show', ['id' => encrypt_id($subClassification->classification->id), 'sub_classification' => encrypt_id($subClassification->id)])}}">{{$subClassification->classification->name}}</a>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="profile-ud-item">
|
<div class="profile-ud-item">
|
||||||
@ -66,6 +87,12 @@
|
|||||||
<span class="profile-ud-value">{{idn_date($subClassification->created_at, 'l, d F Y')}}</span>
|
<span class="profile-ud-value">{{idn_date($subClassification->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">{{$subClassification->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,13 +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.classifications.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
|
|
||||||
@if (!filled($subClassification->deleted_at))
|
|
||||||
<a href="{{route('dashboard.sub.classifications.edit', ['id' => encrypt_id($subClassification->id), 'show' => true])}}" class="btn btn-warning"><span>Ubah</span></a>
|
|
||||||
@endif
|
|
||||||
</div><!-- .nk-block -->
|
|
||||||
</div><!-- .card-inner -->
|
</div><!-- .card-inner -->
|
||||||
</div><!-- .card-content -->
|
</div><!-- .card-content -->
|
||||||
</div><!-- .card-aside-wrap -->
|
</div><!-- .card-aside-wrap -->
|
||||||
|
|||||||
@ -27,7 +27,14 @@
|
|||||||
$('#classificationsTable').DataTable({
|
$('#classificationsTable').DataTable({
|
||||||
processing: true,
|
processing: true,
|
||||||
serverSide: true,
|
serverSide: true,
|
||||||
ajax: '{{ route('dashboard.classifications.data', ["filter" => $filter]) }}',
|
ajax: {
|
||||||
|
url: '{{ route('dashboard.classifications.data') }}',
|
||||||
|
type: 'GET',
|
||||||
|
data: function(d) {
|
||||||
|
d.filter = '{{ $filter }}';
|
||||||
|
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' },
|
||||||
@ -39,18 +46,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: '3%' }, // Index
|
||||||
{ targets: 2, width: '10%' },
|
{ targets: 1, width: '40%' }, // Name
|
||||||
{ targets: 3, width: '10%' },
|
{ targets: 2, width: '8%' }, // Sub Classification
|
||||||
{ targets: 4, width: '7%' },
|
{ targets: 3, width: '8%' }, // Issue
|
||||||
{ targets: 5, width: 'auto' },
|
{ targets: 4, width: '5%' }, // Status
|
||||||
|
{ targets: 5, width: '2%', className: 'text-center' }, // Action button
|
||||||
|
|
||||||
{
|
{
|
||||||
targets: [1],
|
targets: [1], // 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',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,11 +84,19 @@
|
|||||||
$('#subClassificationsTable').DataTable({
|
$('#subClassificationsTable').DataTable({
|
||||||
processing: true,
|
processing: true,
|
||||||
serverSide: true,
|
serverSide: true,
|
||||||
ajax: '{{ route('dashboard.sub.classifications.data', ["classification" => $classification, "filter" => $filter]) }}',
|
ajax: {
|
||||||
|
url: '{{ route('dashboard.sub.classifications.data') }}',
|
||||||
|
type: 'GET',
|
||||||
|
data: function(d) {
|
||||||
|
d.classification = '{{ $classification }}';
|
||||||
|
d.filter = '{{ $filter }}';
|
||||||
|
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: 'classification', name: 'classification' },
|
|
||||||
{ data: 'name', name: 'name' },
|
{ data: 'name', name: 'name' },
|
||||||
|
{ data: 'classification', name: 'classification' },
|
||||||
{ 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 },
|
||||||
@ -88,18 +104,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: '3%' }, // Index
|
||||||
{ targets: 1, width: '10%' },
|
{ targets: 1, width: '20%' }, // Classification
|
||||||
{ targets: 3, width: '10%' },
|
{ targets: 2, width: '20%' }, // Name
|
||||||
{ targets: 4, width: '10%' },
|
{ targets: 3, width: '5%' }, // Issue
|
||||||
{ targets: 5, width: 'auto' },
|
{ targets: 4, width: '5%' }, // 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',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,6 +53,82 @@ function deleteItem(url, message) {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function deleteUndoItem(urlDelete, route, message) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Apakah Anda yakin?',
|
||||||
|
text: message,
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Ya, hapus!',
|
||||||
|
cancelButtonText: 'Batal',
|
||||||
|
reverseButtons: true
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
$.ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: urlDelete,
|
||||||
|
success: function(response) {
|
||||||
|
if (response.status === 'failed') {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal',
|
||||||
|
text: response.message ?? 'Terjadi kesalahan saat menghapus.',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'success',
|
||||||
|
title: 'Berhasil',
|
||||||
|
text: 'Data berhasil dihapus.',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'Undo',
|
||||||
|
cancelButtonText: 'Tutup',
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.isConfirmed) {
|
||||||
|
if (!route || !response.id) {
|
||||||
|
return Swal.fire('Gagal!', 'Tidak dapat mengembalikan data (data tidak lengkap).', 'error');
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: `/dashboard/${route}/${response.id}/restore`,
|
||||||
|
success: function(res) {
|
||||||
|
Swal.fire('Dikembalikan!', res.message ?? 'Data berhasil dikembalikan.', 'success').then(() => location.reload());
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
Swal.fire('Gagal!', 'Tidak dapat mengembalikan data.', 'error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(xhr) {
|
||||||
|
Swal.fire(
|
||||||
|
'Terjadi kesalahan!',
|
||||||
|
xhr.responseText ?? 'Server tidak merespon.',
|
||||||
|
'error'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$.ajaxSetup({
|
$.ajaxSetup({
|
||||||
|
|||||||
@ -86,7 +86,9 @@
|
|||||||
Route::post('/', 'store')->name('store');
|
Route::post('/', 'store')->name('store');
|
||||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||||
Route::put('/{id}', 'update')->name('update');
|
Route::put('/{id}', 'update')->name('update');
|
||||||
|
|
||||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||||
|
Route::post('/{id}/restore', 'restore')->name('restore');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -181,7 +183,6 @@
|
|||||||
Route::get('/{id}/edit', 'edit')->name('edit');
|
Route::get('/{id}/edit', 'edit')->name('edit');
|
||||||
Route::put('/{id}', 'update')->name('update');
|
Route::put('/{id}', 'update')->name('update');
|
||||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
Route::delete('/{id}', 'destroy')->name('destroy');
|
||||||
Route::delete('/{id}', 'destroy')->name('destroy');
|
|
||||||
|
|
||||||
Route::post('/export', 'export')->name('export');
|
Route::post('/export', 'export')->name('export');
|
||||||
Route::post('/filter', 'filter')->name('filter');
|
Route::post('/filter', 'filter')->name('filter');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user