Content deleted Content added
2.1 |
2.3 |
||
Line 1:
/// Gadget-pageLinkHelper.js
///
/// Fingerprint:#0#
///<nowiki>
(function(mw,$){
"use strict";
var Version=2.
Config={PermanentLink:{"*":"PermaLink"},Redirect:{de:"Weiterleitung"},permTitle:{"*":"PermaLink"},purgeLUtip:{en:"PURGE this page and force link update",de:"PURGE mit rekursivem Linkupdate"},purgeLUtitle:{en:"PURGE/linkupdate",de:"PURGE/linkupdate"},purgeLURtip:{en:"PURGE this page and force recursive link update",de:"PURGE mit rekursivem Linkupdate"},purgeLURtitle:{en:"PURGE/recursive",de:"PURGE/rekursiv"},purgeLURGtip:{en:"PURGE related pages and force recursive link update",de:"PURGE bezogener Seiten mit rekursivem Linkupdate"},purgeLURGtitle:{en:"PURGE/recursive related pages",de:"PURGE/rekursiv bezogene Seiten"},purgeTip:{en:"PURGE this page from server cache",de:"PURGE: Diese Seite im Server-Cache aktualisieren"},purgeTitle:{en:"Purge cache",de:"Seite purgen"},qqxTip:{en:"Reload and show interface element IDs",de:"Neu laden und MediaWiki-IDs zeigen"},qqxTitle:{en:"lang=qqx"},translate:{"als":"de",
"bar":"de","dsb":"de",
"frr":"de","gsw":"de",
Line 14:
"pfl":"de","sli":"de",
"stq":"de","vmf":"de"}
};
function $factory(access){
Line 114 ⟶ 101:
}else{
r=access;}
if(typeof PLH.config==="object"&&PLH.config&&typeof PLH.config[access]==="object"){
el=PLH.config[access];}
if(!el){
Line 212 ⟶ 198:
function feed(about,alter,assign){
window.history.___replaceState(about,alter,assign);}
function
if(mw.loader.getState(Signature)!=="ready"){
mw.loader.state(Signature,"ready");
mw.loader.using(["mediawiki.api","mediawiki.user","mediawiki.util","user","user.options"],OPTS.fire);}}
function first(){
var embed,i,linkUpdate,s;
Env={skin:false,wgCanonicalSpecialPageName:
mw.config.get("wgCanonicalSpecialPageName"),wgFormattedNamespaces:false,wgNamespaceNumber:false,wgPageName:false
};
if(Env.wgCanonicalSpecialPageName){
switch(Env.wgCanonicalSpecialPageName){
case "Contributions":
URL2i.forward(2);
break;
case "Diff":
Diff.flip();
break;
case "Whatlinkshere":
Env.wgNamespaceNumber=-1;
if(OPTS.facet("forcerecursivelinkupdate")){
Env.wgFormattedNamespaces=mw.config.get("wgFormattedNamespaces");
Env.wgRelevantPageName=mw.config.get("wgRelevantPageName");
embed=[10,828];
for(i=0;i<embed.length;i++){
s=embed[i]+"";
s=Env.wgFormattedNamespaces[s]+":";
if(Env.wgRelevantPageName
.substr(0,s.length)===s){
Purge.freshissimo();
break;}}}
break;
case "Recentchanges":
case "Watchlist":
if(!mw.user.options.get("gadget-navigation-popups")){
URL2i.forward(1);}
break;
case "Gadgets":
break;}
}else{
Env.diff=mw.util.getParamValue("diff");
Env.oldid=mw.util.getParamValue("oldid");
if(Env.diff){
Diff.flip();
}else{
linkUpdate=true;
Env.wgAction=mw.config.get("wgAction");
switch(Env.wgAction){
case "history":
Hist.further();
break;
case "view":
Env.curid=mw.util.getParamValue("curid");
if(Env.curid||Env.oldid){
Perm.furnish(true);
}else{
Perm.flip(true);}
Purge.fresh(true);
Env.wgRedirectedFrom=mw.config.get("wgRedirectedFrom");
if(Env.wgRedirectedFrom){
Redir.from();}
Env.wgNamespaceNumber=mw.config.get("wgNamespaceNumber");
if(Env.wgNamespaceNumber===14&&OPTS.facet("forcerecursivelinkupdate")){
Purge.freshissimo();}
break;
case "info":
Purge.fresh(true);
break;
case "edit":
case "submit":
linkUpdate=false;
default:
Perm.flip(true);}
if(linkUpdate){
if(OPTS.facet("forcelinkupdate")){
Purge.fresher(true);}
if(OPTS.facet("forcerecursivelinkupdate")){
Purge.freshest(true);}}}}
if(OPTS.facet("slangQQX")){
QQmsg.flat(true);}
mw.hook(Sign+".ready").fire(PLH);}
OPTS.facet=function(applied){
var r;
if(typeof PLH[applied]!=="undefined"){
r=PLH[applied];}
if(OPTS.user&&typeof OPTS.user[applied]!=="undefined"){
r=OPTS.user[applied];
PLH[applied]=r;}
return r;
};
OPTS.features=function(apply){
if(typeof OPTS.user==="undefined"){
if(typeof apply==="object"&&apply){
OPTS.user=apply;
}else{
OPTS.user=false;}}
};
OPTS.fire=function(){
mw.user.options.set("gadget-"+Sign,Version);
if(typeof mw.libs[Sign]==="object"&&mw.libs[Sign]){
PLH=mw.libs[Sign];
}else{
PLH.type=Sign;
PLH.vsn=Version;
PLH.doc="[["+Shop+Sign+"]]";
mw.hook(Sign+".before").add(OPTS.features);
PLH.fresh=Purge.foreign;
$(first);
};
Diff.flip=function(){
var link=false,msec=500,opt=OPTS.facet("diff"),sign=Sign+"Difflink",caused,got,i,id1,id2,j,re,selector,shift,show,story,swap,$a,$div,$span,$spanB,$spanE;
switch(typeof opt){
Line 323 ⟶ 402:
}else{
window.history.___replaceState(caused,show,shift);}}}}
Perm.flip(true);
};
Hist.further=function(){
var n=3,opt=OPTS.facet("history"),scan;
switch(typeof opt){
Line 386 ⟶ 421:
n=0;}
if(n>=1){
URL2i.forward(n,scan);
};
Perm.fiat=function(apply,at){
var $div=$("#mw-diff-"+at+"title1"),id,s,$a,$span;
Line 503 ⟶ 480:
Env.oldid=mw.config.get("wgCurRevisionId");}
$div=$factory(sign);
Env.wgFormattedNamespaces=mw.config.get("wgFormattedNamespaces");}
special=Env.wgFormattedNamespaces["-1"]+":";
swift="?title="+mw.util.wikiUrlencode(Env.wgPageName);
$spanBeg=$("<span>");
Line 528 ⟶ 507:
$float($div);
Perm.flip(false);}
};
Purge.fail=function(arrived,add){
if(typeof window.console==="object"&&typeof arrived==="string"){
if(typeof window.console.log==="function"){
window.console.log(arrived);}
if(typeof add==="object"&&add&&typeof window.console.dir==="function"){
window.console.dir(add);}}
};
Purge.feed=function(){
Purge.Api.post(Purge.request).done(Purge.further).fail(Purge.fail);
};
Purge.fiat=function(additional,already){
var o=new mw.Api({parameters:{action:"purge"}}),p;
if(already){
p=already;
}else{
p={pageids:Env.curid};}
if(additional){
p[additional]=true;}
o.post(p).done(function(){window.___location.reload(true);});
};
Purge.first=function(){
Line 534 ⟶ 533:
return Env.curid;
};
Purge.
var many=50,e,i,m,p,q,s,stage;
case 1:
stage="forcelinkupdate";
break;
case 2:
stage="forcerecursivelinkupdate";
break;
case "forcelinkupdate":
case "forcerecursivelinkupdate":
stage=additional;
break;
default:
stage="";}
if(typeof allow==="number"&&allow>many){
many=allow;}
if(typeof array==="object"&&array&&typeof array.length==="number"&&array.length){
e=array[0];
s=typeof e;
switch(s){
case "number":
p={pageids:e};
q=p.pageids;
break;
case "":
p={titles:e};
q=p.titles;
break;}
if(p){
m=many-1;
for(i=1;i<array.length;i++){
if(m){
e=array[i];
if(typeof e===s){
if(s==="number"&&e<0){
e=0;}
if(e){
q=q+"|"+e;
m--;}}
}else{
break;}}}}
if(!p){
switch(Env.wgNamespaceNumber){
case-1:
switch(Env.wgCanonicalSpecialPageName){
case "Whatlinkshere":
p=false;
break;}
break;
case 14:
p=false;
break;}}
if(p===false){
Purge.full(stage);
}else{
Purge.fiat(stage,p);}
};
Purge.fresh=function(ahead){
Line 564 ⟶ 615:
Purge.fiat("forcerecursivelinkupdate");}
};
Purge.freshissimo=function(){
Purge.portlet=favorite({signature:"forcerecursivelinkupdate",skins:false,forward:Purge.full,show:"purgeLURGtitle",support:"purgeLURGtip",suffix:"purgeGenLinkUpdRec"
});
};
Purge.full=function(additional){
var many=20,p;
switch(Env.wgNamespaceNumber){
case-1:
switch(Env.wgCanonicalSpecialPageName){
case "Whatlinkshere":
p={generator:"embeddedin",geititle:Env.wgRelevantPageName,geilimit:many};
break;}
break;
case 14:
p={generator:"categorymembers",gcmpageid:Env.curid,gcmtype:"page|file",gcmlimit:many};
break;}
if(p){
if(typeof additional==="string"){
if(additional){
p[additional]=true;}
}else{
p.forcerecursivelinkupdate=true;}
Purge.Api=new mw.Api({parameters:{action:"purge"}});
Purge.request=p;
Purge.feed();}
};
Purge.further=function(arrived){
var msec=61000;
if(typeof Purge.portlet==="object"){
$(Purge.portlet).remove();
Purge.portlet=false;}
if(typeof arrived["continue"]==="object"&&typeof arrived.warnings!=="object"){
$.extend(Purge.request,arrived["continue"]);
window.setTimeout(Purge.feed,msec);}
};
QQmsg.flat=function(ahead){
var r;
if(ahead){
favorite({signature:"slangQQX",skins:false,fun:QQmsg.flat,show:"qqxTitle",support:"qqxTip",suffix:"langQQX"
});
}else{
r=window.___location.href;
r=r.replace(/^(.+)#.+$/,"$1")
.replace(/([?&])uselang=[^&]*(&.*)?$/,"$1$2");
if(!/[?&]$/.test(r)){
if(r.indexOf("?")>0){
r=r+"&";
}else{
r=r+"?";}}
r=r+"uselang=qqx";}
return r;
};
Redir.from=function(){
var caused,opt,last,legacy,show,showed,state,swap;
if(typeof window.history.___pushState==="function"&&typeof window.history.___replaceState==="function"){
swap=mw.util.getUrl(Env.wgRedirectedFrom,{redirect:"no"});
if(window.history.previous){
last=(window.history.previous.indexOf(swap)>=0);}
if(!last){
opt=OPTS.facet("redirect");
if(opt&&typeof opt==="object"&&typeof opt.legacy==="boolean"){
legacy=opt.legacy;}
showed=window.document.title;
caused={caused:Sign};
if(legacy){
state=mw.util.getUrl(Env.wgRedirectedFrom);
}else{
state=window.___location.href;}
show="#REDIRECT "+Env.wgRedirectedFrom;
window.history.___replaceState(caused,show,swap);
window.history.___pushState(caused,showed,state);}}
};
URL2i.forward=function(amount,alike){
var $results=$("#mw-content-text li"),n=$results.length,i,j,shift,special,start,strip,$a,$li;
if(n){
special="/wiki/"+mw.config.get("wgFormattedNamespaces")["-1"]+":";
for(i=0;i<n;i++){
$li=$results.eq(i).find("a");
for(j=0;j<amount;j++){
$a=$li.eq(j);
strip=$a.attr("href");
if(strip&&strip.substr(0,3)==="/w/"){
start=mw.util.getParamValue("oldid",strip);
if(start){
strip=strip.replace(/&oldid=\d+\b/,"")
.replace(/&curid=\d+\b/,"");
shift=mw.util.getParamValue("diff",strip);
if(shift){
strip=strip.replace(/&diff=\d+\b/,"");
shift="Diff/"+start+"/"+shift;
}else if(alike){
shift=false;
}else{
shift="PermaLink/"+start;}
if(shift){
shift=special+shift+"$1";
strip=strip.replace(/^.+(\?title=.+)$/,shift);
$a.attr("href",strip);}}}}}}
};
fire();
}(window.mediaWiki,window.jQuery));
/// EOF</nowiki>pageLinkHelper.js
|