MediaWiki:Gadget-revisionjumper.js: Difference between revisions
MediaWiki:Gadget-revisionjumper.js (view source)
Revision as of 20:24, September 3, 2020
, 3 years agono edit summary
Johnrdorazio (talk | contribs) m (1 revision imported) |
Johnrdorazio (talk | contribs) No edit summary |
||
Line 16: | Line 16: | ||
// [[:de:MediaWiki:Gadget-revisionjumper.js]] | // [[:de:MediaWiki:Gadget-revisionjumper.js]] | ||
mw.loader.load( '//de.wikipedia.org/w/index.php?title=MediaWiki:Gadget-revisionjumper.js&action=raw&ctype=text/javascript' ); | //mw.loader.load( '//de.wikipedia.org/w/index.php?title=MediaWiki:Gadget-revisionjumper.js&action=raw&ctype=text/javascript' ); | ||
// <nowiki> | |||
switch (mw.config.get('wgUserLanguage')){ | |||
case 'de': | |||
case 'de-at': | |||
case 'de-ch': | |||
case 'de-formal': | |||
var configrevisionjumper = new Array('Änderungen seit meiner letzten Bearbeitung', | |||
'Zum vorletzten Bearbeiter', | |||
'frühere Versionen', | |||
'spätere Versionen', | |||
'Version(en) zurück', | |||
'Version(en) vorwärts', | |||
'Jahr(e)', | |||
'Monat(e)', | |||
'Tag(e)', | |||
'Stunde(n)', | |||
'zurück', // 10 | |||
'vorwärts', | |||
'prompt Version(en)', | |||
'prompt um-Zeit', | |||
'prompt auf-Zeit', | |||
'erste Version', | |||
'letzte Version', | |||
'Um wie viele Versionen springen?', | |||
'Um welche Zeit soll gesprungen werden? [a = Jahr; m = Monat; d = Tag; h = Stunde; alles optional -> „1h“ allein springt somit um eine Stunde in die gewünschte Richtung]', | |||
'Auf welche Zeit soll gesprungen werden? [Syntax: Jahr-Monat-Tag Stunde:Minute; es geht auch nur Jahr-Monat-Tag -> 2007-12-31 springt also auf die Version, die um 00:00 Uhr an Silvester angezeigt wurde]'); // 19 | |||
break; | |||
case 'hu': | |||
case 'hu': | |||
var configrevisionjumper = new Array('változtatások a legutolsó szerkesztésem óta', | |||
'eltérések az aktuális változattól', | |||
'régebbi változatok', | |||
'újabb változatok', | |||
'változattal vissza', | |||
'változattal előre', | |||
'évvel', | |||
'hónappal', | |||
'nappal', | |||
'órával', | |||
'vissza', // 10 | |||
'előre', | |||
'változatok számának megadása', | |||
'ugrás időegységgel', | |||
'ugrás időpontra', | |||
'első változat', | |||
'aktuális változat', | |||
'Hány változatot szeretnél átugrani?', | |||
'Mekkora időegységet szeretnél átugrani? [a = év; m = hónap; d = nap; h = óra; minden elem opcionális -> „1h” egy óra ugrást jelent a kiválasztott irányban]', | |||
"Mikorra szeretnél ugrani? [formátum: év-hónap-nap óra:perc, valamint év-hónap-nap óra is lehetséges -> a 2007-12-31 a szilveszteri, 00:00-kor elérhető változatot mutatja meg]"); // 19 | |||
break; | |||
case 'pt': | |||
case 'pt-br': | |||
var configrevisionjumper = new Array('alterações desde a minha última edição', | |||
'penúltimo editor', | |||
'edições anteriores', | |||
'edições posteriores', | |||
'revisão(ões) anteriores', | |||
'revisão(ões) posteriores', | |||
'ano(s)', | |||
'mês(es)', | |||
'dia(s)', | |||
'hora(s)', | |||
'retroceder', // 10 | |||
'avançar', | |||
'solicitar revisão(ões)', | |||
'saltar no tempo', | |||
'saltar para o tempo', | |||
'primeira revisão', | |||
'revisão atual', | |||
'Quantas revisões devem ser puladas?', | |||
'Que período deve ser pulado? [a = ano; m = mês; d = dia; h = hora; todos os itens são opcionais -> „1h“ apenas causa um salto de uma hora na direção selecionada]', | |||
"Para que instante de tempo você quer saltar? [sintaxe: ano-mês-dia hora:minuto; ano-mês-dia também é possível -> então 2007-12-31 mostra a revisão que estava disponível na véspera de ano novo às 00:00h]"); // 19 | |||
break; | |||
default: | |||
var configrevisionjumper = new Array('changes since my last edit', | |||
'next-to-last editor', | |||
'former revisions', | |||
'later revisions', | |||
'revision(s) backward', | |||
'revision(s) forward', | |||
'year(s)', | |||
'month(s)', | |||
'day(s)', | |||
'hour(s)', | |||
'backward', // 10 | |||
'forward', | |||
'prompt revision(s)', | |||
'skip over time', | |||
'skip to time', | |||
'first revision', | |||
'current revision', | |||
'How many revisions to be skipped?', | |||
'What period is to be skipped? [a = year; m = month; d = day; h = hour; all items optional -> „1h“ only causes a jump of 1 hour in the selected direction]', | |||
"What time is to be skipped to? [syntax: year-month-day hour:minute; year-month-day possible as well -> thus 2007-12-31 shows the revision that has been available on New Year's Eve at 00:00]"); // 19 | |||
} | |||
// Version: 1.2.6 | |||
if(!getoldid) var getoldid = false; | |||
if(!displayonview) var displayonview = false; | |||
if(!displayonhistory) var displayonhistory = false; | |||
if(!disabledisplayonpermalink) var disabledisplayonpermalink = false; | |||
if(!disabledisplayondiff) var disabledisplayondiff = false; | |||
if(!disablepenultimateeditor) var disablepenultimateeditor = false; | |||
if(!disablechangessincemylastedit) var disablechangessincemylastedit = false; | |||
if(!numberrevisionjumper) var numberrevisionjumper = new Array("10", "50", "150", "500"); | |||
if(!timerevisionjumper) var timerevisionjumper = new Array("1h", "4h", "12h", "3d", "7d", "1m", "3m", "1a", "2a"); | |||
var diffoptionnames = []; | |||
diffoptionnames[0] = []; | |||
diffoptionnames[1] = []; | |||
var numberrevisionjumperlength = numberrevisionjumper.length; | |||
var timerevisionjumperlength = timerevisionjumper.length; | |||
for(a=0;a<numberrevisionjumper.length;a++){ | |||
diffoptionnames[0][a] = numberrevisionjumper[a]; | |||
} | |||
for(b=0;b<timerevisionjumper.length;b++){ | |||
diffoptionnames[1][b] = timerevisionjumper[b]; | |||
} | |||
function newRequest() { | |||
try { | |||
if (window.XMLHttpRequest) { | |||
return new XMLHttpRequest(); | |||
} else { | |||
return new ActiveXObject("MSXML2.XMLHTTP"); | |||
} | |||
} catch (e) { | |||
return false; | |||
} | |||
} | |||
// get URL parameters (used for page type variables) | |||
var UrlParameters = []; | |||
readparams(); | |||
function readparams() { | |||
var asReadInUrlParameters; | |||
var asReadInUrlParameter; | |||
// Get URL parameters | |||
asReadInUrlParameters = location.search.substring(1, location.search.length).split("&"); | |||
for (i = 0; i < asReadInUrlParameters.length; i++) { | |||
asReadInUrlParameter = asReadInUrlParameters[i].split("="); | |||
UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]); | |||
} | |||
} | |||
function addrevisionjumper(){ | |||
if ((mw.config.get('wgCanonicalNamespace') != 'Special') && (mw.config.get('wgPageName') != 'Wikipedia:Vandalismusmeldung')) { | |||
for(j=0;j<2;j++){ | |||
var difflink = []; | |||
if(UrlParameters["diff"] && !disabledisplayondiff) { | |||
difflink[0] = document.getElementById('differences-prevlink'); | |||
difflink[1] = document.getElementById('differences-nextlink'); | |||
var leftuser = document.getElementById('mw-diff-otitle2'); | |||
if (leftuser) { leftuser = leftuser.getElementsByTagName('a')[0].innerHTML; } else { leftuser = ''; } | |||
var rightuser = document.getElementById('mw-diff-ntitle2'); | |||
if (rightuser) { rightuser = rightuser.getElementsByTagName('a')[0].innerHTML; } else { rightuser = ''; } | |||
} else if (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) { | |||
var req10; | |||
if (req10 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | |||
req10.open("GET", text, false); | |||
req10.send(""); | |||
var firstrevision = req10.responseXML.getElementsByTagName("rev")[0].getAttribute('revid'); | |||
} | |||
if(mw.config.get('wgCurRevisionId')!=firstrevision) difflink[0] = document.getElementById('firstHeading'); | |||
} else if (mw.config.get('wgAction') == 'history' && displayonhistory) { | |||
var lasthistoryrevision = document.getElementById('pagehistory').getElementsByTagName('li'); | |||
if(lasthistoryrevision.length>1) { | |||
difflink[0] = document.getElementById('jump-to-nav'); | |||
lasthistoryrevisionid = lasthistoryrevision[0].getElementsByTagName('input')[0].getAttribute('value'); | |||
if(lasthistoryrevisionid != mw.config.get('wgCurRevisionId')) difflink[1] = document.getElementById('movetodiff0'); | |||
} | |||
} else if (UrlParameters["oldid"] && !UrlParameters["action"] && !disabledisplayonpermalink) { | |||
if(document.getElementById('mw-revision-nav').innerHTML.search(/href\=/)!=-1) difflink[0] = document.getElementById('jump-to-nav'); | |||
if(UrlParameters["oldid"] != mw.config.get('wgCurRevisionId')) difflink[1] = document.getElementById('movetodiff0'); | |||
} | |||
if(difflink[j]) { | |||
var newlink = document.createElement('select'); | |||
newlink.onchange = j == 0 ? function(){movetodiff(0);} : function(){movetodiff(1)}; | |||
newlink.setAttribute('id', 'movetodiff'+j); | |||
newlink.setAttribute('name', 'movetodiff'+j); | |||
difflink[j].parentNode.insertBefore( newlink, difflink[j].nextSibling ); | |||
var tempnumber = j; | |||
var templine = newline; | |||
var tempposition = difflink; | |||
if(!disablechangessincemylastedit && !document.getElementById('changessincemylastedit')) { | |||
function continuereq8(firstrevision, nextrevision, difflink, j, newline) { | |||
if(nextrevision!=mw.config.get('wgCurRevisionId') && nextrevision!=firstrevision) { | |||
var newrevisionlink = document.createElement('a'); | |||
newrevisionlink.setAttribute('id', 'changessincemylastedit'); | |||
newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur'); | |||
if(j==0) var EditTextNode = document.createTextNode('← '+configrevisionjumper[0]); | |||
else if(j==1) var EditTextNode = document.createTextNode(configrevisionjumper[0]+' →'); | |||
newrevisionlink.appendChild(EditTextNode); | |||
var newline = document.createElement('br'); | |||
if(!document.getElementById('changessincemylastedit')){ | |||
difflink[j].parentNode.insertBefore( newrevisionlink, difflink[j].nextSibling ); | |||
difflink[j].parentNode.insertBefore( newline, difflink[j].nextSibling ); | |||
} | |||
} | |||
} | |||
function continuereq4(thisrevisionreq4, difflink, j, newline) { | |||
var thisrevisionlength = thisrevisionreq4.length; | |||
var l = 0; | |||
while(thisrevisionreq4[l]) { | |||
if(thisrevisionreq4[l].getAttribute('user')!=mw.config.get('wgUserName') && l<(thisrevisionlength-1)) { l++; } else { break; } | |||
} | |||
nextrevision = thisrevisionreq4[l].getAttribute('revid'); | |||
var text8 = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | |||
var req8 = newRequest(); | |||
req8.open("GET", text, true); | |||
req8.onreadystatechange = function () { | |||
if(req8.readyState == 4) { | |||
continuereq8(req8.responseXML.getElementsByTagName("rev")[0].getAttribute('revid'), nextrevision, difflink, j, newline); | |||
} | |||
}; | |||
req8.send(""); | |||
} | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500'; | |||
var req4 = newRequest(); | |||
req4.open("GET", text, true); | |||
req4.onreadystatechange = function () { | |||
if(req4.readyState == 4) { | |||
continuereq4(req4.responseXML.getElementsByTagName("rev"), tempposition, tempnumber, templine); | |||
} | |||
}; | |||
req4.send(null); | |||
} | |||
if(tempnumber==0 && (leftuser==rightuser) && !disablepenultimateeditor){ | |||
var req19; | |||
if (req19 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500'; | |||
req19.open("GET", text, false); | |||
req19.send(""); | |||
var thisrevision = req19.responseXML.getElementsByTagName("rev"); | |||
var thisrevisionlength = thisrevision.length; | |||
if(!leftuser) var leftuser = thisrevision[0].getAttribute('user'); | |||
var fixedleftuser = leftuser.replace(/\<bdi\>/,'').replace(/\<\/bdi\>/,''); | |||
var l = 0; | |||
while(thisrevision[l]) { | |||
if(thisrevision[l].getAttribute('user')==fixedleftuser && l<(thisrevisionlength-1)) { l++; } else { break; } | |||
} | |||
nextrevision2 = thisrevision[l].getAttribute('revid'); | |||
var req9; | |||
if (req9 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | |||
req9.open("GET", text, false); | |||
req9.send(""); | |||
var firstrevision = req9.responseXML.getElementsByTagName("rev")[0].getAttribute('revid'); | |||
} | |||
var changessincemylasteditid = document.getElementById('changessincemylastedit'); | |||
if(changessincemylasteditid) { | |||
changessincemylasteditid = changessincemylasteditid.getAttribute('href').match(/oldid\=(\d+)/); | |||
changessincemylasteditid = RegExp.$1; | |||
} | |||
if(nextrevision2!=firstrevision && nextrevision2!=changessincemylasteditid) { | |||
var newrevisionlink = document.createElement('a'); | |||
newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision2+'&diff=cur'); | |||
var EditTextNode = document.createTextNode('← '+configrevisionjumper[1]); | |||
newrevisionlink.appendChild(EditTextNode); | |||
newrevisionlink.setAttribute('id', 'penultimateeditor'); | |||
var newline = document.createElement('br'); | |||
if(changessincemylasteditid) { | |||
document.getElementById('changessincemylastedit').parentNode.insertBefore( newline, document.getElementById('changessincemylastedit').nextSibling ); | |||
document.getElementById('changessincemylastedit').parentNode.insertBefore( newrevisionlink, document.getElementById('changessincemylastedit').nextSibling ); | |||
} else { | |||
difflink[j].parentNode.insertBefore( newline, difflink[j].nextSibling ); | |||
difflink[j].parentNode.insertBefore( newrevisionlink, difflink[j].nextSibling ); | |||
} | |||
} | |||
} | |||
} | |||
if (UrlParameters["diff"]) { | |||
var newline2 = document.createElement('br'); | |||
tempposition[j].parentNode.insertBefore( newline2, tempposition[j].nextSibling ); | |||
} | |||
var currentmovetodiffid = document.getElementById('movetodiff'+j); | |||
var newoption = document.createElement("option"); | |||
currentmovetodiffid.appendChild(newoption); | |||
if(j==0) var newoptiontext = document.createTextNode(configrevisionjumper[2]); | |||
else if (j==1) var newoptiontext = document.createTextNode(configrevisionjumper[3]); | |||
currentmovetodiffid.getElementsByTagName("option")[0].appendChild(newoptiontext); | |||
for (var k=0; k<2; k++) { | |||
if(k==0) { var thisiteration = numberrevisionjumperlength+1; } else { var thisiteration = timerevisionjumperlength+1; } | |||
for(m=1;m<thisiteration;m++) { | |||
var newoption = document.createElement("option"); | |||
if(k==0) { | |||
if(j==0) { | |||
var thisnewtextnode = diffoptionnames[k][m-1]+' '+configrevisionjumper[4]; | |||
} else if (j==1) { | |||
var thisnewtextnode = diffoptionnames[k][m-1]+' '+configrevisionjumper[5]; | |||
} | |||
} else if (k==1) { | |||
var regexprevision = diffoptionnames[k][m-1].match(/(\d+)(\D+)/); | |||
var regexpnumber = RegExp.$1; | |||
var regexptype = RegExp.$2; | |||
if(regexptype=='a') { var regexptypename = configrevisionjumper[6]; } else if(regexptype=='m') { var regexptypename = configrevisionjumper[7]; } else if(regexptype=='d') { var regexptypename = configrevisionjumper[8]; } else if(regexptype=='h') { var regexptypename = configrevisionjumper[9]; } | |||
if (j==0) { | |||
var thisnewtextnode = regexpnumber+' '+regexptypename+' '+configrevisionjumper[10]; | |||
} else if (j==1) { | |||
var thisnewtextnode = regexpnumber+' '+regexptypename+' '+configrevisionjumper[11]; | |||
} | |||
} | |||
var newoptiontext = document.createTextNode(thisnewtextnode); | |||
currentmovetodiffid.appendChild(newoption); | |||
if(k==0) { currentmovetodiffid.getElementsByTagName("option")[m].appendChild(newoptiontext); } else if(k==1) { currentmovetodiffid.getElementsByTagName("option")[m+numberrevisionjumperlength].appendChild(newoptiontext); } | |||
} | |||
} | |||
var handt = numberrevisionjumperlength+timerevisionjumperlength; | |||
var newoption = document.createElement("option"); | |||
var thisnewtextnode = configrevisionjumper[12]; | |||
var newoptiontext = document.createTextNode(thisnewtextnode); | |||
currentmovetodiffid.appendChild(newoption); | |||
currentmovetodiffid.getElementsByTagName("option")[handt+1].appendChild(newoptiontext); | |||
var newoption = document.createElement("option"); | |||
var thisnewtextnode = configrevisionjumper[13]; | |||
var newoptiontext = document.createTextNode(thisnewtextnode); | |||
currentmovetodiffid.appendChild(newoption); | |||
currentmovetodiffid.getElementsByTagName("option")[handt+2].appendChild(newoptiontext); | |||
var newoption = document.createElement("option"); | |||
var thisnewtextnode = configrevisionjumper[14]; | |||
var newoptiontext = document.createTextNode(thisnewtextnode); | |||
currentmovetodiffid.appendChild(newoption); | |||
currentmovetodiffid.getElementsByTagName("option")[handt+3].appendChild(newoptiontext); | |||
if(j==0) { | |||
var newoption = document.createElement("option"); | |||
var thisnewtextnode = configrevisionjumper[15]; | |||
var newoptiontext = document.createTextNode(thisnewtextnode); | |||
currentmovetodiffid.appendChild(newoption); | |||
currentmovetodiffid.getElementsByTagName("option")[handt+4].appendChild(newoptiontext); | |||
} else if (j==1) { | |||
var newoption = document.createElement("option"); | |||
var thisnewtextnode = configrevisionjumper[16]; | |||
var newoptiontext = document.createTextNode(thisnewtextnode); | |||
currentmovetodiffid.appendChild(newoption); | |||
currentmovetodiffid.getElementsByTagName("option")[handt+4].appendChild(newoptiontext); | |||
} | |||
} | |||
} | |||
} | |||
} | |||
if ( (UrlParameters["diff"] && !disabledisplayondiff) || (UrlParameters["oldid"] && !UrlParameters["action"] && !disabledisplayonpermalink) || (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) || (mw.config.get('wgAction') == 'history' && displayonhistory) ) $(addrevisionjumper); | |||
function movetodiff(type){ | |||
var handt = numberrevisionjumperlength+timerevisionjumperlength; | |||
for (i=0;i<(handt+4);i++) { | |||
if (document.getElementById('movetodiff'+type).options[i+1].selected == true) { | |||
if (i<numberrevisionjumperlength || i==handt) { | |||
if(UrlParameters["diff"]) { | |||
if(type==0) var currentid = document.getElementById('mw-diff-ntitle1'); | |||
else if(type==1) var currentid = document.getElementById('mw-diff-otitle1'); | |||
if(!currentid){ var currentid = document.getElementById('differences-nextlink'); } else { currentid = currentid.getElementsByTagName('a')[0]; } | |||
currentid = currentid.getAttribute('href').match(/oldid\=(\d+)/); | |||
currentid = RegExp.$1; | |||
} else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) { | |||
var currentid = mw.config.get('wgCurRevisionId'); | |||
} else if (mw.config.get('wgAction') == 'history') { | |||
var currentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value'); | |||
} else { | |||
var currentid = UrlParameters["oldid"]; | |||
} | |||
if (i<numberrevisionjumperlength) { | |||
var revisionlimit = numberrevisionjumper[i]; | |||
} else { | |||
var revisionlimit = 'a'; | |||
while(revisionlimit.search(/\D/)!=-1) { | |||
revisionlimit = prompt(configrevisionjumper[17],'50'); | |||
} | |||
if (revisionlimit>499) revisionlimit = 499; | |||
} | |||
if(type==0) var direction = 'older'; | |||
else if(type==1) var direction = 'newer'; | |||
if(UrlParameters["diff"]) { | |||
if(type==0) var anothercurrentid = document.getElementById('differences-prevlink'); | |||
else if(type==1) var anothercurrentid = document.getElementById('differences-nextlink'); | |||
anothercurrentid = anothercurrentid.getAttribute('href').match(/oldid\=(\d+)/); | |||
anothercurrentid = RegExp.$1; | |||
} | |||
if (req = newRequest()) { | |||
if(UrlParameters["diff"]) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+anothercurrentid+'&rvlimit='+revisionlimit+'&rvprop=ids&rvdir='+direction; | |||
} else { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+currentid+'&rvlimit='+(parseInt(revisionlimit)+1)+'&rvprop=ids&rvdir='+direction; | |||
} | |||
req.open("GET", text, false); | |||
req.send(""); | |||
var firstrevision = req.responseXML.getElementsByTagName("rev"); | |||
firstrevision = firstrevision[firstrevision.length-1].getAttribute('revid'); | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+firstrevision; | |||
} else { | |||
if(type==0) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+currentid+'&oldid='+firstrevision; | |||
else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+firstrevision+'&oldid='+currentid; | |||
} | |||
} | |||
} else if ((i>=numberrevisionjumperlength && i<=handt)|| i==(handt+1)) { | |||
if(UrlParameters["diff"]) { | |||
if(type==0) var currentid = document.getElementById('mw-diff-otitle1'); | |||
else if(type==1) var currentid = document.getElementById('mw-diff-ntitle1'); | |||
if(!currentid){ var currentid = document.getElementById('differences-nextlink'); } else { currentid = currentid.getElementsByTagName('a')[0]; } | |||
currentid = currentid.getAttribute('href').match(/oldid\=(\d+)/); | |||
currentid = RegExp.$1; | |||
if(type==0) var permanentid = document.getElementById('mw-diff-ntitle1'); | |||
else if(type==1) var permanentid = document.getElementById('mw-diff-otitle1'); | |||
if(!permanentid){ var permanentid = document.getElementById('differences-nextlink'); } else { permanentid = permanentid.getElementsByTagName('a')[0]; } | |||
permanentid = permanentid.getAttribute('href').match(/oldid\=(\d+)/); | |||
permanentid = RegExp.$1; | |||
} else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) { | |||
var currentid = mw.config.get('wgCurRevisionId'); | |||
var permanentid = currentid; | |||
} else if (mw.config.get('wgAction') == 'history') { | |||
var currentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value'); | |||
var permanentid = currentid; | |||
} else { | |||
var currentid = UrlParameters["oldid"]; | |||
var permanentid = currentid; | |||
} | |||
var req; | |||
if (req = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvstartid='+currentid+'&rvprop=timestamp&rvdir=older'; | |||
req.open("GET", text, false); | |||
req.send(""); | |||
var lasttimestamp = req.responseXML.getElementsByTagName("rev")[0].getAttribute('timestamp'); | |||
var lastminute = lasttimestamp.match(/([^\-]*)\-([^\-]*)\-([^T]*)T([^\:]*)\:([^\:]*)\:([^Z]*)Z/); | |||
lastyear = RegExp.$1; | |||
lastmonth = RegExp.$2; | |||
lastday = RegExp.$3; | |||
lasthour = parseInt(RegExp.$4); | |||
if (lasthour < 10) { lasthour = "0" + lasthour.toString(); } else { lasthour = lasthour.toString() } | |||
lastminute = RegExp.$5; | |||
lastsecond = RegExp.$6; | |||
var lastdate = Date.parse(lastmonth + ' ' + lastday + ' ' + lastyear + ' ' + lasthour + ':' + lastminute + ':' + lastsecond); | |||
if(i>=numberrevisionjumperlength && i<=handt) { | |||
var regexprevision = timerevisionjumper[i-numberrevisionjumperlength].match(/(\d+)(\D+)/); | |||
var regexpnumber = RegExp.$1; | |||
var regexptype = RegExp.$2; | |||
if(regexptype=='a') { var yearmatched = true; } else { var yearmatched = false; } | |||
if(regexptype=='m') { var monthmatched = true; } else { var monthmatched = false; } | |||
if(regexptype=='d') { var daymatched = true; } else { var daymatched = false; } | |||
if(regexptype=='h') { var hourmatched = true; } else { var hourmatched = false; } | |||
if(type==0) { | |||
if(yearmatched) { | |||
lastdate = lastdate-(parseInt(regexpnumber)*31557816000); | |||
} | |||
if(monthmatched) { | |||
lastdate = lastdate-(parseInt(regexpnumber)*(31557816000/12)); | |||
} | |||
if(daymatched) { | |||
lastdate = lastdate-(parseInt(regexpnumber)*86400000); | |||
} | |||
if(hourmatched) { | |||
lastdate = lastdate-(parseInt(regexpnumber)*3600000); | |||
} | |||
} else if(type==1) { | |||
if(yearmatched) { | |||
lastdate = lastdate+(parseInt(regexpnumber)*31557816000); | |||
} else if(monthmatched) { | |||
lastdate = lastdate+(parseInt(regexpnumber)*(31557816000/12)); | |||
} else if(daymatched) { | |||
lastdate = lastdate+(parseInt(regexpnumber)*86400000); | |||
} else if(hourmatched) { | |||
lastdate = lastdate+(parseInt(regexpnumber)*3600000); | |||
} | |||
} | |||
} else if (i==(handt+1)) { | |||
var getjumptime = prompt(configrevisionjumper[18], '1a 12m 30d 24h'); | |||
var newregularexp = /(\d*)(\D*)(\d*)?(\D*)?(\d*)?(\D*)?(\d*)?(\D*)?/; | |||
var regexprevision = newregularexp.exec(getjumptime); | |||
var yearmatched = false; | |||
var monthmatched = false; | |||
var daymatched = false; | |||
var hourmatched = false; | |||
for(d=1;d<regexprevision.length;d++){ | |||
if(regexprevision[d]) { | |||
if(regexprevision[d].search(/a/)!=-1) { | |||
if(type==0) { | |||
lastdate = lastdate-(parseInt(regexprevision[d-1])*31557816000); | |||
} else if(type==1) { | |||
lastdate = lastdate+(parseInt(regexprevision[d-1])*31557816000); | |||
} | |||
} | |||
if(regexprevision[d].search(/m/)!=-1) { | |||
if(type==0) { | |||
lastdate = lastdate-(parseInt(regexprevision[d-1])*(31557816000/12)); | |||
} else if(type==1) { | |||
lastdate = lastdate+(parseInt(regexprevision[d-1])*(31557816000/12)); | |||
} | |||
} | |||
if(regexprevision[d].search(/d/)!=-1) { | |||
if(type==0) { | |||
lastdate = lastdate-(parseInt(regexprevision[d-1])*86400000); | |||
} else if(type==1) { | |||
lastdate = lastdate+(parseInt(regexprevision[d-1])*86400000); | |||
} | |||
} | |||
if(regexprevision[d].search(/h/)!=-1) { | |||
if(type==0) { | |||
lastdate = lastdate-(parseInt(regexprevision[d-1])*3600000); | |||
} else if(type==1) { | |||
lastdate = lastdate+(parseInt(regexprevision[d-1])*3600000); | |||
} | |||
} | |||
} else { | |||
break; | |||
} | |||
} | |||
} | |||
var newdate = new Date(); | |||
newdate.setTime(lastdate); | |||
var newyear = newdate.getFullYear().toString(); | |||
var newmonth = newdate.getMonth()+1; | |||
if (newmonth < 10) { newmonth = "0" + newmonth; } | |||
var newday = newdate.getDate(); | |||
if (newday < 10) { newday = "0" + newday; } | |||
var newhour = newdate.getHours(); | |||
if (newhour < 10) { newhour = "0" + newhour; } | |||
var newminute = newdate.getMinutes(); | |||
if (newminute < 10) { var newminute2 = "0" + newminute; } else { var newminute2 = newminute; } | |||
var newsecond = newdate.getSeconds(); | |||
if (newsecond < 10) { newsecond = "0" + newsecond; } | |||
var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond; | |||
var req2; | |||
if (req2 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=older&rvstart='+newtime; | |||
req2.open("GET", text, false); | |||
req2.send(""); | |||
var lastrevision = req2.responseXML.getElementsByTagName("rev")[0]; | |||
if(!lastrevision){ | |||
var req3; | |||
if (req3 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime; | |||
req3.open("GET", text, false); | |||
req3.send(""); | |||
var lastrevision = req3.responseXML.getElementsByTagName("rev")[0]; | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid'); | |||
} else { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid'); | |||
} | |||
} | |||
} else { | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid'); | |||
} else { | |||
var thisrevid = lastrevision.getAttribute('revid'); | |||
if(thisrevid == mw.config.get('wgCurRevisionId')) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff=cur'+'&oldid='+permanentid; | |||
} else { | |||
if(type==0) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+thisrevid; | |||
else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+thisrevid+'&oldid='+permanentid; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} else if (i==(handt+2)) { | |||
if(UrlParameters["diff"]) { | |||
if(type==0) var permanentid = document.getElementById('mw-diff-ntitle1'); | |||
else if (type==1) var permanentid = document.getElementById('mw-diff-otitle1'); | |||
if(!permanentid){ var permanentid = document.getElementById('differences-nextlink'); } else { permanentid = permanentid.getElementsByTagName('a')[0]; } | |||
permanentid = permanentid.getAttribute('href').match(/oldid\=(\d+)/); | |||
permanentid = RegExp.$1; | |||
} else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) { | |||
var permanentid = mw.config.get('wgCurRevisionId'); | |||
} else if (mw.config.get('wgAction') == 'history') { | |||
var permanentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value'); | |||
} else { | |||
var permanentid = UrlParameters["oldid"]; | |||
} | |||
var actualdate = new Date(); | |||
var actualyear = actualdate.getFullYear().toString(); | |||
var actualmonth = actualdate.getMonth()+1; | |||
if (actualmonth < 10) { actualmonth = "0" + actualmonth; } | |||
var actualday = actualdate.getDate(); | |||
if (actualday < 10) { actualday = "0" + actualday; } | |||
var lasttime = false; | |||
while(!lasttime){ | |||
var getjumptime = prompt(configrevisionjumper[19], actualyear+'-'+actualmonth+'-'+actualday+' 00:00'); | |||
var lasttime = getjumptime.match(/([^\-]*)\-([^\-]*)\-(\S*)\s?([^\:]*)?\:?([^\b]*)?/); | |||
lastyear = RegExp.$1; | |||
lastmonth = parseInt(RegExp.$2); | |||
lastday = parseInt(RegExp.$3); | |||
lasthour = RegExp.$4; | |||
lastminute = RegExp.$5; | |||
} | |||
if (lastmonth < 10) { lastmonth = "0" + lastmonth.toString(); } else { lastmonth = lastmonth.toString() } | |||
if (lastday < 10) { lastday = "0" + lastday.toString(); } else { lastday = lastday.toString() } | |||
if (lasthour) { lasthour = parseInt(lasthour); if (lasthour == 0) { var lasthour2 = "00"; } else if (lasthour < 10) { var lasthour2 = "0" + lasthour.toString(); } else { var lasthour2 = lasthour.toString() } } | |||
if (lastminute) { lastminute = parseInt(lastminute); if (lastminute == 0) { var lastminute2 = "00"; } else if (lastminute < 10) { var lastminute2 = "0" + lastminute.toString(); } else { var lastminute2 = lastminute.toString() } } | |||
if (lasthour2 && lastminute2) { | |||
var lastdate = Date.parse(lastmonth + ' ' + lastday + ' ' + lastyear + ' ' + lasthour2 + ':' + lastminute2 + ':00'); | |||
} else { | |||
var lastdate = Date.parse(lastmonth + ' ' + lastday + ' ' + lastyear + ' 00:00:00'); | |||
} | |||
lastdate = lastdate-3600000; | |||
var newdate = new Date(); | |||
newdate.setTime(lastdate); | |||
var newyear = newdate.getFullYear().toString(); | |||
var newmonth = newdate.getMonth()+1; | |||
if (newmonth < 10) { newmonth = "0" + newmonth; } | |||
var newday = newdate.getDate(); | |||
if (newday < 10) { newday = "0" + newday; } | |||
var newhour = newdate.getHours(); | |||
if (newhour < 10) { newhour = "0" + newhour; } | |||
var newminute = newdate.getMinutes(); | |||
if (newminute < 10) { var newminute2 = "0" + newminute; } else { var newminute2 = newminute; } | |||
var newsecond = newdate.getSeconds(); | |||
if (newsecond < 10) { newsecond = "0" + newsecond; } | |||
var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond; | |||
var req6; | |||
if (req6 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=older&rvstart='+newtime; | |||
req6.open("GET", text, false); | |||
req6.send(""); | |||
var lastrevision = req6.responseXML.getElementsByTagName("rev")[0]; | |||
if(!lastrevision){ | |||
var req7; | |||
if (req7 = newRequest()) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime; | |||
req7.open("GET", text, false); | |||
req7.send(""); | |||
var lastrevision = req7.responseXML.getElementsByTagName("rev")[0]; | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid'); | |||
} else { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid'); | |||
} | |||
} | |||
} else { | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid'); | |||
} else { | |||
var thisrevid = lastrevision.getAttribute('revid'); | |||
if(thisrevid == mw.config.get('wgCurRevisionId')) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff=cur'+'&oldid='+permanentid; | |||
} else { | |||
if(type==0) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+thisrevid; | |||
else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+thisrevid+'&oldid='+permanentid; | |||
} | |||
} | |||
} | |||
} | |||
} else if (i==(handt+3)) { | |||
if(UrlParameters["diff"]) { | |||
if(type==0) var permanentid = document.getElementById('mw-diff-ntitle1'); | |||
else if (type==1) var permanentid = document.getElementById('mw-diff-otitle1'); | |||
if(!permanentid){ var permanentid = document.getElementById('differences-nextlink'); } else { permanentid = permanentid.getElementsByTagName('a')[0]; } | |||
permanentid = permanentid.getAttribute('href').match(/oldid\=(\d+)/); | |||
permanentid = RegExp.$1; | |||
} else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) { | |||
var permanentid = mw.config.get('wgCurRevisionId'); | |||
} else if (mw.config.get('wgAction') == 'history') { | |||
var permanentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value'); | |||
} else { | |||
var permanentid = UrlParameters["oldid"]; | |||
} | |||
if(type==0) { | |||
var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000'; | |||
var req = newRequest(); | |||
req.open("GET", text, true); | |||
req.onreadystatechange = function () { | |||
if(req.readyState == 4) { | |||
continuereq(req.responseXML.getElementsByTagName("rev")[0].getAttribute('revid')); | |||
} | |||
}; | |||
req.send(null); | |||
function continuereq(firstrevision) { | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+firstrevision; | |||
} else { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+firstrevision; | |||
} | |||
} | |||
} else if (type==1) { | |||
if(getoldid && !UrlParameters["diff"]) { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+mw.config.get('wgCurRevisionId'); | |||
} else { | |||
location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff=cur&oldid='+permanentid; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
// </nowiki> |