מדיה ויקי:Gadget-InterwikiOrder.js: הבדלים בין גרסאות בדף
מ 83 גרסאות של הדף wikipedia:he:מדיה_ויקי:Gadget-InterwikiOrder.js יובאו |
|||
| (82 גרסאות ביניים של 7 משתמשים אינן מוצגות) | |||
| שורה 1: | שורה 1: | ||
# | function fixInterwikiOrder(selectedInterwikiOrder) { | ||
var i, end, $item, | |||
$list = $( '#p-lang ul' ), | |||
$items = $list.find( 'li' ); | |||
end = 'זהו'; // the Hebrew string says "end" | |||
for ( i = selectedInterwikiOrder.length - 1; i >= 0; i-- ) { | |||
if ( selectedInterwikiOrder[i] === end ) { | |||
continue; | |||
} | |||
// Since selectedInterwikiOrder is coming from a wiki page, very important to escape. | |||
$item = $list.find( '.interwiki-' + $.escapeSelector( 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: 'User:' + mw.config.get( 'wgUserName' ) + '/בינוויקי' | |||
} ).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); | |||