User:PerfektesChaos/js/pageLinkHelper/r.js: Difference between revisions

Content deleted Content added
1.1
1.2
Line 1:
/// Gadget-pageLinkHelper.js
/// 2014-12-0607 PerfektesChaos@de.wikipedia
/// Fingerprint:#0#29ACEBC1B086D209#
///<nowiki>
(function(mw,$){
"use strict";
var VERSION=1.12,Env,PLH;
function feature(applied){
var r;
PLH=if(typeof mw.libs.pageLinkHelper;==="object"){
causePLH={caused:"mw.libs.pageLinkHelper"};
if(PLH){
PLH.vsn=VERSION;
if(typeof PLH[applied]!=="undefined"){
r=PLH[applied];}}}
return r;}
function flip(){
var sign="pageLinkHelperDifflink",$div=$("#"+sign),got,i,id1,id2,j,re,show,$container,$span;
if(!$div.length){
$container=$("#contentSub");
Line 21 ⟶ 30:
id2=mw.util.getParamValue("oldid");}
if(id1){
i=parseInt(id2id1,10);
if(id2){
if(!isNaN(i)){
i=parseInt(id2,10);
id2i=id1;
if(!isNaN(i)){
id1=parseInt(id1,10)id2;
id2=i;
if(id1>i){
}else{
id2=id1;
j=parseInt(id2,10);
id1=i;}}}
if(!isNaN(j)){
if(i>j){
id2=i;
id1=ij;}}}
if(id2==="prev"){
id2=false;}
}else if(isNaN(i)){
id1=false;}}
if(id1>i){
show="[["+mw.config.get("wgFormattedNamespaces")["-1"]+":Diff/"+id1+(id2?"/"+id2:"")+"]]";
$span=$("<code>");
Line 33 ⟶ 52:
$div=$("<div>");
$div.attr({"id":sign});
$div.css({"float":"right","margin-top":"1em"});
$div.append($span);
$container.append($div);}}}}
function fresh(){
var opt=feature("purge"),say="PURGE this page from server cache",seed=null,slot="p-cactions",show="Purge cache",start="ca",got,re,swap;
ifswitch(typeof mw.libs.pageLinkHelper==="object"opt){
PLH=mw.libs.pageLinkHelper;
if(PLH){
PLH.vsn=VERSION;
switch(typeof PLH.purge){
case "boolean":
if(PLH.purgeopt){
seed=false;
}else{
Line 50 ⟶ 65:
break;
case "string":
seed=PLH.purgeopt;
re=/^([a-z]+)-(.+)$/;
got=re.exec(seed);
Line 74 ⟶ 89:
slot="p-tb";
break;}}
break;}}}
if(slot&&seed===null){
Env.skin=mw.config.get("skin");
Line 86 ⟶ 101:
mw.util.addPortletLink(slot,swap,show,start+"-purge",say,null,seed);}}
function from(){
var causecaused,opts,show,last,legacy,showed,state,swap;
if(typeof window.history.___pushState==="function"&&typeof window.history.___replaceState==="function"){
swap=mw.util.getUrl(Env.wgRedirectedFrom,{redirect:"no"});
Line 92 ⟶ 107:
last=(window.history.previous.indexOf(swap)>=0);}
if(!last){
opts=feature("redirect");
cause={caused:"pageLinkHelper"};
if(opts&&typeof opts==="object"&&typeof opts.legacy==="boolean"){
legacy=opts.legacy;}
caused={caused:"pageLinkHelper"};
showed=window.document.title;
if(legacy){
state=window.___location.href;
state=mw.util.getUrl(Env.wgRedirectedFrom);
}else{
state=window.___location.href;}
show="#REDIRECT "+Env.wgRedirectedFrom;
window.history.___replaceState(causecaused,show,swap);
window.history.___pushState(causecaused,showed,state);}}}
function fire(){
Env=mw.config.get(["wgAction","wgCanonicalSpecialPageName","wgRedirectedFrom"]);
Line 103 ⟶ 124:
flip();
}else if(!Env.wgCanonicalSpecialPageName&&Env.wgAction==="view"){
mw.loader.using(["user"],fresh();
if(Env.wgRedirectedFrom){
from();}}}
if(mw.loader.state("ext.gadget.pageLinkHelper")!=="ready"){
mw.loader.state("ext.gadget.pageLinkHelper","ready");
mw.loader.using(["mediawiki.util","user"],function(){
mw.hook("wikipage.content").add(fire);}
$(fire);
});}
}(window.mediaWiki,window.jQuery));
/// EOF</nowiki>pageLinkHelper.js