Eliminazione di una consultazione

Avvisi e discussioni su bug, soluzioni e migliorie del software

Moderatori: roby, Moderators

Rispondi
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Eliminazione di una consultazione

Messaggio da margottid »

Ho provato ad eliminare una consultazione (non solo voti e votanti, ma anche candidati e struttura), e vedo che non vengono ripulite le tabelle ELE_CIRCOSCRIZIONE e ELE_SEDE.
Visto che sto eliminando anche la struttura, in queste due tabelle dovrebbero essere eliminati i record per i quali il campo ID_CONS è uguale alla consultazione autorizzata che sto eliminando.
Non è un problema se i dati rimangono (tanto non saranno mai utilizzati, visto che anche in caso di una successiva ri-autorizzazione verrà assegnato un ID_CONS incrementale e sicuramente diverso da quello appena eliminato), però per la pulizia del DB sarebbe meglio ripulire anche queste due tabelle.


Ho anche notato che, con Internet Explorer, non riesco ad eliminare DEFINITIVAMENTE la consultazione, a causa di un errore di Javascript che appare quando vado nella sezione "Consultazione" (del menu del Superuser).
Ho riprodotto l'errore su un semplice file HTML, il codice è questo:

Codice: Seleziona tutto

<html>
<body>
<form name="prova">
<input type=text name="update" value="1"><br>
<input type=text name="do" value="2"><br>
</form>
<script Language="Javascript">
document.prova.update.value="Uno"
document.prova.do.value="Due"
</script>
</body>
</html>
Suppongo che il problema sia dovuto al fatto che viene utilizzato il termine "do" come nome di un campo del form.
Probabilmente "do" è una parola riservata, e l'interprete Javascript di Internet Explorer non digerisce il fatto che venga utilizzata come nome di un campo.
L'errore si verifica anche usando altre parole riservate (ad esempio, "if"), mentre cambiando il nome del campo con un nome "di fantasia" l'errore sparisce.


Infine ricordo di aver letto un post in cui si lamentava il fatto che, con Internet Explorer, il pulsante "Modifica" non si trasforma in "Elimina" quando si mette il segno di spunta su "Abilita la cancellazione".
Il problema è dovuto al fatto che la funzione del_cons() viene richiamata sull'evento "onChange" della casella, e il valore della casella - per Internet Explorer - cambia solo quando questa perde il focus (ad esempio, se si preme TAB per passare al campo successivo, oppure si clicca col mouse in un qualsiasi altro punto della pagina).
Sostituendo, nella riga 135 di "ele_consultazioni.php", "onchange" con "onClick", la funzione del_cons() verrà richiamata ogni volta che si clicca sulla casella, e quindi il valore del pulsante risulterà sempre aggiornato anche quando si usa Internet Explorer.
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Re: Eliminazione di una consultazione

Messaggio da roby »

la funzione è stata gia' modificata, scarica la rev 88 e riprovala (ci sono anche soluzioni per altri problemi segnalati). La mancata cancellazione dei dati nelle due tabelle invece mi era sfuggita, grazie per la segnalazione. Dopo aver aggiornato puoi scaricarti il ile modificato per pulire anche le due tabelle che hai segnalato (appena posso lo metto in una nuova rev) da questo indirizzo http://www.eleonline.it/moduli/admin/mo ... azioni.zip
Roberto
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Re: Eliminazione di una consultazione

Messaggio da margottid »

La prova l'ho fatta con il programma già aggiornato all'ultima versione (la rev. 90), e l'errore Javascript persiste.
Nel TRAC vedo che "ele_consultazioni.php" - che è il file che dà il problema - è ancora alla rev. 87, e presenta i due problemi che ho segnalato:
- l'assegnazione di un valore ad un campo chiamato "do", che Internet Explorer non digerisce);
- l'uso di "onChange" invece di "onClick", che obbliga gli utilizzatori di Internet Explorer a togliere il focus dalla checkbox affinché venga eseguita la funzione del_cons.

Per il primo problema si può sostituire l'istruzione document.prova.do.value con document.getElementById('do').value (però bisogna assegnare al campo "do" anche un ID, in modo che il Javascript riesca a trovarlo).

Per il secondo problema - che si riscontra solo dopo aver risolto il primo - è sufficiente cambiare onChange con onClick (come ho indicato nel post precedente).


Riguardo alla pulizia delle due tabelle, invece, confermo che il file che mi hai linkato funziona perfettamente.
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Re: Eliminazione di una consultazione

Messaggio da roby »

scusa ma avevo capito male, io parlavo del file ele_associazioni che permette di cancellare la consultazione del singolo comune mentre tu parlavi di ele_consulotazione che cancella completamente la consultazione (solo se nessun comune la sta utilizzando).
Ho fatto le modifiche anche qui e l'ho postata sul trac. La rev è la 91.
Roberto
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Re: Eliminazione di una consultazione

Messaggio da margottid »

Perfetto, ora funziona anche con Internet Explorer! :-)
Rispondi