661 lines
32 KiB
PHP
661 lines
32 KiB
PHP
<?php $__env->startSection('title', 'New Adaptation'); ?>
|
|
|
|
<?php $__env->startSection('content'); ?>
|
|
<?php
|
|
$user = Auth::user();
|
|
#scope = $user->getScope();
|
|
?>
|
|
|
|
<div class="card shadow-sm">
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
<h3 class="mb-0 font-weight-bold" style="color: #278074; font-size: 20px;">ADAPTASI</h3>
|
|
</div>
|
|
</div>
|
|
|
|
<br/><br/>
|
|
<form onsubmit="return false;">
|
|
<?php echo csrf_field(); ?>
|
|
|
|
<div class="ml-1 mt-4 d-flex justify-content-between align-items-center">
|
|
<p style="font-size: 15px; font-weight: 400; line-height: 100%; letter-spacing: 0%;">Formulir Jenis Adaptasi</p>
|
|
</div>
|
|
|
|
<div id="accordion" class="accordion">
|
|
<!-- Section 1 -->
|
|
<div class="card" style="border-bottom: 1px solid #C3C3C3;">
|
|
<div class="card-header" id="heading1">
|
|
<h5 class="mb-0">
|
|
<button class="btn d-flex justify-content-between w-100 align-items-center form-title-accordion" data-toggle="collapse" data-target="#collapse1" aria-expanded="true">
|
|
INFORMASI UMUM
|
|
<span class="arrow mr-2"><i class="ti ti-angle-right"></i></span>
|
|
</button>
|
|
</h5>
|
|
</div>
|
|
|
|
<div id="collapse1" class="accordion-collapse collapse show" data-parent="#accordion">
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<label class="required-label bold" for="nama_kegiatan">
|
|
Nama Kegiatan
|
|
</label>
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
name="nama_kegiatan"
|
|
placeholder="Masukkan Nama Kegiatan"
|
|
value="<?php echo e(isset($sessionData['nama_kegiatan']) ? $sessionData['nama_kegiatan'] : ''); ?>"
|
|
>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="required-label bold" for="tahun_kegiatan">
|
|
Tahun Kegiatan
|
|
</label>
|
|
<select class="form-control select-button" name="tahun_kegiatan" required>
|
|
<?php $__currentLoopData = $years; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $year): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
|
<option value="<?php echo e($year); ?>" <?php echo e((isset($sessionData['tahun_kegiatan']) && $sessionData['tahun_kegiatan'] == $year) ? 'selected' : ($year == $currentYear ? 'selected' : '')); ?>>
|
|
<?php echo e($year); ?>
|
|
|
|
</option>
|
|
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="required-label bold" for="sektor">
|
|
Sektor
|
|
</label>
|
|
<select class="form-control select-button select2" name="sektor" id="sektor-dropdown" required data-placeholder="Pilih Sektor">
|
|
<option value="">Pilih Sektor</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="required-label bold" for="sub_sektor">
|
|
Sub-Sektor
|
|
</label>
|
|
<select class="form-control select-button select2" name="sub_sektor" id="subsektor-dropdown" required data-placeholder="Pilih Sub-Sektor">
|
|
<option value="">Pilih Sub-Sektor</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="required-label bold" for="kategori_aksi">
|
|
Kategori Aksi
|
|
</label>
|
|
<select class="form-control select-button select2" name="kategori_aksi" id="kategoriaksi-dropdown" required data-placeholder="Pilih Kategori Aksi">
|
|
<option value="">Pilih Kategori Aksi</option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- <div class="form-group mt-4">
|
|
<label class="label-title bold" for="jenis_aksi">
|
|
Jenis Aksi
|
|
</label>
|
|
<select class="form-control select-button select2" name="jenis_aksi" id="jenisaksi-dropdown" data-placeholder="Pilih Jenis Aksi">
|
|
<option value="">Pilih Jenis Aksi</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title bold" for="aksi">
|
|
Aksi
|
|
</label>
|
|
<select class="form-control select-button select2" name="aksi" id="aksi-dropdown" data-placeholder="Pilih Jenis Aksi">
|
|
<option value="">Pilih Aksi</option>
|
|
</select>
|
|
</div> -->
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title bold" for="pelaksana_kegiatan">
|
|
Pelaksana Kegiatan
|
|
</label>
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
name="pelaksana_kegiatan"
|
|
placeholder="Masukkan Pelaksana Kegiatan"
|
|
value="<?php echo e(isset($sessionData['pelaksana_kegiatan']) ? $sessionData['pelaksana_kegiatan'] : ''); ?>"
|
|
>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title bold" for="lokasi_kegiatan">
|
|
Lokasi Pelaksana Kegiatan Aksi
|
|
</label>
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
name="lokasi_kegiatan"
|
|
placeholder="Masukkan Lokasi Kegiatan Aksi"
|
|
value="<?php echo e(isset($sessionData['lokasi_kegiatan']) ? $sessionData['lokasi_kegiatan'] : ''); ?>"
|
|
>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title bold" for="waktu_kegiatan">
|
|
Waktu Pelaksana Kegiatan Aksi
|
|
</label>
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
name="waktu_kegiatan"
|
|
placeholder="Masukkan Waktu Kegiatan Aksi"
|
|
value="<?php echo e(isset($sessionData['waktu_kegiatan']) ? $sessionData['waktu_kegiatan'] : ''); ?>"
|
|
>
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title bold" for="dokumen">
|
|
Dokumen / Kebijakan Terkait
|
|
</label>
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
name="dokumen"
|
|
placeholder="Masukkan Waktu Kegiatan Aksi"
|
|
value="<?php echo e(isset($sessionData['dokumen']) ? $sessionData['dokumen'] : ''); ?>"
|
|
>
|
|
</div>
|
|
|
|
<div class="mt-4 mb-4 text-right">
|
|
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse2">
|
|
Selanjutnya
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Section 2 -->
|
|
<div class="card" style="border-bottom: 1px solid #C3C3C3;">
|
|
<div class="card-header" id="heading2">
|
|
<h5 class="mb-0">
|
|
<button class="btn d-flex justify-content-between w-100 align-items-center collapsed form-title-accordion" data-toggle="collapse" data-target="#collapse2">
|
|
INFORMASI ALOKASI/REALISASI ANGGARAN
|
|
<span class="arrow mr-2"><i class="ti ti-angle-right"></i></span>
|
|
</button>
|
|
</h5>
|
|
</div>
|
|
|
|
<div id="collapse2" class="accordion-collapse collapse" data-parent="#accordion">
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p class="text-muted" style="font-size: 14px;">1.2.1 INFORMASI ALOKASI ANGGARAN</p>
|
|
<p class="text-muted mt-4" style="font-size: 12px;">Silakan tambahkan informasi alokasi anggaran kegiatan dalam rupiah.</p>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="alokasi_apbn">
|
|
APBN
|
|
</label>
|
|
<input type="text" class="form-control" name="alokasi_apbn" id="alokasi_apbn" value="<?php echo e(isset($sessionData['alokasi_apbn']) ? $sessionData['alokasi_apbn'] : ''); ?>">
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="alokasi_apbd">
|
|
APBD
|
|
</label>
|
|
<input type="text" class="form-control" name="alokasi_apbd" id="alokasi_apbd" value="<?php echo e(isset($sessionData['alokasi_apbd']) ? $sessionData['alokasi_apbd'] : ''); ?>">
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="alokasi_swasta">
|
|
SWASTA
|
|
</label>
|
|
<input type="text" class="form-control" name="alokasi_swasta" id="alokasi_swasta" value="<?php echo e(isset($sessionData['alokasi_swasta']) ? $sessionData['alokasi_swasta'] : ''); ?>">
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="alokasi_sumber_dana_lain">
|
|
LAIN-LAIN
|
|
</label>
|
|
<input type="text" class="form-control" name="alokasi_sumber_dana_lain" id="alokasi_sumber_dana_lain" value="<?php echo e(isset($sessionData['alokasi_sumber_dana_lain']) ? $sessionData['alokasi_sumber_dana_lain'] : ''); ?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<p class="text-muted" style="font-size: 14px;">1.2.2 INFORMASI REALISASI ANGGARAN</p>
|
|
<p class="text-muted mt-4" style="font-size: 12px;">Silakan tambahkan informasi realisasi anggaran kegiatan dalam rupiah.</p>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="realisasi_apbn">
|
|
APBN
|
|
</label>
|
|
<input type="text" class="form-control" name="realisasi_apbn" id="realisasi_apbn" value="<?php echo e(isset($sessionData['realisasi_apbn']) ? $sessionData['realisasi_apbn'] : ''); ?>">
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="realisasi_apbd">
|
|
APBD
|
|
</label>
|
|
<input type="text" class="form-control" name="realisasi_apbd" id="realisasi_apbd" value="<?php echo e(isset($sessionData['realisasi_apbd']) ? $sessionData['realisasi_apbd'] : ''); ?>">
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="realisasi_swasta">
|
|
SWASTA
|
|
</label>
|
|
<input type="text" class="form-control" name="realisasi_swasta" id="realisasi_swasta" value="<?php echo e(isset($sessionData['realisasi_swasta']) ? $sessionData['realisasi_swasta'] : ''); ?>">
|
|
</div>
|
|
|
|
<div class="form-group mt-4">
|
|
<label class="label-title" for="realisasi_sumber_dana_lain">
|
|
LAIN-LAIN
|
|
</label>
|
|
<input type="text" class="form-control" name="realisasi_sumber_dana_lain" id="realisasi_sumber_dana_lain" value="<?php echo e(isset($sessionData['realisasi_sumber_dana_lain']) ? $sessionData['realisasi_sumber_dana_lain'] : ''); ?>">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-4 mb-4 text-right">
|
|
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse3">
|
|
Selanjutnya
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Section 3 -->
|
|
<div class="card" style="border-bottom: 1px solid #C3C3C3;">
|
|
<div class="card-header" id="heading3">
|
|
<h5 class="mb-0">
|
|
<button class="btn d-flex justify-content-between w-100 align-items-center collapsed form-title-accordion" data-toggle="collapse" data-target="#collapse3">
|
|
KEGIATAN
|
|
<span class="arrow mr-2"><i class="ti ti-angle-right"></i></span>
|
|
</button>
|
|
</h5>
|
|
</div>
|
|
|
|
<div id="collapse3" class="collapse" data-parent="#accordion">
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<label class="label-title" for="detail_kegiatan">
|
|
Detail Kegiatan
|
|
</label>
|
|
<textarea
|
|
class="form-control"
|
|
name="detail_kegiatan"
|
|
id="detail_kegiatan"
|
|
rows="3"
|
|
placeholder="Isi detail kegiatan di sini"
|
|
><?php echo e(isset($sessionData['detail_kegiatan']) ? $sessionData['detail_kegiatan'] : ''); ?></textarea>
|
|
</div>
|
|
|
|
<div class="mt-4 mb-4 text-right">
|
|
<button type="submit" id="final-submit" class="btn btn-submit px-4 py-2">
|
|
Simpan
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<?php $__env->stopSection(); ?>
|
|
<?php $__env->startPush('styles'); ?>
|
|
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
<link href="https://cdn.jsdelivr.net/npm/@ttskch/select2-bootstrap4-theme@1.5.2/dist/select2-bootstrap4.min.css" rel="stylesheet" />
|
|
<?php $__env->stopPush(); ?>
|
|
|
|
<?php $__env->startPush('scripts'); ?>
|
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
<script>
|
|
// -------- REMOVE RESET --------
|
|
if (window.location.search.includes('reset=1')) {
|
|
const url = new URL(window.location.href);
|
|
url.searchParams.delete('reset');
|
|
window.history.replaceState({}, document.title, url.pathname + url.search);
|
|
}
|
|
|
|
// ------- ALOKASI AND REALISASI --------
|
|
function formatCurrency(val) {
|
|
if (!val) return '';
|
|
// Tambahkan titik sebagai pemisah ribuan, contoh: 1234567 => 1.234.567
|
|
return val.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
|
}
|
|
|
|
function parseCurrencyToFloat(val) {
|
|
// Hapus titik (ribuan) dan ganti koma desimal jadi titik untuk parseFloat
|
|
if (!val) return 0;
|
|
const normalized = val.replace(/\./g, '').replace(',', '.');
|
|
return parseFloat(normalized) || 0;
|
|
}
|
|
|
|
function validateRealisasi() {
|
|
const targetRaw = $('#target').val();
|
|
const realisasiRaw = $('#realisasi').val();
|
|
|
|
const target = parseCurrencyToFloat(targetRaw);
|
|
const realisasi = parseCurrencyToFloat(realisasiRaw);
|
|
|
|
const $formGroup = $('#realisasi').closest('.form-group');
|
|
let $warning = $formGroup.find('.help-block.realisasi');
|
|
|
|
if (realisasi > target) {
|
|
if ($warning.length === 0) {
|
|
$formGroup.append(
|
|
'<p class="help-block mt-2 realisasi text-danger"><i class="ti ti-alert"></i> Nilai realisasi lebih besar dari target.</p>'
|
|
);
|
|
}
|
|
} else {
|
|
$warning.remove();
|
|
}
|
|
}
|
|
|
|
function isDigitKey(e) {
|
|
let charCode = e.which || e.keyCode;
|
|
if (charCode < 48 || charCode > 57) {
|
|
e.preventDefault();
|
|
return false;
|
|
}
|
|
|
|
const $input = $(e.target);
|
|
let val = $input.val().replace(/\D/g, '');
|
|
if (val.length >= 12) {
|
|
e.preventDefault();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function formatInput($input, callValidate = false) {
|
|
let val = $input.val().replace(/\D/g, '');
|
|
if (val.length > 12) {
|
|
val = val.slice(0, 12); // potong digit ke 13 dst
|
|
}
|
|
if (val === '') {
|
|
$input.val('');
|
|
return;
|
|
}
|
|
$input.val(formatCurrency(val));
|
|
if (callValidate) validateRealisasi();
|
|
}
|
|
|
|
function formatInputOnBlur($input) {
|
|
let val = $input.val().replace(/\D/g, '');
|
|
if (val.length > 12) {
|
|
val = val.slice(0, 12);
|
|
}
|
|
if (val === '') {
|
|
$input.val('');
|
|
return;
|
|
}
|
|
$input.val(formatCurrency(val) + ',00');
|
|
}
|
|
|
|
function attachNumberFormatting(selector, callValidate = false) {
|
|
const $el = $(selector);
|
|
|
|
$el.on('keypress', isDigitKey);
|
|
|
|
$el.on('keyup', function () {
|
|
formatInput($(this), callValidate);
|
|
});
|
|
|
|
$el.on('blur', function () {
|
|
formatInputOnBlur($(this));
|
|
});
|
|
}
|
|
|
|
// -------- DROPDOWN LOADING FUNCTIONS WITH PROMISE --------
|
|
function decodeHtml(html) {
|
|
const txt = document.createElement('textarea');
|
|
txt.innerHTML = html;
|
|
return txt.value;
|
|
}
|
|
function loadSektor(selectedValue = null) {
|
|
return $.get('/adaptasi/form-adaptasi-sector-dropdown', {})
|
|
.then(data => {
|
|
const $dropdown = $('#sektor-dropdown').empty();
|
|
$dropdown.append('<option value="">Pilih Sektor</option>')
|
|
data.forEach(item => {
|
|
const selected = item === selectedValue ? 'selected' : '';
|
|
$dropdown.append(`<option value="${item}" ${selected}>${item}</option>`);
|
|
});
|
|
})
|
|
.catch(() => alert('Gagal memuat data Sektor'));
|
|
}
|
|
|
|
function loadSubSektor(sector, selectedValue = null) {
|
|
return $.get('/adaptasi/form-adaptasi-subsector-dropdown', { sector })
|
|
.then(data => {
|
|
const $dropdown = $('#subsektor-dropdown').empty();
|
|
$dropdown.append('<option value="">Pilih Sub-Sektor</option>');
|
|
data.forEach(item => {
|
|
const selected = decodeHtml(item) === decodeHtml(selectedValue) ? 'selected' : '';
|
|
$dropdown.append(`<option value="${decodeHtml(item)}" ${selected}>${decodeHtml(item)}</option>`);
|
|
});
|
|
})
|
|
.catch(() => alert('Gagal memuat data Sub-Sektor'));
|
|
}
|
|
|
|
function loadKategoriAksi(sector, subSector, selectedValue = null) {
|
|
return $.get('/adaptasi/form-adaptasi-kategoriaksi-dropdown', { sub_sector: subSector, sector: sector })
|
|
.then(data => {
|
|
const $dropdown = $('#kategoriaksi-dropdown').empty();
|
|
$dropdown.append('<option value="">Pilih Kategori Aksi</option>');
|
|
data.forEach(item => {
|
|
const selected = item.kategori_aksi === selectedValue ? 'selected' : '';
|
|
$dropdown.append(
|
|
`<option value="${item.kategori_aksi}" data-id="${item.id}" ${selected}>${item.kategori_aksi}</option>`
|
|
);
|
|
});
|
|
})
|
|
.catch(() => alert('gagal memuat data Kategori Aksi'));
|
|
}
|
|
|
|
|
|
// function loadJenisAksi(sector, subSector, kategori, selectedValue = null) {
|
|
// return $.get('/adaptasi/form-adaptasi-jenisaksi-dropdown', { sub_sector: subSector, sector: sector, kategori: kategori })
|
|
// .then(data => {
|
|
// const $dropdown = $('#jenisaksi-dropdown').empty();
|
|
// $dropdown.append('<option value="">Pilih Jenis Aksi</option>');
|
|
// data.forEach(item => {
|
|
// const selected = item === selectedValue ? 'selected' : '';
|
|
// $dropdown.append(`<option value="${item}" ${selected}>${item}</option>`);
|
|
// });
|
|
// })
|
|
// .catch(() => alert('gagal memuat data Jenis Aksi'));
|
|
// }
|
|
|
|
// function loadAksi(sector, subSector, kategori, jenis, selectedValue = null) {
|
|
// return $.get('/adaptasi/form-adaptasi-aksi-dropdown', { sub_sector: subSector, sector: sector, kategori: kategori, jenis: jenis })
|
|
// .then(data => {
|
|
// const $dropdown = $('#aksi-dropdown').empty();
|
|
// $dropdown.append('<option value="">Pilih Aksi</option>');
|
|
// data.forEach(item => {
|
|
// const selected = item.aksi === selectedValue ? 'selected' : '';
|
|
// $dropdown.append(`<option value="${item.aksi}" data-id="${item.id}" ${selected}>${item.aksi}</option>`);
|
|
// });
|
|
// })
|
|
// .catch(() => alert('gagal memuat data Aksi'));
|
|
// }
|
|
|
|
$(document).ready(async function() {
|
|
let adaptationId;
|
|
attachNumberFormatting('#alokasi_apbn');
|
|
attachNumberFormatting('#alokasi_apbd');
|
|
attachNumberFormatting('#alokasi_swasta');
|
|
attachNumberFormatting('#alokasi_sumber_dana_lain');
|
|
attachNumberFormatting('#realisasi_apbn');
|
|
attachNumberFormatting('#realisasi_apbd');
|
|
attachNumberFormatting('#realisasi_swasta');
|
|
attachNumberFormatting('#realisasi_sumber_dana_lain');
|
|
|
|
// Initialize Select2 with Bootstrap 4 theme
|
|
$('.select2').select2({
|
|
width: '100%',
|
|
theme: 'bootstrap4',
|
|
placeholder: function() {
|
|
return $(this).data('placeholder');
|
|
}
|
|
});
|
|
|
|
// Prefill dropdowns if session data available
|
|
const sessionSektor = "<?php echo e($sessionData['sektor'] ?? ''); ?>";
|
|
const sessionSubSektor = "<?php echo e($sessionData['sub_sektor'] ?? ''); ?>";
|
|
const sessionKategori = "<?php echo e($sessionData['kategori_aksi'] ?? ''); ?>";
|
|
const sessionJenis = "<?php echo e($sessionData['jenis_aksi'] ?? ''); ?>";
|
|
const sessionAksi = "<?php echo e($sessionData['aksi'] ?? ''); ?>";
|
|
const adaptation_id = "<?php echo e($sessionData['adaptation_id'] ?? ''); ?>";
|
|
adaptationId = adaptation_id;
|
|
|
|
await loadSektor(sessionSektor);
|
|
if(sessionSektor) {
|
|
$('#sektor-dropdown').val(sessionSektor).trigger('change');
|
|
await loadSubSektor(sessionSektor, sessionSubSektor);
|
|
if(sessionSubSektor) {
|
|
$('#subsektor-dropdown').val(sessionSubSektor).trigger('change');
|
|
await loadKategoriAksi(sessionSektor, sessionSubSektor, sessionKategori);
|
|
if(sessionKategori) {
|
|
$('#kategoriaksi-dropdown').val(sessionKategori).trigger('change');
|
|
// await loadJenisAksi(sessionSektor, sessionSubSektor, sessionKategori, sessionJenis);
|
|
// if(sessionJenis) {
|
|
// $('#jenisaksi-dropdown').val(sessionJenis).trigger('change');
|
|
// await loadAksi(sessionSektor, sessionSubSektor, sessionKategori, sessionJenis, sessionAksi);
|
|
// }
|
|
}
|
|
}
|
|
}
|
|
|
|
// Event Handlers for dropdown cascading
|
|
let sector = sessionSektor;
|
|
let subSector = sessionSubSektor;
|
|
let kategori = sessionKategori;
|
|
let jenis = sessionJenis;
|
|
let aksi = sessionAksi;
|
|
$('#sektor-dropdown').on('change', async function() {
|
|
sector = $(this).val();
|
|
if(sector) {
|
|
await loadSubSektor(sector);
|
|
} else {
|
|
$('#subsektor-dropdown').empty().append('<option value="">Pilih Sub-Sektor</option>');
|
|
}
|
|
});
|
|
|
|
$('#subsektor-dropdown').on('change', async function() {
|
|
subSector = $(this).val();
|
|
if(subSector){
|
|
await loadKategoriAksi(sector, subSector);
|
|
} else {
|
|
$('#kategoriaksi-dropdown').empty().append('<option value="">Pilih Kategori Aksi</option>');
|
|
}
|
|
});
|
|
|
|
$('#kategoriaksi-dropdown').on('change', async function() {
|
|
kategori = $(this).val();
|
|
if(kategori) {
|
|
let selectedOption = $(this).find(':selected');
|
|
// await loadJenisAksi(sector, subSector, kategori);
|
|
let adaptation_id = selectedOption.data('id');
|
|
adaptationId = adaptation_id;
|
|
// } else {
|
|
// $('#jenisaksi-dropdown').empty().append('<option value="">Pilih Jenis Aksi</option>');
|
|
}
|
|
});
|
|
|
|
// $('#jenisaksi-dropdown').on('change', async function() {
|
|
// jenis = $(this).val();
|
|
// if(jenis) {
|
|
// await loadAksi(sector, subSector, kategori, jenis);
|
|
// } else {
|
|
// $('#aksi-dropdown').empty().append('<option value="">Pilih Aksi</option>');
|
|
// }
|
|
// });
|
|
|
|
// $('#aksi-dropdown').on('change', async function() {
|
|
// let selectedOption = $(this).find(':selected');
|
|
// let adaptation_id = selectedOption.data('id');
|
|
// adaptationId = adaptation_id;
|
|
// });
|
|
|
|
// Form validation & accordion auto-open on invalid input
|
|
$('form').on('submit', function(e) {
|
|
if(!this.checkValidity()){
|
|
e.preventDefault();
|
|
const firstInvalid = this.querySelector(':invalid');
|
|
if(firstInvalid){
|
|
const collapseParent = firstInvalid.closest('.collapse');
|
|
if(collapseParent && !collapseParent.classList.contains('show')){
|
|
new bootstrap.Collapse(collapseParent, { toggle: true });
|
|
}
|
|
firstInvalid.focus();
|
|
}
|
|
}
|
|
});
|
|
|
|
// Handle partial save and accordion navigation
|
|
$('.btn-submit[data-target="#collapse2"]').on('click', function(e) {
|
|
e.preventDefault();
|
|
let formData = $('#collapse1').find('input, select, textarea').serialize();
|
|
formData += '&adaptation_id=' + encodeURIComponent(adaptationId);
|
|
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
|
console.log(formData)
|
|
$.post("<?php echo e(route('adaptasi-form.store-part1')); ?>", formData)
|
|
.done(response => {
|
|
if(response.success) {
|
|
$('#collapse1').one('hidden.bs.collapse', () => {
|
|
$('#collapse2').collapse('show');
|
|
});
|
|
$('#collapse1').collapse('hide');
|
|
} else {
|
|
alert(response.message || 'Gagal Menyimpan data bagian Informasi Umum');
|
|
}
|
|
})
|
|
.fail(xhr => {
|
|
console.log(xhr);
|
|
let msg = 'Terjadi kesalahan saat menyimpan data Informasi Umum';
|
|
if (xhr.responseJSON && xhr.responseJSON.message) {
|
|
msg = xhr.responseJSON.message;
|
|
}
|
|
alert(msg);
|
|
});
|
|
});
|
|
|
|
$('.btn-submit[data-target="#collapse3"]').click(function(e) {
|
|
e.preventDefault();
|
|
|
|
let formData = $('#collapse2').find('input, select, textarea').serialize();
|
|
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
|
|
|
$.post("<?php echo e(route('adaptasi-form.store-part2')); ?>", formData)
|
|
.done(function(response) {
|
|
if(response.success) {
|
|
$('#collapse2').one('hidden.bs.collapse', () => {
|
|
$('#collapse3').collapse('show');
|
|
});
|
|
$('#collapse2').collapse('hide');
|
|
} else {
|
|
alert(response.message || 'Gagal menyimpan data bagian Informasi Alokasi/Realisasi Anggaran');
|
|
}
|
|
})
|
|
.fail(function() {
|
|
alert('Terjadi kesalahan saat menyimpan Data Informasi Alokasi/Realisasi Anggaran');
|
|
});
|
|
});
|
|
|
|
$(document).on('click', '#final-submit', function() {
|
|
const formData = $('form').serialize();
|
|
|
|
$.ajax({
|
|
url: "<?php echo e(route('adaptasi-form.store-final')); ?>",
|
|
method: 'POST',
|
|
data: formData,
|
|
success: function(response) {
|
|
if(response.success) {
|
|
window.location.href = response.redirect;
|
|
} else {
|
|
console.log(response);
|
|
alert(response.message || 'Gagal menyimpan data.');
|
|
}
|
|
},
|
|
error: function(xhr) {
|
|
console.error(xhr);
|
|
alert('Terjadi kesalahan saat menyimpan data.');
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
<?php $__env->stopPush(); ?>
|
|
<?php echo $__env->make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /var/www/sigd/resources/views/form/index-adaptasi.blade.php ENDPATH**/ ?>
|