various fixing modal

This commit is contained in:
2025-10-07 20:56:57 +02:00
parent 15b6f38e8b
commit b51936f784
8 changed files with 2939 additions and 21 deletions
+22 -11
View File
@@ -713,6 +713,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
</div>
</form>
<div id="partsModalContainer"></div>
<div id="annotationsModalContainer"></div>
<?php include 'photos_functions.php'; ?>
</div>
</div>
@@ -728,7 +729,8 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4.6.13/dist/flatpickr.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script src="photos.js"></script>
<script src="parts.js"></script>
<script src="annotationsModal.js"></script>
<script src="partsTable.js"></script>
<script src="tracking.js"></script>
<script src="export_to_lims.js"></script>
<script>
@@ -1191,16 +1193,13 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
const description = $("table tbody tr").eq(rowIndex).find("td").eq(2).text() || "Sconosciuto";
$.ajax({
url: 'modal_parts.php',
url: 'modal_partsTable.php',
method: 'GET',
data: {
iddatadb: iddatadb
},
success: function(response) {
// Inserisci il modale nel container
$('#partsModalContainer').html(response);
// Verifica che il modale esista
const modalElement = document.getElementById('partsModal');
if (!modalElement) {
console.error('Elemento modale non trovato: #partsModal');
@@ -1212,11 +1211,9 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
return;
}
// Imposta i dati del modale
$("#trfHeader").text(`${iddatadb || idquotations} - ${importRef} - ${description}`);
$("#partsModal").data("iddatadb", iddatadb).data("idquotations", idquotations);
// Inizializza il modale con l'API nativa di Bootstrap
let modal = bootstrap.Modal.getInstance(modalElement);
if (!modal) {
modal = new bootstrap.Modal(modalElement, {
@@ -1227,9 +1224,10 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
}
modal.show();
// Carica i dati delle parti e delle foto
if (typeof loadParts === 'function') {
loadParts(iddatadb, idquotations);
if (typeof window.loadParts === 'function') {
window.loadParts(iddatadb, idquotations);
} else {
console.error('Funzione loadParts non definita. Verifica partsTable.js.');
}
},
error: function(xhr, status, error) {
@@ -1243,7 +1241,6 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
});
});
// Pulizia completa alla chiusura del modale
$(document).on('hidden.bs.modal', '#partsModal', function() {
const modalElement = document.getElementById('partsModal');
if (modalElement) {
@@ -1257,6 +1254,20 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
$('body').removeClass('modal-open').css('padding-right', '');
$('.overlay.toggle-icon').css('display', 'none');
});
$(document).on('hidden.bs.modal', '#annotationsModal', function() {
const modalElement = document.getElementById('annotationsModal');
if (modalElement) {
const modal = bootstrap.Modal.getInstance(modalElement);
if (modal) {
modal.dispose();
}
}
$('#annotationsModalContainer').empty();
$('.modal-backdrop').remove();
$('body').removeClass('modal-open').css('padding-right', '');
$('.overlay.toggle-icon').css('display', 'none');
});
});
</script>
<!-- Modale di conferma per l'esportazione -->