216 lines
8.6 KiB
PHP
216 lines
8.6 KiB
PHP
@extends('layouts.master')
|
|
|
|
@section('page-css')
|
|
@endsection
|
|
@section('content')
|
|
<div class="row" id="accordion">
|
|
<div class="col-12 mb-3">
|
|
<div class="d-flex flex-row justify-content-between">
|
|
<div class="d-flex align-items-center">
|
|
<div class="subheader mb-0">
|
|
<h1 class="subheader-title">
|
|
{{$title}}
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
<div class="align-items-end">
|
|
<div class="card">
|
|
<div class="card-body p-2">
|
|
<div class="d-flex flex-row gap-3 justify-content-center align-items-center">
|
|
<div class="p-2 bg-secondary rounded">
|
|
<i class="fal fa-home"></i>
|
|
</div>
|
|
<div>
|
|
<h5 class="fw-700 mb-1">{{session('name')}}</h5>
|
|
<p class="mb-0">NPSN: {{session('npsn')}}</p>
|
|
</div>
|
|
<div class="d-flex flex-column gap-1">
|
|
<span class="badge bg-primary-light text-primary">{{session('tingkat_sekolah')}}</span>
|
|
<span class="badge bg-success-light text-success">{{session('status_sekolah')}}</span>
|
|
<span class="badge bg-info-light text-info">Level {{levelAdiwiyata(session('npsn'))}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-12">
|
|
<div class="alert alert-warning mb-2">
|
|
<p class="mb-0"><i class="fal fa-info-circle"></i> Anda Belum Melakukan Finalisasi Proses Data Kriteria</p>
|
|
<p class="mb-0"><i class="fal fa-info-circle"></i> Klik <b class="text-danger">Progress Usulan</b> untuk melakukan Finalisasi Proses Data Kriteria</p>
|
|
</div>
|
|
</div>
|
|
@if ($errors->any())
|
|
<div class="col-md-12">
|
|
<div class="alert alert-danger mb-2">
|
|
<ul>
|
|
@foreach ($errors->all() as $error)
|
|
<li>{{ $error }}</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
|
|
@foreach($page as $k => $dataNumber)
|
|
<div class="col-lg-12 mb-2">
|
|
<div class="card mb-2">
|
|
<div class="card-header bg-primary-light py-1 px-0" id="heading{{$k}}">
|
|
<h5 class="mb-0">
|
|
<button class="btn btn-link" data-toggle="collapse" data-target="#collapse{{$k}}" aria-expanded="true" aria-controls="collapse{{$k}}">
|
|
{{$k+1}}
|
|
</button>
|
|
</h5>
|
|
</div>
|
|
<div id="collapse{{$k}}" class="collapse" aria-labelledby="heading{{$k}}" data-parent="#accordion">
|
|
<div class="card-body">
|
|
{!! formKriteria($dataNumber) !!}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
@endsection
|
|
@section('page-js')
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
$('input[type="checkbox"], input[type="radio"], input[type="text"], textarea').attr('disabled', true);
|
|
});
|
|
|
|
$('.page').on('click',function(e){
|
|
e.preventDefault();
|
|
let number = $(this).data('number');
|
|
let base_url = "{{url('/')}}";
|
|
// Tambahkan kelas active dan hapus dari yang lain
|
|
$('.page').removeClass('active');
|
|
$(this).addClass('active');
|
|
|
|
$.ajax({
|
|
url: base_url+'/getForm', // Ganti dengan URL API-mu
|
|
type: 'POST', // Bisa juga 'POST' kalau perlu
|
|
data: {
|
|
_token:'{{csrf_token()}}',
|
|
page: number
|
|
}, // Kirim number sebagai parameter
|
|
dataType: 'json', // Format respons JSON
|
|
beforeSend: function () {
|
|
$('#loading-spinner').show(); // Menampilkan spinner
|
|
$('.removeFormKriteria').remove();
|
|
},
|
|
success: function (response) {
|
|
console.log('Response:', response);
|
|
$('.changeForm').append(response.data);
|
|
$('.changeTitle').html(response.title);
|
|
|
|
$('.numberInput').on('input', function() {
|
|
this.value = this.value.replace(/[^0-9]/g, ''); // Hanya angka 0-9
|
|
});
|
|
},
|
|
error: function (xhr, status, error) {
|
|
console.error('AJAX Error:', status, error);
|
|
alert('Failed to fetch data!');
|
|
},
|
|
complete: function () {
|
|
$('#loading-spinner').hide(); // Sembunyikan spinner setelah request selesai
|
|
}
|
|
});
|
|
});
|
|
|
|
$('.back').on('click',function(e){
|
|
window.location.href = "{{url('usulan/adiwiyata/kriteria')}}";
|
|
});
|
|
|
|
$('.progress_usulan').on('click',function(e){
|
|
window.location.href = "{{url('usulan/adiwiyata/kriteria/progress/'.encode_id(session('sekolah_id')))}}";
|
|
});
|
|
|
|
$('#btnSave').on('click',function(e){
|
|
e.preventDefault();
|
|
let currentForm = $("#form").serializeArray();
|
|
console.log(currentForm);
|
|
|
|
let formData = {};
|
|
let allData = {};
|
|
let isValid = true; // Flag validasi
|
|
|
|
currentForm.forEach(field => {
|
|
let name = field.name.replace(/\[\]$/, ''); // Hapus "[]" di akhir nama input
|
|
|
|
if (allData[name]) {
|
|
if (!Array.isArray(allData[name])) {
|
|
allData[name] = [allData[name]];
|
|
}
|
|
allData[name].push(field.value);
|
|
} else {
|
|
allData[name] = field.value;
|
|
}
|
|
});
|
|
|
|
$('.is-required').each(function () {
|
|
let type = $(this).attr('type');
|
|
let name = $(this).attr('name');
|
|
let value = $(this).val()?.trim(); // Pastikan nilai di-trim untuk menghindari spasi kosong
|
|
|
|
if (type === 'radio' || type === 'checkbox') {
|
|
// Validasi radio: setidaknya satu opsi harus dipilih
|
|
if ($(`input[name="${name}"]:checked`).length === 0) {
|
|
isValid = false;
|
|
$(`input[name="${name}"]`).closest('.custom-control-input').addClass("is-invalid");
|
|
} else {
|
|
$(`input[name="${name}"]`).closest('.custom-control-input').removeClass("is-invalid");
|
|
}
|
|
} else {
|
|
// Validasi input teks atau lainnya
|
|
if (!value) {
|
|
isValid = false;
|
|
$(this).addClass("is-invalid");
|
|
} else {
|
|
$(this).removeClass("is-invalid");
|
|
}
|
|
}
|
|
});
|
|
|
|
// Jika validasi gagal, hentikan submit
|
|
if (!isValid) {
|
|
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
|
|
// alert(".");
|
|
return;
|
|
}
|
|
|
|
$.ajax({
|
|
url: "{{route($route.'.store')}}", // Ganti dengan URL API-mu
|
|
type: 'POST', // Bisa juga 'POST' kalau perlu
|
|
data: {
|
|
_token:'{{csrf_token()}}',
|
|
data: allData
|
|
}, // Kirim number sebagai parameter
|
|
dataType: 'json', // Format respons JSON
|
|
beforeSend: function () {
|
|
$('#loading-spinner').show(); // Menampilkan spinner
|
|
},
|
|
success: function (response) {
|
|
// console.log('Response:', response);
|
|
toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
|
|
|
|
|
|
$('.page').closest('.active').addClass('bg-success');
|
|
$('.page').closest('.active').addClass('text-white');
|
|
$('.page').removeClass('active');
|
|
// (checkPenilaian($hal) == true ? 'bg-success text-white' : '' )
|
|
},
|
|
error: function (xhr, status, error) {
|
|
// console.error('AJAX Error:', status, error);
|
|
// alert('Failed to fetch data!');
|
|
toastr.error("Maaf Terjadi Kesalahan Menyimpan Data", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
|
|
},
|
|
complete: function () {
|
|
$('#loading-spinner').hide(); // Sembunyikan spinner setelah request selesai
|
|
}
|
|
});
|
|
|
|
});
|
|
</script>
|
|
@endsection |