Progetto:Qualità/ProgettoRestart

Bozza e primi punti modifica

Nel 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:

  1. 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)
  2. quelli che gestiscono interfacce a form per alcune pagine speciali (pagine Indice, pagine Autore) o aggiungono backlinks da nsPagina a ns0;
  3. 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:
    1. Strumenti per la rilettura, menu a sinistra; verosimilmente indipendenti dalle skin; attivabili via Preferenze, in blocco;
    2. Pulsanti aggiuntivi del toolbox (specifici per la skin vector); attivabili via Preferenze, singolarmente;
    3. "bottoniera" (verosimilmente indipendenti dalle skin), attivabili via Preferenze + modifiche della pagina vector.js personale

La roadmap potrebbe essere:

  1. 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;
  2. riorganizzazione degli script di cui al punto 3, unificandoli in "bottoniera" ed eliminando gli script ridondanti.

Aggiungerei:

  1. 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 modifica

Gli 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 modifica

Definire la larghezza della bottoniera in modo che i pulsanti e bottoni "vadano a capo" (riempiendo lo spazio da destra)
  Fatto (da rifinire la grafica: background, colore bordo)
Per evitare problemi, assegnata ai bottoni la classe di default di vector.

Azione 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 modifica

Sull'utente socketpuppet Utente:Alex brollo bis/vector.js test per:

  1. modificare lo script bottoniera per poter inserire, fra i bottoni, scritte e andare a capo;
  2. 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 modifica

La "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 modifica

Ripensamento 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().