'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), ]); } public function create(Request $request){ return view('dashboard.issue-managements.create', [ 'title' => 'Tambah Manajemen Isu', 'locations' => Location::all(), 'classifications' => Classification::all(), 'governmentAgencies' => GovernmentAgency::all(), 'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find(decrypt_id($request->input('media_monitoring'))), 'mediaMonitoringId' => $request->input('media_monitoring') ?? null ]); } public function store(IssueManagementRequest $request, $media_monitoring_id) { $validatedData = $request->validated(); $validatedData['enhancer_id'] = Auth::id(); $validatedData['media_monitoring_id'] = decrypt_id($media_monitoring_id); $createdIssueManagement = IssueManagement::create($validatedData); $createdIssueManagement->governmentAgencies()->attach($request->input('government_agencies')); if ($createdIssueManagement->governmentAgencies()->count() > 0) { return redirect()->back()->with('success-status', 'Berhasil menambahkan manajemen isu.'); } else { return redirect()->back()->with('failed-status', 'Gagal menambahkan manajemen isu'); } } public function edit(Request $request, $id) { $issueManagement = IssueManagement::with([ 'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer' ])->findOrFail(decrypt_id($id)); return view('dashboard.issue-managements.edit', [ 'title' => 'Ubah Manajemen Isu', 'locations' => Location::all(), 'classifications' => Classification::all(), 'governmentAgencies' => GovernmentAgency::all(), 'selectedGovernmentAgencies' => $issueManagement->governmentAgencies->pluck('id')->toArray(), 'issueManagement' => $issueManagement, 'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id), 'mediaMonitoringId' => $request->input('media_monitoring') ?? null ]); } public function update(IssueManagementRequest $request, $id){ $validatedData = $request->validated(); $issueManagement = IssueManagement::with([ 'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer' ])->findOrFail(decrypt_id($id)); $validatedData['media_monitoring_id'] = $issueManagement->media_monitoring_id; $updatedIssueManagement = $issueManagement->update($validatedData); if ($request->has('government_agencies')) { $issueManagement->governmentAgencies()->sync($validatedData['government_agencies']); } if ($updatedIssueManagement) { return redirect()->back()->with('success-status', 'Berhasil mengubah manajemen isu.'); } else { return redirect()->back()->with('failed-status', 'Gagal mengubah manajemen isu'); } } public function show($id){ $issueManagement = IssueManagement::with([ 'location', 'subLocation', 'classification', 'subClassification', 'mediaMonitoring', 'enhancer' ])->findOrFail(decrypt_id($id)); return view('dashboard.issue-managements.show', [ 'title' => 'Detail Manajemen Isu', 'issueManagement' => $issueManagement, 'mediaMonitoring' => MediaMonitoring::with(['enhancer'])->find($issueManagement->media_monitoring_id) ]); } public function destroy($id){ try { $issueManagement = IssueManagement::findOrFail(decrypt_id($id)); $issueManagement->governmentAgencies()->detach(); $issueManagement->delete(); return response()->json(['message' => 'Berhasil menghapus manajemen isu']); } catch (\Exception $e) { return response()->json(['message' => 'Gagal menghapus manajemen isu.'], 500); } } public function getSubLocations($location_id) { $subLocations = SubLocation::where('location_id', $location_id)->get(); return response()->json(['sub_locations' => $subLocations]); } public function getSubClassifications($location_id) { $subLocations = SubClassification::where('classification_id', $location_id)->get(); return response()->json(['sub_classifications' => $subLocations]); } }