User:Neier/monobook.js/defaultsorting.js

/* User:DStoykov/defaultsort.js */

function defaultsort { //var apiurl = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml'; //var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null; //xmlhttp.open('GET',apiurl, false); //xmlhttp.send(null); //alert(xmlhttp.responseXML.getElementById('14'));

var txt = document.editform.wpTextbox1.value; var sortkey = ''; // Create an array of all category links if (txt.match(/\{\{\s*defaultsort/i)) { alert('There\'s already a defaultsort statement!'); return; }    var catlinks = txt.match(/\[\[\s*((C|K)at(e|e)gor(y|i|ie|ia|ia|ija|io)|Кат(е|э)гор(ия|ија|ія|ыя)|Luokka|Flokkur)\s*:.*\]\]/ig); if (!catlinks) { alert('There are no category links!'); return; }    for (i=0; i< catlinks.length; i++) { // Extract the name of the category var catname = catlinks[i].replace(/.+\s*:\s*([^|]*[^|\s])\s*(\|.*)?\]\]/,"$1"); // Extract the sort key var match = /\|[^\]]+/.exec(catlinks[i]); if (match == null) { var titleForSort = document.title; titleForSort = titleForSort.replace(/^Editing /gi, ''); titleForSort = titleForSort.replace(/ - Wikipedia, the free encyclopedia/gi, ''); titleForSort = titleForSort.replace(/ō/g, 'o'); titleForSort = titleForSort.replace(/Ō/g, 'O'); titleForSort = titleForSort.replace(/ū/g, 'u'); //titleForSort = titleForSort.replace(/Ū/g, 'U'); var sk = titleForSort.replace(/Ū/g, 'U'); //       alert('Category '+catname+' doesn\'t include a sort key!'); // return; } else { // Strip the '|' and any trailing spaces var sk = match[0].replace(/\|(.+)/, "$1").replace(/(\S) +$/,"$1"); }       if (i == 0) { sortkey = sk; } else { if (sortkey != sk) { alert('Not all sort keys are identical!\nThe sort key for category '+catname+' is different.'); return; }       }    }    // Now that we know that everything is OK, we can proceed with modifying the content of the editbox txt = txt.replace(catlinks[0], "\n"+catlinks[0]); for (i=0; i< catlinks.length; i++) { subst = catlinks[i].replace(/\|[^\]]+/,""); txt = txt.replace(catlinks[i], subst); }   document.editform.wpTextbox1.value=txt;

document.editform.wpSummary.value = 'DEFAULTSORT'; document.editform.wpMinoredit.checked = true; document.editform.wpWatchthis.checked = false; }

//addOnloadHook(function { //  if(document.forms.editform) { //    mw.util.addPortletLink('p-cactions', 'javascript:defaultsort', 'defaultsort', 'ca-defaultsort', , , document.getElementById('ca-purge')); //  } //});

/* */