“Un’altra cosa possiedo: un grande archivio, visto che non ho molta fantasia, e ogni volta che parlo di questo archivio chi deve tacere, come d’incanto, inizia a tacere.”
(Giulio Andreotti - Il divo)

Bentornato 2!

modifica

Caro L0ll0,

bellissimo rivederti! Dài, non fare la cometa che si avvicina alla terra e poi sparisce per un altro millennio, ogni tanto un edit qua e là ci fa sapere che non ci hai dimenticato ;D - εΔω 11:40, 29 mag 2016 (CEST)Rispondi

Ciao εΔω! Una descrizione a dir poco perfetta! :-p Ogni tanto passo di qua, mi leggo qualche discussione sul bar e penso a come potrei nuovamente contribuire in qualche modo! Poi mi accorgo di essermi scordato un sacco di roba, di essere rimasto indietro, e il mio perfezionismo mi fa allontanare di nuovo... Ovviamente il problema principale è che dedico il mio tempo libero a mille altri progetti a cui, nel tempo, ho dato più importanza di WS, ma non vi scorderò mai! :-) Grazie ancora della calda accoglienza: una costante che non sbiadisce mai qua su WS! ;D --L0ll0 (disc.) 18:12, 29 mag 2016 (CEST)Rispondi

Approposito del "doppio editor"

modifica

Quel minuscolo screenshot del "doppio editor" per due versioni della stessa pagina mi affascina e mi innervosisce; mi affascina perchè è un'ottima idea, mi innervosisce perchè non so come ho fatto a non pensarci :-(

Hai già provato a implementarla? C'è già un abbozzo di codice? Giusto per resistere alla forte tentazione di cimentarmi da me per realizzarla..... ;-) --Alex brollo (disc.) 17:43, 9 giu 2016 (CEST)Rispondi

Oh fortunato utente in vacanza, che lanci il sasso e nascondi la mano :-): sto arrovellandomi sulla tua magnifica idea di presentare in wpTextbox1 il codice delle pagine "una section alla volta". Estendendo l'idea, intravedo come potrebbe essere fatto e generalizzato: occorre che il testo possa essere editato "all" oppure che possa essere editato "una section alla volta", e questo modo di edit può essere esteso a piacere a qualsiasi caso/qualsiasi numero di section. Dovrebbe bastare eseguire uno "smontaggio per sezioni" e la trasformazione del testo in un oggetto sezione:testo della sezione; con le routinette per aggiornare i singoli testi dopo edit e per smontare-rimontare il testo completo versione "all" per potere editare la suddivisione in sezioni e per salvarlo. Se non torni presto mi cimento nell'implementazione :-)
PS: il caso diplomatico-critico a questo punto si ridurrebbe a un caso particolare del meccanismo generale. Un prefisso - suffisso standard al nome di sezione basterebbe per farlo capire allo script e farlo agire di conseguenza. --Alex brollo (disc.) 13:29, 12 giu 2016 (CEST)Rispondi
@Alex brollo eccomi di ritorno dalle vacanze! :-D
Lo screenshot è ovviamente un "falso" nel senso che avevo modificato un po' di HTML solo per dare un esempio visivo dell'idea che avevo in mente. Una volta che si hanno le idee chiare (e mi sembra che tu gli abbia dato una bella prima impostazione generale da cui ricavare il nostro caso particolare) si comincia a buttare giù tutto il codice possibile e immaginabile. Se vogliamo fare un sistema a sections allora non useremo una serie di radio da selezionare, ma un menu a tendina con una voce per ogni section oppure "all". Così uno seleziona l'opzione che vuole e lui ti cambia il contenuto dell'editor di conseguenza.
Tanto per cominciare ti faccio una domanda per informarmi sull'aspetto tecnico: l'editor wpTextbox1 del nsPagina da dove viene? È un plugin presente sulle varie Wikisource? È una serie di script custom che vengono periodicamente aggiornati dagli admin? --L0ll0 (disc.) 23:14, 14 giu 2016 (CEST)Rispondi
Non esiste un vero editor per wpTextbox1, è una banale textarea e i vari tool di edit come tale la trattano. C'è una importante differenza fra toolbar (link attivi a fondo pagina) e toolbox (pulsanti e icome in testa alla pagina, tipici di Vector): il primo, più antico, è nettamente più intelligente perchè agisce su qualsiasi textarea/campo input text attivo mentre il secondo, nettamente più stupido, agisce solo su wpTextbox1 (corpo pagina in nsPagina; niente header, niente footer, figuriamoci campi input di un form). In parecchi dei nostri tool di edit esiste un trucco per memorizzare l'area attiva e aggirare il problema (mw.activeElement). Alex brollo (disc.) 00:05, 16 giu 2016 (CEST)Rispondi

WIP su MediaWiki:Gadget-sectionEdit.js

modifica

Sono ottimista. Il motore c'è. Tre pulsantini piccini, un po' di ragionamenti sugli eventi e ci siamo. Se non trovo intoppi fra uno o due giorni qualcosa corre. :-) --Alex brollo (disc.) 23:58, 15 giu 2016 (CEST)Rispondi

 
Questo è vero
Ecco l'interfaccia del tool come l'avevo immaginato.
  • I due pulsanti > e < "ruotano" le sezioni nella finestra di edit; se cliccati in status "all" cliccano virtualmente il pulsante all.
  • il pulsante all switcha fra lo status "all" (testo completo) e "sect" (una sezione alla volta)
  • nessun pulsante fa nulla se nel testo non c'è alcuna section.
Ho un problema: al pulsante Salva la pagina occorre associare un preliminare click virtuale su all altrimenti, in status "sect", viene salvata solo la sezione in edit. --Alex brollo (disc.) 23:06, 16 giu 2016 (CEST)Rispondi
@Alex brollo ottimo lavoro! Giuro che appena ho un po' di tempo lo provo direttamente.
Intanto: il problema dell all sul click su Salva la pagina è dovuto al fatto che si salva tutte le sezioni solo in memoria (nell'array mw.sectionEdit.t) e non nella textarea #wpTextbox1 dove MediaWiki se lo aspetta.
Una soluzione più complicata, ma più compatibile con MediaWiki, potrebbe essere quella di nascondere #wpTextbox1 (in cui sarà lasciato sempre tutto il testo) e mostrare all'utente una copia in cui modifica le singole sezioni. Mi immagino tante textarea quante le sezioni (#wpTextboxAll, #wpTextboxSection1, #wpTextboxSection2, ...) che vengono mostrate al click dei pulsanti >, < e all. Sull'evento "blur" si va ad aggiornare la sezione "vera" dentro a #wpTextbox1. In questo modo #wpTextbox1 rimane sempre completa ed aggiornata e quando clicco sul pulsante Salva la pagina viene salvato tutto quanto seguendo il ciclo normale. Il punto debole è riuscire a dirottare nelle varie textarea mostrate gli effetti delle edittool, ma sono fiducioso che ci si possa riuscire. ;-) --L0ll0 (disc.) 09:02, 17 giu 2016 (CEST)Rispondi
Sto immerso nel problema (non solo mio) dell'"event sequencing" ma penso che andrò per le spicce; c'è già una routine "impostaBottoni()" che fa delle cose preliminari su #wpTextbox1 prima del salvataggio, ci schiaffo dentro una verifica se siamo in status "sect" e in quel caso sistemo, e fine. Usare textarea multiple non va bene, gli attrezzi del toolbox mediaWiki non funzionerebbero, agiscono solo su #wpTextbox1 (sono molto stupidi). Alex brollo (disc.) 09:20, 17 giu 2016 (CEST)Rispondi
@Alex brollo soluzione poco elegante, ma va bene. Secondo te usare l'evento submit non basta? Bisognerebbe fare delle prove e vedere se viene chiamato effettivamente sempre prima della chiamata POST... --L0ll0 (disc.) 09:48, 17 giu 2016 (CEST)Rispondi
Il problema è che ai pulsanti Salva, Preview, Mostra modifiche è già stato attaccato un evento attraverso la funzione impostaBottoni(), che sta in MediaWiki:Gadget-common.js e che all'inizio mi lasciava sgomento (riceve una funzione come parametro.... cosa che a un povero programmatore fai-da-te crea un durevole stato di confusione mentale); il tool ne attaccherebbe un secondo (probabilmente dopo) , che però deve essere eseguito per primo. Ho provato a modificare impostaBottoni, non vedo alcun risultato, c'è un ritardo di ore-giorni fra la modifica di questi script e il momento in cui vengono effettivamente usati dal server, il che è estremamente frustrante. Alex brollo (disc.) 16:20, 17 giu 2016 (CEST)Rispondi
Avevo sbagliato i tempi (e non solo): adesso la riga di codice che clicca su #buttonAll è nel posto giusto (verificaPagina() in MediaWiki:Common.js), e funzia. Posso andare avanti. Alex brollo (disc.) 22:10, 17 giu 2016 (CEST)Rispondi

memoRegex + sectionEdit

modifica

... e adesso siamo a un passetto dal connubio fra i due tool.

Ho aggiunto il campo commento a memoRegex; nello status (mw.sectionEdit.status) "sect" c'è un modo immediato di sapere qual'è il nome della sezione corrente (mw.sectionEdit.name); quindi basta registrare qualcosa nel campo commento, e modificare il codice di mw.memoRegexRun in modo che la regex venga eseguita solo se la section corrente corrisponde al tipo previsto. Visto che ho già trascritto qualche capitolo di Orlando Furioso, userò il criterio "nome section termina con". --Alex brollo (disc.) 14:39, 23 giu 2016 (CEST)Rispondi

Incontro di Wikisource

modifica

Ciao, al Bar stiamo pensando ad organizzare un incontro nazionale di Wikisource. Ti va di partecipare alla discussione? --MediaWiki message delivery (disc.) 12:02, 16 ott 2016 (CEST)Rispondi