Skip to content

Commit 87d5eda

Browse files
committed
fix: tasto risolvi tutti i conflitti
1 parent 97b2091 commit 87d5eda

1 file changed

Lines changed: 13 additions & 106 deletions

File tree

modules/aggiornamenti/controlli.php

Lines changed: 13 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -256,19 +256,11 @@ function initcard(controllo, success, records) {
256256
257257
// Aggiungi pulsanti azione globale se il controllo lo supporta e ci sono record
258258
if (!success && records.length > 0 && hasGlobalActions(controllo)) {
259-
// Pulsante specifico per IntegritaFile che esegue entrambe le operazioni
260-
if (controllo["class"] === "Modules\\\\Aggiornamenti\\\\Controlli\\\\IntegritaFile") {
261-
card += `
262-
<button type="button" class="btn btn-success btn-sm" data-controllo-id="` + controllo["id"] + `" data-controllo-class="` + controllo["class"] + `" data-action="remove_all_both" onclick="eseguiAzioneGlobaleConParametri(this)">
263-
<i class="fa fa-check-circle"></i> '.tr('Risolvi tutti i conflitti').'
264-
</button>`;
265-
} else {
266-
// Pulsante generico per altri controlli
267-
card += `
268-
<button type="button" class="btn btn-success btn-sm" data-controllo-id="` + controllo["id"] + `" data-controllo-class="` + controllo["class"] + `" onclick="eseguiAzioneGlobale(this)">
269-
<i class="fa fa-check-circle"></i> '.tr('Risolvi tutti i conflitti').'
270-
</button>`;
271-
}
259+
// Usa la stessa funzione per tutti i controlli, incluso IntegritaFile
260+
card += `
261+
<button type="button" class="btn btn-success btn-sm" data-controllo-id="` + controllo["id"] + `" data-controllo-class="` + controllo["class"] + `" onclick="eseguiAzioneGlobale(this)">
262+
<i class="fa fa-check-circle"></i> '.tr('Risolvi tutti i conflitti').'
263+
</button>`;
272264
}
273265
274266
card += `
@@ -528,107 +520,22 @@ function eseguiAzioneGlobale(buttonElement) {
528520
// Disabilita il pulsante di annulla durante l\'operazione
529521
$("#modal-conferma-risoluzione .btn-default").prop("disabled", true);
530522
523+
// Determina i parametri da passare in base al tipo di controllo
524+
let params = {};
525+
if (controlloClass === "Modules\\\\Aggiornamenti\\\\Controlli\\\\IntegritaFile") {
526+
params = {action: "remove_all_both"};
527+
}
528+
531529
eseguiRisoluzioneGlobale(button, controlloId, controlloClass, function() {
532-
// Callback di successo: chiudi modal
533-
$("#modal-conferma-risoluzione").modal("hide");
534-
}, function() {
535-
// Callback di errore: ripristina pulsanti
530+
// Callback di successo: ripristina pulsante di conferma e chiudi modal
536531
buttonRestore(confirmButton, restoreConfirm);
537532
$("#modal-conferma-risoluzione .btn-default").prop("disabled", false);
538-
});
539-
540-
return false;
541-
});
542-
}
543-
544-
/**
545-
* Esegue un azione globale con parametri specifici
546-
*/
547-
function eseguiAzioneGlobaleConParametri(button) {
548-
let controlloId = $(button).data("controllo-id");
549-
let controlloClass = $(button).data("controllo-class");
550-
let action = $(button).data("action");
551-
552-
// Usa la stessa logica della funzione esistente ma con parametri
553-
let messaggio = getMessaggioConferma(controlloClass);
554-
555-
// Genera la lista delle operazioni
556-
let operazioniHtml = "";
557-
messaggio.operazioni.forEach(function(operazione) {
558-
operazioniHtml += `<li>${operazione}</li>`;
559-
});
560-
561-
// Crea modal di conferma con lo stile del gestionale
562-
let modalHtml = `
563-
<div class="modal fade" id="modal-conferma-risoluzione" tabindex="-1" role="dialog">
564-
<div class="modal-dialog modal-lg" role="document">
565-
<div class="modal-content">
566-
<div class="modal-header">
567-
<h4 class="modal-title">
568-
<i class="fa fa-exclamation-triangle text-warning"></i>
569-
${messaggio.titolo}
570-
</h4>
571-
<button type="button" class="close" data-dismiss="modal">
572-
<span>&times;</span>
573-
</button>
574-
</div>
575-
<div class="modal-body">
576-
<p>${messaggio.descrizione}</p>
577-
<div class="alert alert-warning">
578-
<i class="fa fa-info-circle"></i>
579-
'.tr('Questa operazione:').'
580-
<ul class="mb-0 mt-2">
581-
${operazioniHtml}
582-
</ul>
583-
</div>
584-
</div>
585-
<div class="modal-footer">
586-
<button type="button" class="btn btn-default" data-dismiss="modal" style="float: left;">
587-
<i class="fa fa-times"></i> '.tr('Annulla').'
588-
</button>
589-
<button type="button" class="btn btn-warning" id="conferma-risoluzione" style="float: right;">
590-
<i class="fa fa-check"></i> '.tr('Procedi').'
591-
</button>
592-
<div style="clear: both;"></div>
593-
</div>
594-
</div>
595-
</div>
596-
</div>
597-
`;
598-
599-
// Rimuovi modal esistente se presente
600-
$("#modal-conferma-risoluzione").remove();
601-
602-
// Aggiungi modal al DOM
603-
$("body").append(modalHtml);
604-
605-
// Mostra modal con configurazione per evitare chiusura accidentale
606-
$("#modal-conferma-risoluzione").modal({
607-
backdrop: "static",
608-
keyboard: false,
609-
show: true
610-
});
611-
612-
// Gestisci click su conferma
613-
$("#conferma-risoluzione").on("click", function(e) {
614-
e.preventDefault();
615-
e.stopPropagation();
616-
617-
let confirmButton = $(this);
618-
let restoreConfirm = buttonLoading(confirmButton);
619-
620-
// Disabilita il pulsante di annulla durante l operazione
621-
$("#modal-conferma-risoluzione .btn-default").prop("disabled", true);
622-
623-
eseguiRisoluzioneGlobale(button, controlloId, controlloClass, function() {
624-
// Callback di successo: chiudi modal
625533
$("#modal-conferma-risoluzione").modal("hide");
626-
loadControllo(controlloId);
627534
}, function() {
628535
// Callback di errore: ripristina pulsanti
629536
buttonRestore(confirmButton, restoreConfirm);
630537
$("#modal-conferma-risoluzione .btn-default").prop("disabled", false);
631-
}, {action: action});
538+
}, params);
632539
633540
return false;
634541
});

0 commit comments

Comments
 (0)