Progetto:Qualità/ProgettoRestart
Bozza e primi punti
modificaNel giugno 2012 è stata evidenziata la crescente complessità dei nostri tool e delle funzioni aggiuntive che ci stanno progressivamente allontanando dagli standard degli altri progetti, ed è stata proposta una radicale revisione dell'argomento.
Gli script "specifici di it.wikisource" sono in sostanza di due tipi:
- quelli che gestiscono, con elevato grado di automazione e di trasparenza per l'utente, alcuni contenuti nascosti del codice pagina (aree dati, attivo ed indispensabile; progetto Phe, sperimentale e di fatto abbandonato)
- quelli che gestiscono interfacce a form per alcune pagine speciali (pagine Indice, pagine Autore) o aggiungono backlinks da nsPagina a ns0;
- quelli che gestiscono tool vari di visualizzazione (pochi), di purge (alcuni), di editing (moltissimi) che si suddividono in tre gruppi distinti, e in parte contradditori:
- Strumenti per la rilettura, menu a sinistra; verosimilmente indipendenti dalle skin; attivabili via Preferenze, in blocco;
- Pulsanti aggiuntivi del toolbox (specifici per la skin vector); attivabili via Preferenze, singolarmente;
- "bottoniera" (verosimilmente indipendenti dalle skin), attivabili via Preferenze + modifiche della pagina vector.js personale
La roadmap potrebbe essere:
- identificazione degli script essenziali per i punti 1 e 2 e loro riscrittura utilizzando sistematicamente e rigorosamente jQuery e ResourceLoader; tutti gli script dovrebbero essere caricati o chiamati da Common.js in modo da essere automaticamente attivi per tutti gli utenti e con tutte le skin; devono essere disponibili su/da Common.js anche i piccoli script di servizio, frequentemente utilizzati, come find_stringa(), produciLista(), leggiBox(), scriviBox() ecc, opportunamente rivisti;
- riorganizzazione degli script di cui al punto 3, unificandoli in "bottoniera" ed eliminando gli script ridondanti.
Aggiungerei:
- per ogni funzione, almeno per le principali, quelle che tutti prima o poi dovremo usare, aggiungere una descrizione/documentazione. In pratica, prima della funzione fare un commento di questo tipo:
/* NOME DELLA FUNZIONE Piccola descrizione di ciò che fa e di ciò che restituisce. - primo parametro (string): descrizione di cosa dovrebbe essere questo parametro con alla fine del nome della funzione il tipo di parametro tra parentesi il tipo di parametro (string, boolean, number, etc) - secondo paramentro (date): ... */ function miafunzione(param1,param2){ ...
Script essenziali
modificaGli script essenziali sono quelli che permettono il funzionamento di molti altri, se non tutti, gli script di Wikisource
- produciLista() - presente in Common.js, manca una documentazione
- scriviBox() - in Common.js (subito sotto a "Funzioni varie di Alex brollo, con la complicità di FiloSottile e Candalua, per gestire la semantizzazione")
- leggiBox() - vedi scriviBox()
- find_stringa() - presente in Common.js, buona documentazione, standardizzare forse e aggiungere qualche esempio.
Azione n. 1
modifica- Permettere l'attivazione di tutti i bottoni aggiuntivi della toolbox dalla bottoniera
- E' necessario spostare tutti gli script che vengono chiamati dai pulsanti aggiuntivi mediante attivazione di un gadget in MediaWiki:Gadget-Tools.js e predisporre i codici newButton() per visualizzare i pulsanti in bottoniera.
- Fatto; in MediaWiki:Gadget-Tools.js sono stati caricati tutti gli script necessari (ad eccezione di MediaWiki:Gadget-normalizza-AutoreCitato.js che viene caricato); in Utente:Alex brollo/vector.js sono caricati tutti i codici newButton() per attivare tutti i bottoni-gadget; tutti i gadget-bottone sono stati disattivati con successo.
Azione n. 2
modificaAzione n. 3
modifica- Riunire tutti i piccoli script base (tipo leggiBox(), find_stringa()) di Alex in una raccolta separata da Common.js
Azione n. 4
modificaSull'utente socketpuppet Utente:Alex brollo bis/vector.js test per:
- modificare lo script bottoniera per poter inserire, fra i bottoni, scritte e andare a capo;
- trasportare in bottoniera gran parte degli "strumenti per la rilettura", il che permette di disabilitare il gadget per bloccare i menu a sinistra; lasciati solo trova & sostituisci, modifica dati Pagina, reset dati Pagina e AutoreCitato;
La bottoniera del socketpuppet ha adesso (14.6.12) questo aspetto:
Azione n. 5
modificaLa "bottoniera" adesso è trascinabile dovunque nello schermo e ridimensionabile. Per l'uso sotto monobook vanno aggiunti questi pulsanti:
newButton("//upload.wikimedia.org/wikipedia/commons/a/a4/Vector_toolbar_bold_G_button.png","incapsula('\'\'\'','\'\'\'')"); newButton("//upload.wikimedia.org/wikipedia/commons/5/50/Vector_toolbar_italic_C_button.png","incapsula('\'\'','\'\'')"); newButton("//upload.wikimedia.org/wikipedia/commons/3/34/Vector_toolbar_insert_reference_button.png","incapsula('<ref>','</ref>')"); newButton("//upload.wikimedia.org/wikipedia/commons/2/27/Vector_toolbar_signature_button.png","incapsula('','--~~~~')"); newButton("//upload.wikimedia.org/wikipedia/commons/8/87/Vector_toolbar_no_wiki_formatting_button.png","incapsula('','')"); newButton("//upload.wikimedia.org/wikipedia/commons/9/94/Vector_toolbar_insert_new_line_button.png","incapsula('','<br />')"); newButton("//upload.wikimedia.org/wikipedia/commons/7/77/Vector_toolbar_big_text_button.png","incapsula('{{larger|','}}')"); newButton("//upload.wikimedia.org/wikipedia/commons/3/3c/Vector_toolbar_small_text_button.png","incapsula('{{smaller|','}}')"); newButton("//upload.wikimedia.org/wikipedia/commons/c/c8/Vector_toolbar_superscript_button.png","incapsula('<sup>','</sup>')"); newButton("//upload.wikimedia.org/wikipedia/commons/d/d0/Vector_toolbar_subscript_button.png","incapsula('<sub>','</sub>')");
Rendere draggable e resizable disponibile a tutti.
Azione n. 6
modificaRipensamento sulle funzioni UI draggable() e resizable() della bottoniera; test su "super-bottoniera" a piena larghezza di pagina, bloccata in basso; sembra bene. Notato un fastidioso rallentamento nella risposta del browser; dipende dalle funzioni UI? Da testare la disabilitazione di draggable() e resizable() di show().