User:Magnus Manske/author sort.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// <nowiki>
/*
This script sorts P50 and P2093 statements by series ordial (P1545).
Example: https://www.wikidata.org/wiki/Q28209168
TO ACTIVATE, ADD
importScript( 'User:Magnus_Manske/author_sort.js' ); // [[User:Magnus Manske/author_sort.js]]
TO YOUR [[Special:MyPage/common.js]] USER SUBPAGE.
*/
$( function(){
function author_sort(property) {
let nodes = [];
$('#'+property+" div.wikibase-statementview").each(function(nodenum,node){
let id = $(node).attr("id");
let serial_number = '';
$(node).find('div.wikibase-snaklistview-listview').each(function(dummy,sv){
if ( $(sv).find("a[title='Property:P1545'").length>0 ) {
serial_number = $(sv).find('div.wikibase-snakview-variation-valuesnak').text()*1;
}
});
nodes.push([node,serial_number]);
});
nodes.sort(function(a,b){
if ( a[1]<b[1] ) return -1;
if ( a[1]>b[1] ) return 1;
return 0;
})
$.each(nodes,function(num,node_serial){
if ( num+1<nodes.length ) {
let node = node_serial[0];
let parent = node.parentNode;
let insert_before = parent.childNodes[num+1];
parent.insertBefore(node, insert_before);
}
});
}
author_sort("P50");
author_sort("P2093");
} ) ;
//</nowiki>