ServiceDesk Plus: selezione multipla delle checkbox via Javascript

| |

So benissimo che quanto sto per riportarti non vale esclusivamente per ServiceDesk Plus; funzionerà in generale con qualsiasi pagina web ed elemento contenuto in essa a patto di aggiornare i riferimenti con quelli della pagina che ti interessa, ma è chiaro che il mio esempio prenderà in esame una sezione particolare del prodotto Manage Engine.

Sto parlando di quella dedicata al backup (/SetUpWizard.do?forwardTo=backupschedule). Mi sono ritrovato a combattere in poco tempo con un problema (diventato poi bug dopo le opportune analisi) che mi ha costretto a cancellare manualmente diverse cartelle backup che il software ha smesso di gestire in autonomia. Per questo motivo – una volta aggirato l’ostacolo come suggerito nel forum (in attesa del fix ufficiale) – ho potuto fare pulizia tramite interfaccia grafica. Essendo però diventate davvero tante le voci di backup “orfane” ho cercato un metodo più agile per selezionare rapidamente quelle checkbox relative ai backup da “cancellare” via pulsante dedicato in ServiceDesk Plus:

ServiceDesk Plus: selezione multipla delle checkbox via Javascript

La soluzione me l’ha offerta la console degli strumenti di sviluppo di Chrome (avrei potuto farlo anche con Firefox facilmente) che puoi richiamare anche tu premendo F12 su tastiera. Tramite un codice Javascript che ho chiesto di generare a ChatGPT (va bene che so cavarmela, ma vuoi mettere il risparmio di tempo ed errori stupidi da novizio?) sono riuscito a selezionare in un solo colpo più caselle contemporaneamente:

ServiceDesk Plus: selezione multipla delle checkbox via Javascript 1

Il codice che ho utilizzato è il seguente:

var checkboxes = document.querySelectorAll('input[name="allbackups"]');
for (var i = 7; i < checkboxes.length && i < 20; i++) {
  checkboxes[i].checked = true;
}

Questo piccolo snippet cerca all’interno del codice della pagina quei tag input che hanno come identificativo (nome) “albackups” (quindi le checkbox che dovevo selezionare, al nome ci sono arrivato semplicemente analizzando quelle caselle di controllo sempre tramite strumenti di sviluppo di Chrome) e – saltati i primi 7 incontrati (che sono i backup reali che voglio mantenere sul disco del server) – selezionerà i successivi 13 per arrivare a un totale di 20 analisi e mosse. A quel punto non dovrò fare altro che selezionare il pulsante di cancellazione dei backup che mi mette a disposizione l’interfaccia amministrativa di ServiceDesk Plus.

Perché 13?

In realtà è un numero come un altro. Intendo: avrei potuto selezionare tutte le caselle tolte le prime 7 facendo una banale modifica al codice Javascript:

var checkboxes = document.querySelectorAll('input[name="allbackups"]');
for (var i = 7; i < checkboxes.length; i++) {
  checkboxes[i].checked = true;
}

Ho però notato che nel momento in cui i backup da cancellare superano un certo numero, ServiceDesk Plus non ti permette più di manipolarli in un solo colpo (tutto sommato giusto perché potrebbe trattarsi di una mossa non voluta e lanciata per sbaglio), per questo motivo mi sono limitato a blocchi di 13 e – in un caso peggiore – 25 alla volta.

Se vuoi invece andarci con piedi di piombo puoi sempre selezionare solo un certo numero di caselle di controllo alla volta, un esempio pratico che tiene conto delle prime 7 da mantenere e le successive 5 da selezionare:

var checkboxes = document.querySelectorAll('input[name="allbackups"]');
for (var i = 7; i < checkboxes.length; i++) {
  if (i < 12) {
    checkboxes[i].checked = true;
  } else {
    break; // Esci dal ciclo dopo aver selezionato le prime 5 caselle di controllo (tolte le prime 7).
  }
}

Forse inutile dirlo: se il codice lanciato ha selezionato le caselle di controllo sbagliate e vuoi rimediare, ti basterà richiamare lo stesso identico codice precedentemente lanciato (freccia su sulla tastiera mentre sei nella console di Chrome) e sostituire il valore true (dopo checkboxes[i].checked) con false.

Io in caso di dubbi sono sempre qui, usa pure l’area commenti 😄✌

#KeepItSimple

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments