@@ -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>×</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