user(); if ($user->role == 'admin') { // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id $laporan = Pelaporan::with('tindakan','user')->get(); } elseif ($user->role == 'user') { // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut $laporan = Pelaporan::where('user_id', $user->id)->get(); // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna $count = $laporan->count(); } $apresiasi = Apresiasi::query(); if ($request->has('search')) { $apresiasi->where('judul', 'LIKE', '%' . $request->search . '%'); } $apresiasi = $apresiasi->get(); return view('users.apresiasi.index', compact('laporan', 'apresiasi')); } public function userCreate() { $laporan = Pelaporan::with('tindakan','user')->get(); return view('users.apresiasi.create',compact('laporan')); } public function userStore(Request $request) { $request->validate([ 'judul' => 'required', 'deskripsi' => 'required', 'lokasi' => 'required', 'tanggal' => 'required', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,pdf', ],[ 'judul.required' => 'Judul Wajib Diisi', 'deskripsi.required' => 'Deskripsi Wajib Diisi', 'lokasi.required' => 'Lokasi Wajib Diisi', 'tanggal.required' => 'Tanggal Wajib Diisi', 'foto.nullable' => 'Foto Tidak Boleh Kosong', 'foto.image' => 'Foto Harus Berupa Image ', 'foto.mimes' => 'Foto Harus JPEG, PNG, JPG, GIF, PDF', ]); $apresiasi = new Apresiasi(); $apresiasi->judul = $request->input('judul'); $apresiasi->deskripsi = $request->input('deskripsi'); $apresiasi->tanggal = $request->input('tanggal'); $apresiasi->lokasi = $request->input('lokasi'); $apresiasi->user_id = Auth::id(); // Set the authenticated user's ID if ($request->hasFile('foto')) { $fotos = time() . '.' . $request->foto->extension(); $request->foto->move(public_path('foto'), $fotos); $apresiasi->foto = $fotos; } $apresiasi->save(); return redirect()->route('apresiasi.userIndex')->with('success', 'Pelaporan Apresiasi berhasil disimpan.'); } public function userEdit($id) { $laporan = Pelaporan::with('tindakan','user')->get(); $apresiasi = Apresiasi::find($id); return view('users.apresiasi.update', compact('apresiasi', 'laporan')); } public function userUpdate(Request $request, $id) { $request->validate([ 'judul' => 'required', 'deskripsi' => 'required', 'lokasi' => 'required', 'tanggal' => 'required', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,pdf', ],[ 'judul.required' => 'Judul Wajib Diisi', 'deskripsi.required' => 'Deskripsi Wajib Diisi', 'lokasi.required' => 'Lokasi Wajib Diisi', 'tanggal.required' => 'Tanggal Wajib Diisi', 'foto.nullable' => 'Foto Tidak Boleh Kosong', 'foto.image' => 'Foto Harus Berupa Image ', 'foto.mimes' => 'Foto Harus JPEG, PNG, JPG, GIF, PDF', ]); $apresiasi = Apresiasi::find($id); $apresiasi->update($request->all()); if ($request->hasFile('foto')) { $fotoPath = $request->file('foto')->store('uploads'); $apresiasi->foto = $fotoPath; $apresiasi->save(); } return redirect()->route('apresiasi.userIndex')->with('success', 'Pelaporan Apresiasi berhasil diperbarui.'); } public function userDestroy($id) { $apresiasi = Apresiasi::find($id); $apresiasi->delete(); return redirect()->route('apresiasi.userIndex')->with('success', 'Pelaporan Apresiasi berhasil dihapus.'); } public function userShow(Request $request, $id){ $laporan = Pelaporan::with('tindakan','user')->get(); $apresiasi = Apresiasi::find($id); return view('users.apresiasi.show', compact( 'apresiasi','laporan')); } public function adminIndex(Request $request) { $user = $request->user(); if ($user->role == 'admin') { // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id $laporan = Pelaporan::with('tindakan','user')->get(); } elseif ($user->role == 'user') { // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut $laporan = Pelaporan::where('user_id', $user->id)->get(); // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna $count = $laporan->count(); } $apresiasi = Apresiasi::query(); if ($request->has('search')) { $apresiasi->where('judul', 'LIKE', '%' . $request->search . '%'); } $apresiasi = $apresiasi->get(); return view('admin.apresiasi.index', compact('laporan', 'apresiasi')); } public function adminShow(Request $request, $id){ $laporan = Pelaporan::with('tindakan','user')->get(); $apresiasi = Apresiasi::find($id); return view('admin.apresiasi.show', compact( 'apresiasi','laporan')); } public function adminDestroy($id) { $apresiasi = Apresiasi::find($id); $apresiasi->delete(); return redirect()->route('apresiasi.adminIndex')->with('success', 'Pelaporan Apresiasi berhasil dihapus.'); } }