get(); return view('admin.pengumuman.index', [ 'pageTitle' => 'Manajemen Pengumuman', 'semuaPengumuman' => $semuaPengumuman, ]); } /** * Menampilkan form untuk membuat pengumuman baru. */ public function create() { return view('admin.pengumuman.create', [ 'pageTitle' => 'Buat Pengumuman Baru', ]); } /** * Menampilkan form untuk mengedit pengumuman yang ada. */ public function edit($id) { $pengumuman = Announcement::findOrFail($id); return view('admin.pengumuman.edit', [ 'pageTitle' => 'Edit Pengumuman: ' . $pengumuman->title, 'pengumuman' => $pengumuman, ]); } public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|string|min:3|max:50', 'content' => 'required|string|max:255', 'type' => 'required|in:info,warning,success,danger', 'icon' => 'nullable|string|max:50', ]); // Provide default icon if not provided if (!isset($validated['icon']) || empty($validated['icon'])) { $validated['icon'] = 'bi-megaphone'; } $validated['user_id'] = auth()->id(); Announcement::create($validated); return redirect()->route('admin.pengumuman.index')->with('success', 'Pengumuman berhasil ditambahkan.'); } public function update(Request $request, $id) { $pengumuman = Announcement::findOrFail($id); $validated = $request->validate([ 'title' => 'required|string|min:3|max:50', 'content' => 'required|string|max:255', 'type' => 'required|in:info,warning,success,danger', 'icon' => 'nullable|string|max:50', ]); // Provide default icon if not provided if (!isset($validated['icon']) || empty($validated['icon'])) { $validated['icon'] = 'bi-megaphone'; } $pengumuman->update($validated); return redirect()->route('admin.pengumuman.index')->with('success', 'Pengumuman berhasil diperbarui.'); } public function destroy($id) { $pengumuman = Announcement::findOrFail($id); $pengumuman->delete(); return redirect()->route('admin.pengumuman.index')->with('success', 'Pengumuman berhasil dihapus.'); } }