2026-01-26 11:09:39 +07:00

103 lines
3.1 KiB
JavaScript

$(document).ready(function() {
selectOptionPegawai(0)
selectOptionUnitKerja(0)
});
function selectOptionPegawai(colCount) {
let selectPegawai = $(`#pegawai_id_${colCount}`);
// inisialisasi select2 untuk Unit Kerja
selectPegawai.select2({
placeholder: '-- Pilih Pegawai --',
allowClear:true,
width: '100%',
dropdownParent: selectPegawai.parent(),
ajax:{
url : '/select-pegawai',
dataType: 'json',
delay: 250,
data: function(params){
return { q: params.term }
},
processResults: function(data){
return {
results : data?.data.map(item => ({
id: item.id,
text: item.nama,
}))
}
},
cache: true,
},
minimumInputLength: 1,
});
}
function selectOptionUnitKerja(colCount) {
let selectUnit = $(`#unit_akses_${colCount}`);
selectUnit.select2({
placeholder: '-- Pilih Unit Kerja --',
allowClear: true,
width: '100%',
dropdownParent: selectUnit.parent(),
ajax:{
url : '/select-unit-kerja',
dataType: 'json',
delay: 250,
data: function(params){
return { q: params.term }
},
processResults: function(data){
return {
results : data?.data.map(item => ({
id: item.id,
text: item.name,
}))
}
},
cache: true,
},
minimumInputLength: 1,
});
}
let colCount = 1;
function addForm(){
let col = $("#col_add_master_persetujuan")
let html = '';
html += `
<div class="row mt-3" id="col-${colCount}">
<hr/>
<div class="col-md-4 mb-2">
<label>Nama</label>
<select class="form-control" name="data[${colCount}][pegawai_id]" id="pegawai_id_${colCount}" required>
</select>
<small class="text-muted">Cari nama pegawai.</small>
</div>
<div class="col-md-7 mb-2" id="unit_akses_wrapper_${colCount}">
<label>Unit Kerja</label>
<select class="form-control" name="data[${colCount}][unit_akses][]" id="unit_akses_${colCount}" multiple>
</select>
<small class="text-muted">Bisa pilih lebih dari satu.</small>
</div>
<div class="col-md-1">
<button type="button" class="btn btn-danger mt-3 me-2" onclick="removeCol(${colCount})"><i class="fa-solid fa-trash"></i></button>
</div>
</div>
`
col.append(html)
selectOptionPegawai(colCount)
selectOptionUnitKerja(colCount)
colCount++;
}
function removeCol(count){
$(`#col-${count}`).remove()
}