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
This commit is contained in:
parent
f1be04c906
commit
c2b32429ab
|
@ -3,6 +3,7 @@
|
||||||
namespace App\Http\Controllers\AdminBackend;
|
namespace App\Http\Controllers\AdminBackend;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Hasil;
|
||||||
use App\Models\Periode;
|
use App\Models\Periode;
|
||||||
use App\Models\PilihPeriode;
|
use App\Models\PilihPeriode;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
@ -75,7 +76,11 @@ public function update(Request $request, $id)
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$period = Periode::findOrFail($id);
|
$period = Periode::findOrFail($id);
|
||||||
$period->delete();
|
$result = Hasil::where('id_periode', $id)->first();
|
||||||
return redirect()->route('adminPeriod.index')->with('success', 'Periode tersebut telah dihapus');
|
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');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
@extends('admin_backend/layouts.template')
|
@extends('admin_backend/layouts.template')
|
||||||
@section('content')
|
@section('content')
|
||||||
|
@php
|
||||||
|
$thisYear = date("Y");
|
||||||
|
$lastYear = $thisYear-1;
|
||||||
|
$nextYear = $thisYear + 1;
|
||||||
|
@endphp
|
||||||
<main id="main" class="main">
|
<main id="main" class="main">
|
||||||
<div class="bg-white p-3">
|
<div class="bg-white p-3">
|
||||||
{{--! start header --}}
|
{{--! start header --}}
|
||||||
|
@ -52,18 +57,18 @@
|
||||||
<i class="bi bi-pencil"></i> Edit
|
<i class="bi bi-pencil"></i> Edit
|
||||||
</button>
|
</button>
|
||||||
<span class="p-1"></span>
|
<span class="p-1"></span>
|
||||||
<form action="{{ route('adminPeriod.destroy', ['admin_period'=>$period->id]) }}" class="d-inline delete-form" method="POST">
|
<form action="{{ route('adminPeriod.destroy', ['admin_period'=>$period->id]) }}" data-id="{{ $period->id }}" class="d-inline delete-form" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
@method('DELETE')
|
@method('DELETE')
|
||||||
<button class="btn btn-outline-danger btn-sm mt-1 mt-sm-0"><i class="bi bi-trash"></i>Hapus</button>
|
<button id="hapus" class="btn btn-outline-danger btn-sm mt-1 mt-sm-0"><i class="bi bi-trash"></i>Hapus</button>
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<form action="{{ route('adminSelectPeriod') }}" method="POST" class="edit-periode">
|
<form action="{{ route('adminSelectPeriod') }}" data-id="{{ $period->id }}" method="POST" class="edit-periode">
|
||||||
@csrf
|
@csrf
|
||||||
<input type="text" class="form-control d-none" name="id_periode" value="{{ $period->id }}">
|
<input type="text" class="form-control d-none" name="id_periode" value="{{ $period->id }}">
|
||||||
@if ($period->id==$selectPeriod->id_periode)
|
@if ($period->id==$selectPeriod->id_periode)
|
||||||
<button type="submit" class="btn btn-primary btn-sm" disabled><i class="bi bi-check-all bi-lg me-1"></i> Pilih</button>
|
<button type="button" class="btn btn-primary btn-sm"><i class="bi bi-check-all bi-lg me-1"></i> Pilih</button>
|
||||||
@else
|
@else
|
||||||
<button type="submit" class="btn btn-light btn-sm border"><i class="bi bi-check-lg me-1"></i> Pilih</button>
|
<button type="submit" class="btn btn-light btn-sm border"><i class="bi bi-check-lg me-1"></i> Pilih</button>
|
||||||
@endif
|
@endif
|
||||||
|
@ -95,18 +100,22 @@
|
||||||
<option value="2">2. Genap</option>
|
<option value="2">2. Genap</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@php
|
|
||||||
$thisYear = date("Y"); // Mengambil tahun saat ini
|
|
||||||
$nextYear = $thisYear + 1;
|
|
||||||
@endphp
|
|
||||||
<div class="form-group mb-4">
|
<div class="form-group mb-4">
|
||||||
<label class="col-form-label" for="create-tahun_awal">Tahun awal:</label>
|
<label class="col-form-label" for="create-tahun_awal">Tahun awal:</label>
|
||||||
<input type="number" class="form-control" id="create-tahun_awal" name="tahun_awal" min="2000" max="2050" value="{{ $thisYear }}">
|
<select class="form-select" name="tahun_awal" id="create-tahun_awal">
|
||||||
|
<option value="{{ $lastYear }}">{{ $lastYear }}</option>
|
||||||
|
<option value="{{ $thisYear }}" selected>{{ $thisYear }}</option>
|
||||||
|
</select>
|
||||||
|
{{-- <input type="number" class="form-control" id="create-tahun_awal" name="tahun_awal" min="2000" max="2050" value="{{ $thisYear }}"> --}}
|
||||||
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-4">
|
<div class="form-group mb-4">
|
||||||
<label class="col-form-label" for="create-tahun_akhir">Tahun akhir:</label>
|
<label class="col-form-label" for="create-tahun_akhir">Tahun akhir:</label>
|
||||||
<input type="number" class="form-control" id="create-tahun_akhir" name="tahun_akhir" min="2000" max="2050" value="{{ $nextYear }}">
|
<select class="form-select" id="create-tahun_akhir" name="tahun_akhir">
|
||||||
|
<option value="{{ $thisYear }}">{{ $thisYear }}</option>
|
||||||
|
<option value="{{ $nextYear }}" selected>{{ $nextYear }}</option>
|
||||||
|
</select>
|
||||||
|
{{-- <input type="number" class="form-control" id="create-tahun_akhir" name="tahun_akhir" min="2000" max="2050" value="{{ $nextYear }}"> --}}
|
||||||
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -139,17 +148,21 @@
|
||||||
<option value="2">2. Genap</option>
|
<option value="2">2. Genap</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@php
|
|
||||||
$thisYear = date("Y"); // Mengambil tahun saat ini
|
|
||||||
$nextYear = $thisYear + 1;
|
|
||||||
@endphp
|
|
||||||
<div class="form-group mb-4">
|
<div class="form-group mb-4">
|
||||||
<label class="col-form-label" for="edit-tahun_awal">Tahun awal:</label>
|
<label class="col-form-label" for="edit-tahun_awal">Tahun awal:</label>
|
||||||
|
{{-- <select class="form-select" id="edit-tahun_awal" name="tahun_awal">
|
||||||
|
<option value="{{ $lastYear }}">{{ $lastYear }}</option>
|
||||||
|
<option value="{{ $thisYear }}" selected>{{ $thisYear }}</option>
|
||||||
|
</select> --}}
|
||||||
<input type="number" class="form-control" id="edit-tahun_awal" name="tahun_awal" min="2000" max="2050">
|
<input type="number" class="form-control" id="edit-tahun_awal" name="tahun_awal" min="2000" max="2050">
|
||||||
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-4">
|
<div class="form-group mb-4">
|
||||||
<label class="col-form-label" for="edit-tahun_akhir">Tahun akhir:</label>
|
<label class="col-form-label" for="edit-tahun_akhir">Tahun akhir:</label>
|
||||||
|
{{-- <select class="form-select" id="edit-tahun_akhir" name="tahun_akhir">
|
||||||
|
<option value="{{ $thisYear }}">{{ $thisYear }}</option>
|
||||||
|
<option value="{{ $nextYear }}" selected>{{ $nextYear }}</option>
|
||||||
|
</select> --}}
|
||||||
<input type="number" class="form-control" id="edit-tahun_akhir" name="tahun_akhir" min="2000" max="2050" >
|
<input type="number" class="form-control" id="edit-tahun_akhir" name="tahun_akhir" min="2000" max="2050" >
|
||||||
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
<div class="invalid-feedback"><i class="bi bi-exclamation-circle-fill"></i> Tahun tidak valid</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -236,33 +249,55 @@
|
||||||
|
|
||||||
// hapus
|
// hapus
|
||||||
$('.delete-form').click(function(event){
|
$('.delete-form').click(function(event){
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
if($(this).data('id')=={{ $selectPeriod->id_periode }}){
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: 'Yakin untuk dihapus?',
|
icon: "error",
|
||||||
text: "Kamu tidak akan bisa mengembalikan ini!",
|
title: "Oops...",
|
||||||
icon: 'warning',
|
text: "Periode yang terpilih tidak bisa dihapus!",
|
||||||
showCancelButton: true,
|
confirmButtonColor: '#0d6efd',
|
||||||
confirmButtonColor: '#dc3545',
|
confirmButtonText: 'Tutup',
|
||||||
cancelButtonColor: '#6c757d',
|
});
|
||||||
confirmButtonText: 'Ya, hapus ini!',
|
}
|
||||||
cancelButtonText: 'Batalkan',
|
else{
|
||||||
reverseButtons: true
|
Swal.fire({
|
||||||
}).then((result) => {
|
title: 'Yakin untuk dihapus?',
|
||||||
if (result.isConfirmed) {
|
text: "Kamu tidak akan bisa mengembalikan ini!",
|
||||||
$(this).submit();
|
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
|
// ubah periode terpilih
|
||||||
$('.edit-periode').click(function(event){
|
$('.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({
|
Swal.fire({
|
||||||
title: 'Ganti Periode?',
|
title: 'Ganti Periode?',
|
||||||
text: "Periode baru akan dibuka, ini akan membuat user bisa mengisi kuesioner baru!",
|
text: "Periode baru akan dibuka, ini akan membuat user bisa mengisi kuesioner baru!",
|
||||||
icon: 'warning',
|
icon: 'warning',
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonColor: '#ffc107',
|
confirmButtonColor: '#0d6efd',
|
||||||
cancelButtonColor: '#6c757d',
|
cancelButtonColor: '#6c757d',
|
||||||
confirmButtonText: 'Ya, ubah periode!',
|
confirmButtonText: 'Ya, ubah periode!',
|
||||||
cancelButtonText: 'Batalkan',
|
cancelButtonText: 'Batalkan',
|
||||||
|
@ -271,10 +306,31 @@
|
||||||
if (result.isConfirmed) {
|
if (result.isConfirmed) {
|
||||||
$(this).submit();
|
$(this).submit();
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
});
|
}
|
||||||
|
});
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#sidebar-period").removeClass("collapsed");
|
$("#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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
Loading…
Reference in New Issue