MediaWiki:Modifiche alla pagina principale.js
Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
- Opera: premi Ctrl-F5.
/*
* Esegue modifiche dell'HTML
* della Pagina principale
*
* - aggiunge un pulsante che raggruppa/separa per data
* la lista degli ultimi articoli pubblicati
*
*/
$( function() {
// load test version
if (
mw.Uri
&& mw.Uri().query.test
)
{
importScript( 'MediaWiki:Modifiche alla pagina principale.js/test.js' );
return;
}
// altrimenti non si può vedere la versione non modificata della lista
if ( mw.config.get( 'wgPageName' ) === 'Template:Pagina_principale/Ultimi_articoli_pubblicati' ) {
return;
}
var
lastDate = '',
$dateGroup = null,
groupLabel = '[raggruppa per data]',
ungroupLabel = '[date ai titoli]',
$divUltimiArticoli = $( '#ultimi-articoli-pubblicati' );
if ( $divUltimiArticoli.length === 0 )
return;
$divUltimiArticoli
.clone( true )
.attr( 'id', 'ultimi-articoli-per-data' )
.hide()
.insertAfter( '#ultimi-articoli-pubblicati' )
.find( 'ul > li' )
.unwrap()
.each(
function( pos, li ) {
function getDateElement( shortDateText ) {
function longDate( date ) {
var
monthName = ["","gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],
weekDayName = [
'domenica',
'lunedì',
'martedì',
'mercoledì',
'giovedì',
'venerdì',
'sabato'
];
return(
weekDayName[ date.getDay() ]
+ ' '
+ date.getDate()
+ ' '
+ monthName[ 1 + date.getMonth() ]
+ ' '
+ date.getFullYear()
);
}
var
months = ["","gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],
split = shortDateText.split( /[ :]/ ),
date = new Date(
split[ 2 ],
months.indexOf(
split[ 1 ]
) - 1,
split[ 0 ]
);
return (
$( '<p>' )
.text(
longDate( date )
)
);
}
var
$date = (
$( li )
.contents()
.eq( 0 )
),
date = (
$date
.text()
);
$date.remove();
if ( date !== lastDate ) {
$dateGroup = $( '<ul>' );
$( '<div style="margin: .5em 0 1em;">' )
.append(
getDateElement( date )
)
.append( $dateGroup )
.insertBefore( li );
}
$dateGroup
.append( li );
lastDate = date;
}
);
$( '<div>' )
.css( {
'font-size': '85%',
'text-align': 'right'
} )
.append(
$( '<a href="javascript:void(0);"></a>' )
.text( groupLabel )
.attr( 'id', 'toggle-ultimi-articoli' )
.click( function() {
var grouping = this.textContent === groupLabel;
$( '#ultimi-articoli-per-data' )
[ grouping ? 'show' : 'hide' ]();
$( '#ultimi-articoli-pubblicati' )
[ grouping ? 'hide' : 'show' ]();
this.textContent =
( grouping ? ungroupLabel : groupLabel );
} )
)
.insertBefore( $divUltimiArticoli );
$( '#toggle-ultimi-articoli' )
.click();
} );