diff --git a/app/Http/Controllers/Dashboard/ClassificationController.php b/app/Http/Controllers/Dashboard/ClassificationController.php index 669898c..bab9bf2 100644 --- a/app/Http/Controllers/Dashboard/ClassificationController.php +++ b/app/Http/Controllers/Dashboard/ClassificationController.php @@ -25,13 +25,12 @@ public function create(){ public function store(ClassificationRequest $request){ $validatedData = $request->validated(); - $validatedData['slug'] = Str::slug($validatedData['name']); $validatedData['enhancer_id'] = Auth::id(); $createdClassification = Classification::create($validatedData); if($createdClassification){ - return redirect()->back()->with('success-status', 'Berhasil menambahkan klasifikasi.'); + return redirect()->route('dashboard.classifications.index')->with('success-status', 'Berhasil menambahkan klasifikasi.'); }else{ return redirect()->back()->with('failed-status', 'Gagal menambahkan klasifikasi.'); } @@ -48,7 +47,6 @@ public function edit($id){ public function update(ClassificationRequest $request, $id){ $validatedData = $request->validated(); - $validatedData['slug'] = Str::slug($validatedData['name']); $validatedData['enhancer_id'] = Auth::id(); $classification = Classification::findOrFail(decrypt_id($id)); diff --git a/app/Http/Controllers/Dashboard/DatatableController.php b/app/Http/Controllers/Dashboard/DatatableController.php index 62b026f..7a1f857 100644 --- a/app/Http/Controllers/Dashboard/DatatableController.php +++ b/app/Http/Controllers/Dashboard/DatatableController.php @@ -56,11 +56,21 @@ public function classification(Request $request){ return $subClassificationCount; } + }) + ->addColumn('issues', function ($data) { + $issueCount = $data->issues->count(); + + if($issueCount > 0){ + return $issueCount. ' [Lihat]'; + }else{ + return $issueCount; + } + }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.classifications.show', ['id' => encrypt_id($data->id)]); - $addSubClassificationUrl = route('dashboard.sub.classifications.create', ['classification' => $data->slug]); + $addSubClassificationUrl = route('dashboard.sub.classifications.create', ['classification' => encrypt_id($data->id)]); $editUrl = route('dashboard.classifications.edit', ['id' => encrypt_id($data->id)]); @@ -92,7 +102,7 @@ public function classification(Request $request){ return $dropdown; }) - ->rawColumns(['sub_classifications', 'status', 'action']) + ->rawColumns(['sub_classifications', 'issues', 'status', 'action']) ->make(true); } @@ -134,6 +144,16 @@ public function subClassification(Request $request){ return 'Aktif'; } }) + ->addColumn('issues', function ($data) { + $issueCount = $data->issues->count(); + + if($issueCount > 0){ + return $issueCount. ' [Lihat]'; + }else{ + return $issueCount; + } + + }) ->addColumn('action', function ($data) { $showUrl = route('dashboard.sub.classifications.show', ['id' => encrypt_id($data->id)]); @@ -163,7 +183,7 @@ public function subClassification(Request $request){ return $dropdown; }) - ->rawColumns(['status', 'action']) + ->rawColumns(['issues', 'status', 'action']) ->make(true); } @@ -1662,7 +1682,20 @@ public function mediaMonitoring(Request $request){ public function issueManagement(Request $request){ if ($request->ajax()) { - $data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->get(); + + $classificationParam = $request->input('classification', null); + $subClassificationParam = $request->input('sub_classification', null); + + if($classificationParam){ + $data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->where('classification_id', decrypt_id($classificationParam))->get(); + + }else if($subClassificationParam){ + $data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->where('sub_classification_id', decrypt_id($subClassificationParam))->get(); + + }else{ + $data = IssueManagement::with(['location', 'subLocation', 'classification', 'subClassification', 'enhancer', 'governmentAgencies'])->get(); + } + return DataTables::of($data) ->addIndexColumn() diff --git a/app/Http/Controllers/Dashboard/IssueManagementController.php b/app/Http/Controllers/Dashboard/IssueManagementController.php index be86f73..daea6f2 100644 --- a/app/Http/Controllers/Dashboard/IssueManagementController.php +++ b/app/Http/Controllers/Dashboard/IssueManagementController.php @@ -16,9 +16,14 @@ class IssueManagementController extends Controller { - public function index(){ + public function index(Request $request){ return view('dashboard.issue-managements.index', [ - 'title' => 'Manajemen Isu' + 'title' => 'Manajemen Isu', + 'classification' => $request->input('classification', null), + 'sub_classification' => $request->input('sub_classification', null), + 'location' => $request->input('location', null), + 'sub_location' => $request->input('sub_location', null), + 'agency' => $request->input('agency', null), ]); } diff --git a/app/Http/Controllers/Dashboard/SubClassificationController.php b/app/Http/Controllers/Dashboard/SubClassificationController.php index 7853a9b..b817f6d 100644 --- a/app/Http/Controllers/Dashboard/SubClassificationController.php +++ b/app/Http/Controllers/Dashboard/SubClassificationController.php @@ -42,13 +42,12 @@ public function create(Request $request){ public function store(SubClassificationRequest $request){ $validatedData = $request->validated(); - $validatedData['slug'] = Str::slug($validatedData['name']); $validatedData['enhancer_id'] = Auth::id(); $createdSubClassification = SubClassification::create($validatedData); if($createdSubClassification){ - return redirect()->back()->with('success-status', 'Berhasil menambahkan sub klasifikasi.'); + 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.'); } @@ -66,7 +65,6 @@ public function edit($id){ public function update(SubClassificationRequest $request, $id){ $validatedData = $request->validated(); - $validatedData['slug'] = Str::slug($validatedData['name']); $validatedData['enhancer_id'] = Auth::id(); $subClassification = SubClassification::findOrFail(decrypt_id($id)); diff --git a/app/Models/Classification.php b/app/Models/Classification.php index 8962990..9506ce2 100644 --- a/app/Models/Classification.php +++ b/app/Models/Classification.php @@ -20,4 +20,8 @@ class Classification extends Model public function subClassifications(){ return $this->hasMany(SubClassification::class, 'classification_id', 'id'); } + + public function issues(){ + return $this->hasMany(IssueManagement::class, 'classification_id', 'id'); + } } diff --git a/app/Models/SubClassification.php b/app/Models/SubClassification.php index 3a10b8a..e6fdce7 100644 --- a/app/Models/SubClassification.php +++ b/app/Models/SubClassification.php @@ -19,4 +19,8 @@ class SubClassification extends Model public function classification(){ return $this->belongsTo(Classification::class, 'classification_id', 'id'); } + + public function issues(){ + return $this->hasMany(IssueManagement::class, 'sub_classification_id', 'id'); + } } diff --git a/resources/views/dashboard/classifications/create.blade.php b/resources/views/dashboard/classifications/create.blade.php index 16dc045..8a0d9e3 100644 --- a/resources/views/dashboard/classifications/create.blade.php +++ b/resources/views/dashboard/classifications/create.blade.php @@ -12,7 +12,7 @@