Detail Klasifikasi
+-
+
- Detail klasifikasi dapat dilihat di sini. +
diff --git a/app/Http/Controllers/Dashboard/ClassificationController.php b/app/Http/Controllers/Dashboard/ClassificationController.php index c757eca..3ab4a40 100644 --- a/app/Http/Controllers/Dashboard/ClassificationController.php +++ b/app/Http/Controllers/Dashboard/ClassificationController.php @@ -5,6 +5,7 @@ use App\Http\Controllers\Controller; use App\Http\Requests\ClassificationRequest; use App\Models\Classification; +use Exception; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; @@ -13,14 +14,15 @@ class ClassificationController extends Controller { public function index(Request $request){ return view('dashboard.classifications.index', [ - 'title' => 'Klasifikasi', - 'filter' => $request->input('filter', null) + 'title' => 'Data Klasifikasi', + 'filter' => $request->input('filter', null), + 'new_data' => session()->get('new_data', null), ]); } public function 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['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['enhancer_id'] = Auth::id(); - $classification = Classification::findOrFail(decrypt_id($id)); - $updatedClassification = $classification->update($validatedData); + try{ + $classification = Classification::findOrFail(decrypt_id($id)); + $classification->update($validatedData); - if($updatedClassification){ - return redirect()->back()->with('success-status', 'Berhasil mengubah klasifikasi.'); - }else{ + return redirect()->route('dashboard.classifications.show', ['id' => encrypt_id($classification->id)])->with('success-status', 'Berhasil mengubah klasifikasi.'); + }catch(\Exception $e){ return redirect()->back()->with('failed-status', 'Gagal mengubah klasifikasi.'); } } public function show($id){ - $classification = Classification::withTrashed()->find(decrypt_id($id)); + $classification = Classification::withTrashed()->findOrFail(decrypt_id($id)); return view('dashboard.classifications.show', [ 'title' => 'Detail Klasifikasi', @@ -69,15 +73,51 @@ public function show($id){ ]); } - public function destroy($id){ + public function destroy($id) + { try { $classification = Classification::findOrFail(decrypt_id($id)); - $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) { - 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); + } + } + + } diff --git a/app/Http/Controllers/Dashboard/DatatableController.php b/app/Http/Controllers/Dashboard/DatatableController.php index ab4f79f..a12c2b4 100644 --- a/app/Http/Controllers/Dashboard/DatatableController.php +++ b/app/Http/Controllers/Dashboard/DatatableController.php @@ -45,9 +45,19 @@ public function classification(Request $request){ $data = Classification::with(['subClassifications'])->get(); } + $newData = $request->input('new_data', null); + return DataTables::of($data) ->addIndexColumn() + ->addColumn('name', function ($data) use ($newData) { + + if(filled($newData) && $newData == $data->id){ + return 'Baru'. $data->name; + }else{ + return $data->name; + } + }) ->addColumn('status', function ($data) { if(filled($data->deleted_at)){ return 'Dihapus'; @@ -112,7 +122,7 @@ public function classification(Request $request){ return $dropdown; }) - ->rawColumns(['sub_classifications', 'issues', 'status', 'action']) + ->rawColumns(['name', 'sub_classifications', 'issues', 'status', 'action']) ->make(true); } @@ -127,29 +137,40 @@ public function subClassification(Request $request){ $data = SubClassification::with(['classification'])->onlyTrashed()->get(); }else{ $classificationParam = $request->input('classification', null); - if ($classificationParam) { - $classification = Classification::where('id', '=', decrypt_id($classificationParam))->first(); + if ($classificationParam) { + $classification = Classification::where('id', '=', decrypt_id($classificationParam))->first(); - // Tambahkan pengecekan apakah classification ditemukan - if ($classification) { + // Tambahkan pengecekan apakah classification ditemukan + 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) { $query->withTrashed(); - }])->where('classification_id', '=', $classification->id)->get(); - } else { - return response()->json(['error' => 'Classification not found'], 404); + }])->get(); } - } else { - $data = SubClassification::with(['classification' => function($query) { - $query->withTrashed(); - }])->get(); - } } + $newData = $request->input('new_data', null); + + return DataTables::of($data) ->addIndexColumn() + ->addColumn('name', function ($data) use ($newData) { + + if(filled($newData) && $newData == $data->id){ + return 'Baru'. $data->name; + }else{ + return $data->name; + } + }) ->addColumn('classification', function ($data) { - return $data->classification->name; + return ''.$data->classification->name.''; }) ->addColumn('status', function ($data) { if(filled($data->deleted_at)){ @@ -202,7 +223,7 @@ public function subClassification(Request $request){ return $dropdown; }) - ->rawColumns(['issues', 'status', 'action']) + ->rawColumns(['name', 'classification', 'issues', 'status', 'action']) ->make(true); } diff --git a/app/Http/Controllers/Dashboard/SubClassificationController.php b/app/Http/Controllers/Dashboard/SubClassificationController.php index b7423b1..fa25b42 100644 --- a/app/Http/Controllers/Dashboard/SubClassificationController.php +++ b/app/Http/Controllers/Dashboard/SubClassificationController.php @@ -15,9 +15,10 @@ class SubClassificationController extends Controller public function index(Request $request){ $viewData = [ - 'title' => 'Sub Klasifikasi', + 'title' => 'Data Sub Klasifikasi', '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); @@ -26,7 +27,7 @@ public function index(Request $request){ public function create(Request $request){ $viewData = [ - 'title' => 'Tambah Sub Klasifikasi', + 'title' => 'Buat Sub Klasifikasi Baru', 'fromClassification' => false ]; @@ -45,12 +46,13 @@ public function store(SubClassificationRequest $request){ $validatedData = $request->validated(); $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 menambahkan sub klasifikasi.'); - }else{ - return redirect()->back()->with('failed-status', 'Gagal menambahkan sub klasifikasi.'); + return redirect()->route('dashboard.sub.classifications.index')->with('success-status', 'Berhasil membuat sub klasifikasi baru.') + ->with('new_data', $createdSubClassification->id); + }catch(\Exception $e){ + 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['enhancer_id'] = Auth::id(); - $subClassification = SubClassification::findOrFail(decrypt_id($id)); - $updatedSubClassification = $subClassification->update($validatedData); + try{ + $subClassification = SubClassification::findOrFail(decrypt_id($id)); + $subClassification->update($validatedData); - if($updatedSubClassification){ - return redirect()->back()->with('success-status', 'Berhasil mengubah sub klasifikasi.'); - }else{ + return redirect()->route('dashboard.sub.classifications.show', ['id' => encrypt_id($subClassification->id)])->with('success-status', 'Berhasil mengubah sub klasifikasi.'); + }catch(\Exception $e){ return redirect()->back()->with('failed-status', 'Gagal mengubah sub klasifikasi.'); } } 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', [ 'title' => 'Detail Sub Klasifikasi', @@ -90,7 +92,6 @@ public function show($id){ public function destroy($id){ try { $subClassification = SubClassification::findOrFail(decrypt_id($id)); - $subClassification->delete(); return response()->json(['message' => 'Berhasil menghapus sub klasifikasi.']); diff --git a/app/Models/Classification.php b/app/Models/Classification.php index 9506ce2..667beb5 100644 --- a/app/Models/Classification.php +++ b/app/Models/Classification.php @@ -24,4 +24,8 @@ public function subClassifications(){ public function issues(){ return $this->hasMany(IssueManagement::class, 'classification_id', 'id'); } + + public function enhancer(){ + return $this->belongsTo(User::class, 'enhancer_id', 'id'); + } } diff --git a/app/Models/SubClassification.php b/app/Models/SubClassification.php index 325054b..1be6531 100644 --- a/app/Models/SubClassification.php +++ b/app/Models/SubClassification.php @@ -26,4 +26,8 @@ public function classification(){ public function issues(){ return $this->hasMany(IssueManagement::class, 'sub_classification_id', 'id'); } + + public function enhancer(){ + return $this->belongsTo(User::class, 'enhancer_id', 'id'); + } } diff --git a/resources/views/dashboard/classifications/create.blade.php b/resources/views/dashboard/classifications/create.blade.php index 8a0d9e3..431d1dd 100644 --- a/resources/views/dashboard/classifications/create.blade.php +++ b/resources/views/dashboard/classifications/create.blade.php @@ -10,16 +10,19 @@
Masukkan informasi yang diperlukan untuk membuat klasifikasi.
+Perbarui informasi klasifikasi ini.
+Masukkan informasi untuk membuat berita/pengumuman baru.
+Masukkan informasi yang diperlukan untuk membuat berita atau pengumuman.
Perbarui informasi sub klasifikasi ini.
+