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

Content deleted Content added
1.7
1.8
Line 1:
/// Gadget-pageLinkHelper.js
/// 2014-12-1619 PerfektesChaos@de.wikipedia
/// Fingerprint:#0#7A65B6D314660A6E#
///<nowiki>
(function(mw,$){
"use strict";
var Version=1.78,Sign="pageLinkHelper",Signature="ext.gadget."+Sign,Config,Env,PLH;
Config={PermanentLink:{de"*":"PermaLink"},Redirect:{de:"Weiterleitung"},permTitle:{"*":"PermaLink"},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"},qqxTitle:{en:"lang=qqx"},translate:{"als":"de",
"bar":"de","dsb":"de",
"dsbfrr":"de","frrgsw":"de",
"gswhsb":"de","hsbksh":"de",
"kshlb":"de","lbnds":"de",
"ndspdc":"de","pdcpdt":"de",
"pdtpfl":"de","pflsli":"de",
"slistq":"de","stqvmf":"de",}
"vmf":"de"}
};
function $factory(access){
var space="4px",style="#808080B0C4DE 1px solid",$r=$("<div>");
$r.attr({"class":Sign,"id":access});
style="#808080 1px solid";
$r.css({"border-bottom":style,"border-left":style,
"background-color":"#FFFFFF","background":"rgba(255, 255, 255, 0.5)",
"float":"right","font-family":"monospace",
"margin-bottom":"1em","margin-left":"1em",
"margin-top":space,"padding-bottom":space,
"padding-right":space,"padding-left":space});
return $r;}
function $float($apply){
var r,sequence,suitable,$divanchor,$clear;
if(typeof Env.$anchorcorner==="undefined"){
Env.$anchorcorner=$("#firstHeading<div>");}
Env.$corner.attr({"class":Sign,"id":Sign+"Corner"});
if(Env.$anchor.length){
if(!Env.skin){
r=true;
Env.skin=mw.config.get("skin");}
if($apply){
switch(Env.skin){
$div=$("."+Sign);
case "cologneblue":
$div.remove();
suitable="firstHeading";
$div=$("<div>");
sequence="after";
$div.css({"clear":"left"});
break;
Env.$anchor.after($div);
case "modern":
Env.$anchor.after($apply);}}
suitable="contentSub";
sequence="before";
break;
case "monobook":
case "vector":
suitable="bodyContent";
sequence="prepend";
break;}
$anchor=$("#"+suitable);
if(!$anchor.length){
$anchor=$("#firstHeading");
sequence="after";}
if($anchor.length){
$anchor[sequence](Env.$corner);
$clear=$("<div>");
$clear.css({"clear":"left"});
Env.$corner.after($clear);
}else{
Env.$corner=false;}}
if(Env.$corner){
Env.$corner.empty();
Env.$corner.prepend($apply);
r=true;}
return r;}
function face(){
if(typeof mw.libs[Sign]!==="object"||!&&mw.libs[Sign]&&!PLH){
mw.libs[Sign]={};}
if(!PLH){
PLH=mw.libs[Sign];
PLH.vsn=Version;}}
function facet(applied){
var r;
face();
if(PLH&&typeof PLH[applied]!=="undefined"){
r=PLH[applied];}
return r;}
function facility(available){
var i,r,slang;
Line 66 ⟶ 93:
r=available.en;}}
return r;}
function fair(access,adapt,alter){
var r=access,el,r,say;
face();
if(alter){
if(typeof PLH.config==="object"&&PLH.config&&typeof PLH.config[access]==="object"){
r=alter;
}else{
r=access;}
if(PLH&&typeof PLH.config==="object"&&PLH.config&&typeof PLH.config[access]==="object"){
el=PLH.config[access];}
if(!el){
Line 78 ⟶ 109:
if(say){
r=say;
}else if(typeof adapt=alter!=="string"){
r=adapt;
}else{
r="???"+access+"???";}
}else{
Line 95 ⟶ 124:
r="???"+access+"???";}
return r;}
function featurefavorite(appliedapply){
var opt=facet(apply.signature),seed=null,slot="p-cactions",start="ca",got,r,re,skins,suffix,swap;
var r;
switch(typeof opt){
face();
case "boolean":
if(typeof PLH[applied]!=="undefined"){
if(opt){
r=PLH[applied];}
seed=false;
skins=true;
}else{
slot=false;}
break;
case "string":
seed=opt;
re=/^([a-z]+)-(.+)$/;
got=re.exec(seed);
if(got){
switch(got[1]){
case "p":
slot=seed;
seed=false;
switch(got[2]){
case "navigation":
start="n";
break;
case "tb":
start="t";
break;}
break;
case "ca":
break;
case "n":
slot="p-navigation";
break;
case "t":
slot="p-tb";
break;}}
break;}
if(slot&&seed===null){
if(!skins){
switch(typeof apply.skins){
case "boolean":
case "string":
skins=apply.skins;
break;}}
if(skins===true){
skins="|vector|";}
if(skins){
if(!Env.skin){
Env.skin=mw.config.get("skin");}
if(skins.indexOf(Env.skin)<0){
if(opt){
slot="p-tb";
start="t";
}else{
slot=false;}}
}else{
slot=false;}}
if(slot){
swap=apply.fun();
if(typeof apply.suffix==="string"){
suffix=apply.suffix;
}else{
suffix=apply.signature;}
if(seed){
seed="#"+seed;}
r=mw.util.addPortletLink(slot,swap,fair(apply.show,true),start+"-"+suffix,fair(apply.support,true),null,seed);}
return r;}
function fiat(apply,at){
Line 121 ⟶ 210:
$span.text(s);
$div.append($span);}}}
function flat(ahead){
var r;
if(ahead){
favorite({signature:"slangQQX",skins:false,fun: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;}
function flip(){
var sign=Sign+"Difflink",$div=$("#"+sign),got,i,id1,id2,j,re,show,$span;
Line 191 ⟶ 296:
if(Env.oldid){
$div.append($spanBeg.clone());
show=special+fair("PermanentLink",false,"PermaLink")+"/"+Env.oldid;
$a.attr({"href":mw.util.getUrl(show)+swift});
$a.text(show);
Line 200 ⟶ 305:
$a=$("<a>");}
$div.append($spanBeg);
show=special+fair("Redirect",false)+"/page/"+Env.curid;
$a.attr({"href":mw.util.getUrl(show)+swift});
$a.text(show);
Line 215 ⟶ 320:
$a.attr({"title":support});
$a.click(freeze);
$a.text(fair("permTitle",false,"PermaLink"));
$portlet.empty();
$portlet.append($a);
Line 228 ⟶ 333:
$portlet.empty();
$portlet.append($span);}}}}
function fresh(ahead){
var r;
var opt=feature("purge"),seed=null,slot="p-cactions",start="ca",got,re,swap;
if(ahead){
switch(typeof opt){
favorite({signature:"purge",skins:true,fun:fresh,show:"purgeTitle",support:"purgeTip",suffix:"purge"
case "boolean":
});
if(opt){
seed=false;
}else{
slot=false;}
break;
case "string":
seed=opt;
re=/^([a-z]+)-(.+)$/;
got=re.exec(seed);
if(got){
switch(got[1]){
case "p":
slot=seed;
seed=false;
switch(got[2]){
case "navigation":
start="n";
break;
case "tb":
start="t";
break;}
break;
case "ca":
break;
case "n":
slot="p-navigation";
break;
case "t":
slot="p-tb";
break;}}
break;}
if(slot&&seed===null){
Env.skin=mw.config.get("skin");
if(Env.skin!=="vector"){
slot=false;}}
if(slot){
Env.wgPageName=mw.config.get("wgPageName");
swapr=mw.util.getUrl(Env.wgPageName,{action:"purge"});}
return r;}
if(seed){
seed="#"+seed;}
mw.util.addPortletLink(slot,swap,fair("purgeTitle",true),start+"-purge",fair("purgeTip",true),null,seed);}}
function from(){
var caused,opts,show,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"});
Line 280 ⟶ 349:
last=(window.history.previous.indexOf(swap)>=0);}
if(!last){
opts=featurefacet("redirect");
if(opts&&typeof opts==="object"&&typeof opts.legacy==="boolean"){
legacy=opts.legacy;}
Line 315 ⟶ 384:
$a.attr("href",strip);}}}}}
function fire(){
Env={skin:false,wgCanonicalSpecialPageName:
mw.config.get("wgCanonicalSpecialPageName")};
if(Env.wgCanonicalSpecialPageName){
Line 347 ⟶ 416:
}else{
freezer(true);}
fresh(true);
Env.wgRedirectedFrom=mw.config.get("wgRedirectedFrom");
if(Env.wgRedirectedFrom){
from();}
break;
case "info":
fresh(true);
break;
default:
freezer(true);}}}}
if(facet("slangQQX")){
flat(true);}}
if(mw.loader.getState(Signature)!=="ready"){
mw.loader.state(Signature,"ready");