From 5967e7d6f316f9389f4354a964918ffa0cf736fa Mon Sep 17 00:00:00 2001 From: SyaharaniSalsabilla Date: Wed, 22 Jul 2026 13:28:58 +0700 Subject: [PATCH] solve pendidikan & pelatihan --- .../PendidikanPelatihanController.php | 29 ++++++++++++++----- .../pendidikan-pelatihan/index.blade.php | 17 ++++++++--- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/Web/Produktivitas/PendidikanPelatihanController.php b/app/Http/Controllers/Web/Produktivitas/PendidikanPelatihanController.php index 18daa53..61515d2 100644 --- a/app/Http/Controllers/Web/Produktivitas/PendidikanPelatihanController.php +++ b/app/Http/Controllers/Web/Produktivitas/PendidikanPelatihanController.php @@ -77,10 +77,11 @@ class PendidikanPelatihanController extends Controller ]); } - return back()->with('success', 'Riwayat pelatihan berhasil disimpan.'); + return $this->redirectBackToFragment($request, 'section-sertifikasi') + ->with('success', 'Riwayat pelatihan berhasil disimpan.'); } - public function destroyPelatihan(Petani $petani, SurveyPelatihan $surveyPelatihan) + public function destroyPelatihan(Request $request, Petani $petani, SurveyPelatihan $surveyPelatihan) { $this->authorizeAccess(); @@ -92,7 +93,8 @@ class PendidikanPelatihanController extends Controller $surveyPelatihan->delete(); - return back()->with('success', 'Riwayat pelatihan berhasil dihapus.'); + return $this->redirectBackToFragment($request, 'section-pelatihan') + ->with('success', 'Riwayat pelatihan berhasil dihapus.'); } public function storeSertifikasi(Request $request, Petani $petani) @@ -155,10 +157,11 @@ class PendidikanPelatihanController extends Controller ]); } - return back()->with('success', 'Sertifikasi berhasil disimpan.'); + return $this->redirectBackToFragment($request, 'section-sertifikasi') + ->with('success', 'Sertifikasi berhasil disimpan.'); } - public function destroySertifikasi(Petani $petani, SurveySertifikasi $surveySertifikasi) + public function destroySertifikasi(Request $request, Petani $petani, SurveySertifikasi $surveySertifikasi) { $this->authorizeAccess(); @@ -170,6 +173,18 @@ class PendidikanPelatihanController extends Controller $surveySertifikasi->delete(); - return back()->with('success', 'Sertifikasi berhasil dihapus.'); + return $this->redirectBackToFragment($request, 'section-sertifikasi') + ->with('success', 'Sertifikasi berhasil dihapus.'); } -} \ No newline at end of file + + private function redirectBackToFragment(Request $request, string $defaultFragment) + { + $fragment = $request->input('redirect_fragment', $defaultFragment); + + if (!is_string($fragment) || !preg_match('/^[A-Za-z0-9_-]+$/', $fragment)) { + $fragment = $defaultFragment; + } + + return redirect()->to(Str::before(url()->previous(), '#') . '#' . $fragment); + } +} diff --git a/resources/views/produktivitas/petani/pendidikan-pelatihan/index.blade.php b/resources/views/produktivitas/petani/pendidikan-pelatihan/index.blade.php index 6b2e4c5..a5e486d 100644 --- a/resources/views/produktivitas/petani/pendidikan-pelatihan/index.blade.php +++ b/resources/views/produktivitas/petani/pendidikan-pelatihan/index.blade.php @@ -29,6 +29,11 @@ white-space: nowrap !important; line-height: 1.5 !important; } + + #section-pelatihan, + #section-sertifikasi { + scroll-margin-top: 96px; + } @endpush @@ -51,7 +56,7 @@
@include('produktivitas.petani.header', ['petani' => $petani]) -
+
Riwayat Pelatihan @@ -83,6 +88,7 @@ class="delete-db-form"> @csrf @method('DELETE') +