Untitled
unknown
plain_text
a year ago
10 kB
11
Indexable
view
<meta name="csrf-token" content="{{ csrf_token() }}">
<div class="modal fade" id="modal-kompsoft" aria-labelledby="modalKompSoftLabel" aria-hidden="true" data-route="{{ route('edit-jobprofileeditkomhardsoft') }}" data-route2="{{ route('jobprofile-fetch-softkompetensi') }}" data-route3="{{ route('jobprofile-fetch-soft') }}" data-route4="{{ route('jobprofile-hapus-hardsoft') }}" data-route5="{{ route('jobprofile-fetch-rumpun') }}">
<div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="staticBackdropLabel">Edit Kompetensi Technical: Soft Skills</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="form-kompsoft" method="POST">
@csrf
<div class="row">
<div class="col-sm-6">
<ul id="listContainersoft" class="list-group"></ul>
<div style="margin-bottom: 16px;">
<div class="row">
<div class="col-md-9">
<p class="body-title">Pilih Kompetensi</p>
<select id="kompetensisoft" class="form-select select2" style="width: 100%;" data-placeholder="Kompetensi">
<option value="" selected>Silahkan dipilih</option>
</select>
</div>
</div>
</div>
<div id="selectedKompetensiSoft">
<!-- Selected kompetensi will be appended here -->
</div>
<span class="divider"></span>
</div>
<div class="col-sm-6">
<p class="body-title" style="text-align:center">Kamus Kompetensi</p>
<hr>
<div class="nama-kompetensi">
<p style="font-weight: 600; text-align:left">Nama Kompetensi:</p>
<p style="text-align:left" id="namakompetensisoft"></p>
</div>
<div class="desc-kompetensi">
<p style="font-weight: 600; text-align:left">Definisi:</p>
<p style="text-align:left" id="desckomphardsoft"></p>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer justify-content-between">
<div>
<button type="button" class="btn btn-batal" data-bs-dismiss="modal">Batal</button>
</div>
<div>
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.select2').select2();
$('#modal-kompsoft').on('shown.bs.modal', function() {
// Reset select element and clear descriptions when the modal opens
$('#kompetensisoft').val(null).trigger('change');
$('#desckomphardsoft').text('');
$('#namakompetensisoft').text('');
// Event listener for changes on the select element
$('#kompetensisoft').on('change', function() {
var selectedId = $(this).val();
var selectedText = $(this).find('option:selected').text();
if (selectedId) {
updateDescription(selectedId, selectedText);
}
});
});
function updateDescription(selectedValue, selectedText) {
var idIdentitas = $('input[name="ididentitasjbtn"]').val();
var data = {
ididentitasjbtn: idIdentitas,
id: selectedValue
};
var fetchUrl = $('#modal-kompsoft').data('route5'); // Assuming data-route3 is the correct route
$.ajax({
url: fetchUrl,
type: "GET",
data: data,
beforeSend: function() {
// Show loading indicator
$('#desckomphardsoft').text('Loading...');
},
success: function(response) {
console.log('AJAX Response:', response);
console.log('Request:', selectedText);
console.log('Request:', selectedValue);
var nameElement = $('#namakompetensisoft');
var descriptionElement = $('#desckomphardsoft');
if (response.result && Array.isArray(response.result.result)) {
nameElement.text(selectedText || '');
let descKompSoft = response.result.result.map((data) => {
if (data.namakomphardsoft == selectedText) return data.desckomphardsoft;
});
descriptionElement.text(descKompSoft[0] || '');
} else {
console.error("No matching item found for id:", selectedValue);
descriptionElement.text('No matching description found.');
}
},
error: function(xhr, status, error) {
console.error('Error fetching description:', error);
$('#desckomphardsoft').text('Error fetching description.');
}
});
}
});
</script>
js dropdown
$(document).ready(function() {
$('#modal-kompsoft').on('shown.bs.modal', function () {
// Initialize Select2
$('.select2').select2({
dropdownParent: $('#modal-kompsoft'),
placeholder: "Pilih",
allowClear: true,
});
var idIdentitas = $('input[name="ididentitasjbtn"]').val();
var routeUrl = $('#modal-kompsoft').data('route3');
var routeUrlkompetensi = $('#modal-kompsoft').data('route5');;
var labelText = '';
var selectedValue = $(this).val();
// AJAX Request
$.ajax({
url: routeUrl, // Ganti dengan URL endpoint API Anda
type: 'GET',
data: {
ididentitasjbtn: idIdentitas
},
success: function(response) {
var levels = response.result.result;
var ididentitasjbtn = ididentitasjbtn;
var listItems = levels.map(function(level)
{
return '<li class="list-group-item d-flex justify-content-between align-items-center">' +
level.namakomphardsoft +
'<button type="button" class="btn btn-danger btn-sm delete-item" data-ididentitasjbtn="' + level.ididentitasjbtn + '" data-idkompsoft="' + level.idkomphardsoft + '">' +
'<i class="fa-solid fa-trash"></i>' +
'</button>' +
'</li>';
}).join('');
$('#listContainersoft').html(listItems);
// Tambahkan event listener untuk tombol hapus
$('.delete-item').on('click', function() {
var ididentitasjbtn = $(this).data('ididentitasjbtn');
var idkompsoft = $(this).data('idkompsoft');
var listItem = $(this).closest('li');
var routeUrlhapus = $('#modal-kompsoft').data('route4');
// Tampilkan popup konfirmasi
if (confirm("Apakah Anda yakin ingin menghapus data ini?")) {
$.ajax({
url: routeUrlhapus,
headers: {
'X-CSRF-TOKEN': csrfToken,
'Content-Type': 'application/json'
},
type: 'POST',
data: JSON.stringify({
ididentitasjbtn: ididentitasjbtn,
idhardsoft: idkompsoft
}),
success: function(response) {
// Tangani respons sukses dari server
console.log(response);
listItem.remove(); // Hapus elemen <li> dari DOM
},
error: function(xhr, status, error) {
console.error(error); // Tangani kesalahan
}
});
}
});
},
error: function(xhr, status, error) {
console.error(error); // Tangani kesalahan
}
});
$.ajax({
url: routeUrlkompetensi,
type: "GET",
data: {
koderumpun: 0,
kodejeniskomp: 2,
ididentitasjbtn: idIdentitas,
},
success: function(response) {
var kompetensiDropdown = $('#kompetensisoft');
kompetensiDropdown.empty(); // Kosongkan dropdown sebelum menambahkan opsi baru
// Tambahkan opsi baru berdasarkan data yang diterima
$.each(response.result.result, function(index, item) {
kompetensiDropdown.append($('<option>', {
value: item.iddictkomphardsoft,
text: item.namakomphardsoft,
'data-iddictkomphardsoft': item.iddictkomphardsoft,
'data-koderumpun': 0, // Diganti dengan nilai yang sesuai jika diperlukan
'data-namakomphardsoft': item.namakomphardsoft
}));
});
},
error: function(xhr, status, error) {
// Handle error
console.error(xhr.responseText);
}
});
$('#hasilSelect').text(labelText);
});
Editor is loading...
Leave a Comment