MediaWiki:Gadget-InterwikiOrder.js
Utseende
Merk: Etter publisering vil det kanskje være nødvendig å slette mellomlageret i nettleseren din for å se endringene.
- Firefox / Safari: Hold Shift mens du klikker på Oppdater, eller trykk enten Ctrl+F5 eller Ctrl+R (⌘+R på Mac)
- Google Chrome: Trykk Ctrl+Shift+R (⌘+Shift+R på Mac)
- Edge: Hold Ctrl mens du trykker på Oppdater eller trykk Ctrl+F5
function fixInterwikiOrder(selectedInterwikiOrder) {
var i, end, $item,
$list = $( '#p-lang ul' ),
$items = $list.find( 'li' );
end = 'slutt'; // the Norwegian string says "end"
for ( i = selectedInterwikiOrder.length - 1; i >= 0; i-- ) {
if ( selectedInterwikiOrder[i] === end ) {
continue;
}
$item = $list.find( '.interwiki-' + selectedInterwikiOrder[i] );
if ( $item.length ) {
$item
.detach()
.prependTo($list);
}
}
if ( selectedInterwikiOrder[selectedInterwikiOrder.length - 1] === end ) {
$items.each( function( index, element ) {
var $element = $( element ),
$link = $element.find( 'a' );
if ( $.inArray( $link.prop( 'lang' ), selectedInterwikiOrder ) === -1 ) {
$element.remove();
}
});
}
}
function initInterwikiOrder( ) {
var api = new mw.Api();
if ( !$( '#p-lang' ).length ) {
return;
}
api.get( {
action: 'query',
prop: 'revisions',
format: 'json',
rvprop: 'content',
rvlimit: 1,
titles: 'Bruker:' + mw.config.get( 'wgUserName' ) + '/iw'
} ).done( function ( result ) {
var text, lines, rx, i, m,
selectedInterwikiOrder = [];
$.each( result.query.pages, function ( id, data ) {
if(data.revisions)
text = data.revisions[0]['*'];
return false;
} );
if(!text) return;
lines = text.split( '\n' );
rx = new RegExp( '\\*\\s?([^$]*)' );
for ( i = 0; i < lines.length; i++ ) {
m = rx.exec( lines[i] );
if ( m ) {
selectedInterwikiOrder.push( m[1] );
} else {
break;
}
}
if ( selectedInterwikiOrder[0] ) {
fixInterwikiOrder( selectedInterwikiOrder );
}
} );
}
$(initInterwikiOrder);