Aggiungere una finestra di conferma quando si usano le select multiple nella SQLFORM.grid di Web2py

La SQLFORM.grid di Web2py è una funzionalità davvero potente, permette di avere una pagina di gestione dei record di una tabella già pronta e funzionante.

Permette anche di aggiungere un check field ad ogni riga per poter eseguire, in una sola operazione, una operazione su tutti i record selezionati. Un caso tipico è la cancellazione.

Dato che la cancellazione non è una operazione reversibile però è bene chiedere una conferma aggiuntiva prima di eseguirla per essere sicuri delle intenzioni dell’utilizzatore.

Questa funzionalità purtroppo non è prevista.

Pubblico qui come ho realizzato io questa funzione visto che non ho trovato in rete soluzioni già realizzate.

Basta aggiungere nella pagina HTML il seguente script Javascript dopo la tabella dei record:

<script>
  $('.web2py_table_selectable_actions').on('click', function(e) {
    if (!confirm("Are you sure you want to delete this Items?")) {
      e.preventDefault();
      e.stopPropagation();
    }
  })
</script>

Semplicemente aggiungiamo un trigger alla pressione del pulsante che esegue l’operazione multipla sui record e chiediamo conferma.

Se l’utilizzatore non conferma l’operazione blocchiamo la propagazione dell’evento.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *