מדיה ויקי:Gadget-InterwikiOrder.js: הבדלים בין גרסאות בדף
מראה
מניעת לולאה |
שכתוב ב־jQuery |
||
| שורה 1: | שורה 1: | ||
function fixInterwikiOrder(selectedInterwikiOrder) { | |||
var i, end, $item, | |||
function | $list = $( '#p-lang ul' ), | ||
var i; | $items = $list.find( 'li' ); | ||
end = 'זהו'; // the Hebrew string says "end" | |||
for (i = | for (i = selectedInterwikiOrder.length - 1; i >= 0; i--) { | ||
if ( | if (selectedInterwikiOrder[i] === end) { | ||
continue; | |||
} | } | ||
$item = $list.find('.interwiki-' + selectedInterwikiOrder[i]); | |||
if ($item.length) { | |||
$item | |||
.detach() | |||
.prependTo($list); | |||
} | } | ||
} | } | ||
if ( | if (selectedInterwikiOrder[selectedInterwikiOrder.length - 1] === end) { | ||
$items.each(function(index, element) { | |||
if ( | var $element = $( element ), | ||
$link = $element.find('a'); | |||
if ($.inArray($link.prop('lang'), selectedInterwikiOrder) === -1) { | |||
$element.remove(); | |||
} | } | ||
} | }); | ||
} | } | ||
} | } | ||
function initInterwikiOrder() { | function initInterwikiOrder(){ | ||
var api = new mw.Api(); | var api = new mw.Api(); | ||
if (! | if (!$('#p-lang').length) { | ||
return; | // return; // XXX | ||
} | } | ||
| שורה 53: | שורה 47: | ||
titles: 'User:' + mw.config.get( 'wgUserName' ) + '/בינוויקי' | titles: 'User:' + mw.config.get( 'wgUserName' ) + '/בינוויקי' | ||
} ).done( function ( result ) { | } ).done( function ( result ) { | ||
var text, lines, rx, i, m; | var text, lines, rx, i, m, | ||
selectedInterwikiOrder = []; | |||
$.each( result.query.pages, function ( id, data ) { | $.each( result.query.pages, function ( id, data ) { | ||
| שורה 68: | שורה 63: | ||
if (m) { | if (m) { | ||
selectedInterwikiOrder.push(m[1]); | |||
} else { | } else { | ||
break; | break; | ||
| שורה 74: | שורה 69: | ||
} | } | ||
if ( | if (selectedInterwikiOrder[0]) { | ||
fixInterwikiOrder(); | fixInterwikiOrder(selectedInterwikiOrder); | ||
} | } | ||
} ); | } ); | ||
גרסה מ־10:39, 24 ביוני 2015
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;
}
$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; // XXX
}
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 ) {
text = data.revisions[0]['*'];
return false;
} );
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);