From c2b32429abb9704131826fe98983c7c486c3bd9a Mon Sep 17 00:00:00 2001 From: DimazzP Date: Wed, 8 Nov 2023 15:29:13 +0700 Subject: [PATCH] Update Periode Admin - Memberikan batasan pada penambahan periode semester awal dan akhir - Memberikan kondisi agar periode yang sudah memiliki kuesioner tidak bisa dihapus - Memperbaiki error hapus periode ketika periode tersebut dipilih --- .../AdminBackend/AdminPeriodController.php | 9 +- .../admin_backend/admin_period.blade.php | 124 +++++++++++++----- 2 files changed, 97 insertions(+), 36 deletions(-) diff --git a/app/Http/Controllers/AdminBackend/AdminPeriodController.php b/app/Http/Controllers/AdminBackend/AdminPeriodController.php index f409ea9..54f3cd5 100644 --- a/app/Http/Controllers/AdminBackend/AdminPeriodController.php +++ b/app/Http/Controllers/AdminBackend/AdminPeriodController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\AdminBackend; use App\Http\Controllers\Controller; +use App\Models\Hasil; use App\Models\Periode; use App\Models\PilihPeriode; use Illuminate\Http\Request; @@ -75,7 +76,11 @@ public function update(Request $request, $id) public function destroy($id) { $period = Periode::findOrFail($id); - $period->delete(); - return redirect()->route('adminPeriod.index')->with('success', 'Periode tersebut telah dihapus'); + $result = Hasil::where('id_periode', $id)->first(); + if (empty($result)) { + $period->delete(); + return redirect()->route('adminPeriod.index')->with('success', 'Periode tersebut telah dihapus'); + } + return redirect()->route('adminPeriod.index')->with('error', 'Gagal, periode tersebut memiliki hasil kuesioner'); } } diff --git a/resources/views/admin_backend/admin_period.blade.php b/resources/views/admin_backend/admin_period.blade.php index e89a26f..27bea97 100644 --- a/resources/views/admin_backend/admin_period.blade.php +++ b/resources/views/admin_backend/admin_period.blade.php @@ -1,5 +1,10 @@ @extends('admin_backend/layouts.template') @section('content') + @php + $thisYear = date("Y"); + $lastYear = $thisYear-1; + $nextYear = $thisYear + 1; + @endphp
{{--! start header --}} @@ -52,18 +57,18 @@ Edit -
+ @csrf @method('DELETE') - +
-
+ @csrf @if ($period->id==$selectPeriod->id_periode) - + @else @endif @@ -95,18 +100,22 @@
- @php - $thisYear = date("Y"); // Mengambil tahun saat ini - $nextYear = $thisYear + 1; - @endphp
- + + {{-- --}}
Tahun tidak valid
- + + {{-- --}}
Tahun tidak valid
@@ -139,17 +148,21 @@ - @php - $thisYear = date("Y"); // Mengambil tahun saat ini - $nextYear = $thisYear + 1; - @endphp
+ {{-- --}}
Tahun tidak valid
+ {{-- --}}
Tahun tidak valid
@@ -236,33 +249,55 @@ // hapus $('.delete-form').click(function(event){ - event.preventDefault(); + event.preventDefault(); + if($(this).data('id')=={{ $selectPeriod->id_periode }}){ Swal.fire({ - title: 'Yakin untuk dihapus?', - text: "Kamu tidak akan bisa mengembalikan ini!", - icon: 'warning', - showCancelButton: true, - confirmButtonColor: '#dc3545', - cancelButtonColor: '#6c757d', - confirmButtonText: 'Ya, hapus ini!', - cancelButtonText: 'Batalkan', - reverseButtons: true - }).then((result) => { - if (result.isConfirmed) { - $(this).submit(); - } - }) - }); + icon: "error", + title: "Oops...", + text: "Periode yang terpilih tidak bisa dihapus!", + confirmButtonColor: '#0d6efd', + confirmButtonText: 'Tutup', + }); + } + else{ + Swal.fire({ + title: 'Yakin untuk dihapus?', + text: "Kamu tidak akan bisa mengembalikan ini!", + icon: 'warning', + showCancelButton: true, + confirmButtonColor: '#dc3545', + cancelButtonColor: '#6c757d', + confirmButtonText: 'Ya, hapus ini!', + cancelButtonText: 'Batalkan', + reverseButtons: true + }).then((result) => { + if (result.isConfirmed) { + $(this).submit(); + } + }) + } + }); + // ubah periode terpilih $('.edit-periode').click(function(event){ - event.preventDefault(); + event.preventDefault(); + event.preventDefault(); + if($(this).data('id')=={{ $selectPeriod->id_periode }}){ + Swal.fire({ + icon: "error", + title: "Oops...", + text: "Periode tersebut sudah dipilih!", + confirmButtonColor: '#0d6efd', + confirmButtonText: 'Tutup', + }); + }else{ Swal.fire({ title: 'Ganti Periode?', text: "Periode baru akan dibuka, ini akan membuat user bisa mengisi kuesioner baru!", icon: 'warning', showCancelButton: true, - confirmButtonColor: '#ffc107', + confirmButtonColor: '#0d6efd', cancelButtonColor: '#6c757d', confirmButtonText: 'Ya, ubah periode!', cancelButtonText: 'Batalkan', @@ -271,10 +306,31 @@ if (result.isConfirmed) { $(this).submit(); } - }) - }); + }); + } + }); $(document).ready(function() { $("#sidebar-period").removeClass("collapsed"); + firstYear($('#create-tahun_awal'), $('#create-tahun_akhir')); + secondYear($('#create-tahun_akhir'), $('#create-tahun_awal')); + firstYear($('#edit-tahun_awal'), $('#edit-tahun_akhir')); + secondYear($('#edit-tahun_akhir'), $('#edit-tahun_awal')); }); + + // event select year + function firstYear($selectTahunAwal, $selectTahunAkhir) { + $selectTahunAwal.on('change', function() { + const selectedValue = $selectTahunAwal.val(); + $selectTahunAkhir.val(parseInt(selectedValue)+1); + }); + } + + function secondYear($selectTahunAwal, $selectTahunAkhir) { + $selectTahunAwal.on('change', function() { + const selectedValue = $selectTahunAwal.val(); + $selectTahunAkhir.val(parseInt(selectedValue)-1); + }); + } + @endsection \ No newline at end of file