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

Content deleted Content added
1.3
1.9
 
(5 intermediate revisions by the same user not shown)
Line 1:
/// User:PerfektesChaos/js/clickDivertimento/r.js
/// 20152019-1007-0324 PerfektesChaos@de.wikipedia
/// Fingerprint:#0#997305C25887D8CD#
/// @license GPL [//www.mediawiki.org/w/COPYING](+GFDL,LGPL,:CC-BYby-SA)sa/4.0
/// Documentation:[[w:en:User:PerfektesChaos/js/clickDivertimento]]
///<nowiki>
(function(mw,$){
"use strict";
var vsnVersion=1.39,CDV="clickDivertimento",Config={},Prego={};
if(typeof mw.libs[CDV]!=="object"||!mw.libs[CDV]){
mw.libs[CDV]={};}
Line 12 ⟶ 13:
CDV=mw.libs[CDV];
if(typeof CDV.vsn!=="number"){
CDV.vsn=vsnVersion;
CDV.signature="ext.gadget."+CDV.type;
CDV.support="User:PerfektesChaos/js/"+CDV.type;
Line 18 ⟶ 19:
Config.pages=["en","de"];
Config.texts={
"^show":{"en":"Click-Divertimento",
"de":"Click-Divertimento"},
"^suffix":{"en":"&#8211; Open links in new browser window",
"de":"&#8211; Links in neuem Browserfenster öffnen"},
"^^large":{"en":"Include more list pages",
"de":"Weitere Seiten mit Listen einschließen"},
"^^leave":{"en":"All external links shall be opened in new browser window",
"de":"Alle externen Links in neuem Browserfenster öffnen"},
"^^mode":{"en":"Create entirely new window",
"de":"Völlig neues Fenster öffnen"},
"^^mode0":{"en":"For all diverted targets",
"de":"Immer, wenn ein Link beeinflusst wird"},
"^^mode1":{"en":"Shared windows for the same tasks",
"de":"Wiederbenutzung für gleiche Aufgaben"},
"^^mode2":{"en":"All in the same different window",
"de":"Alle im selben Zweitfenster"}
};}
Config.features=function(){
var pars=[["large","boolean"],["leave","boolean"],["mode","number"]],n=pars.length,i,s,v,vals;
for(i=0;i<n;i++){
v=pars[i];
s=v[0];
if(typeof CDV[s]===v[1]){
this[s]=CDV[s];
}else{
this[s]=false;}}
Prego.lib=mw.libs[Prego.supply];
if(typeof Prego.lib==="object"&&Prego.lib&&typeof Prego.lib.fetch==="function"){
vals=Prego.lib.fetch(CDV.type);
if(vals&&typeof vals==="object"){
for(i=0;i<n;i++){
v=pars[i];
s=v[0];
if(typeof vals[s]===v[1]){
this[s]=vals[s];}}}
}else{
Prego.lib=false;}
if(typeof CDV.targets==="object"&&CDV.targets&&this.mode){
this.targets={};
for(s in CDV.targets){
v=CDV.targets[s];
if(v){
switch(typeof v){
case "string":
v=[v];
break;
case "object":
if(typeof v.length!=="number"){
if(typeof v.ignoreCase==="boolean"){
v=[v];
}else{
v=false;}}
break;
default:
v=false;}
if(v){
this.targets[s]=v;}}}}
};
Prego.fire=function(){
var signature;
this.supply="preferencesGadgetOptions";
signature="ext.gadget."+this.supply;
if(!mw.loader.getState(signature)){
mw.loader.state(signature,"loading");
mw.loader.load("https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/"+this.supply+"/r.js&action=raw&bcache=1&maxage=604809&ctype=text/javascript","text/javascript");}
};
Prego.firing=function(){
mw.hook(Prego.supply+".ready").add(fire);
};
Prego.form=function(){
var pages={},poly=[],txt=Config.texts,dialog,i,s;
for(i=0;i<Config.pages.length;i++){
s=Config.pages[i];
pages[s]="//"+s+".wikipedia.org/wiki/"+CDV.support;}
for(i=0;i<3;i++){
poly.push({val:i,show:txt["^^mode"+i]});}
dialog={script:CDV.type,show:txt["^show"],support:pages,suffix:txt["^suffix"],opts:[{signature:"large",type:"checkbox",show:txt["^^large"],val:Config.large
},{signature:"leave",type:"checkbox",show:txt["^^leave"],val:Config.leave
},{signature:"mode",type:"radio",show:txt["^^mode"],val:Config.mode,poly:poly}]};
Prego.lib.form(dialog);
};
function fiat(){
var $hype=$(this),src=$hype.attr("href"),k=src.charCodeAt(0),cond,conds,i,shift;
Line 128 ⟶ 73:
shift=k;
break;}}}
if(shift&&!$hype.attr("target")){
$hype.attr("target",shift);}}}
function formfit(){
var $hype=$(this);
$(this).attr("target",Config.shift);}
if(!$hype.attr("target")){
$hype.attr("target",Config.shift);}}
function flyout(){
var suggestion="a.mw-searchSuggest-link",observer,$div;
if(typeof MutationObserver==="function"){
$div=$(".suggestions-results");
if($div.length){
observer=new MutationObserver(function(mutations){
mutations.forEach(function(){
$(suggestion).each(fit);
});
});
observer.observe($div.get(0),{childList:true});}}}
function furnish($area){
var scope,$hypes;
Line 167 ⟶ 125:
if(Config.kind===2&&Config.start==="history"){
scope=scope+", #mw-history-compare";}
$(scope).each(formfit);}}
mw.loader.using(["mediawiki.searchSuggest"],flyout);}}
function fire(){
Config.features=function(){
var pars=[["large","boolean"],["leave","boolean"],["mode","number"]],n=pars.length,i,s,v,vals;
for(i=0;i<n;i++){
v=pars[i];
s=v[0];
if(typeof CDV[s]===v[1]){
this[s]=CDV[s];
}else{
this[s]=false;}}
Prego.lib=mw.libs[Prego.supply];
if(typeof Prego.lib==="object"&&Prego.lib&&typeof Prego.lib.fetch==="function"){
vals=Prego.lib.fetch(CDV.type);
if(vals&&typeof vals==="object"){
for(i=0;i<n;i++){
v=pars[i];
s=v[0];
if(typeof vals[s]===v[1]){
this[s]=vals[s];}}}
}else{
Prego.lib=false;}
if(typeof CDV.targets==="object"&&CDV.targets&&this.mode){
this.targets={};
for(s in CDV.targets){
v=CDV.targets[s];
if(v){
switch(typeof v){
case "string":
v=[v];
break;
case "object":
if(typeof v.length!=="number"){
if(typeof v.ignoreCase==="boolean"){
v=[v];
}else{
v=false;}}
break;
default:
v=false;}
if(v){
this.targets[s]=v;}}}}
};
Config.fire=function(){
var i;
Config.features();
if(Config.learn){
Config.kind=4;
if(Prego.lib){
Prego.form();}
Line 200 ⟶ 201:
if(Config.leave){
Config.kind=1;}
break;}}}
if(Config.kind){
Config.source=window.___location.href;
Line 215 ⟶ 216:
default:
Config.shift="_blank";}
mw.hook("wikipage.content").add(furnish);}
}};
Prego.fire=function(){
var rls,signature;
this.supply="preferencesGadgetOptions";
signature="ext.gadget."+this.supply;
if(!mw.loader.getState(signature)){
rls={};
rls[signature]="loading";
mw.loader.state(rls);
mw.loader.load("https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/"+this.supply+"/r.js&action=raw&bcache=1&maxage=604809&ctype=text/javascript","text/javascript");}
};
Prego.firing=function(){
mw.hook(Prego.supply+".ready").add(Config.fire);
};
Prego.form=function(){
var pages={},poly=[],txt=Config.texts,dialog,i,s;
for(i=0;i<Config.pages.length;i++){
s=Config.pages[i];
pages[s]="//"+s+".wikipedia.org/wiki/"+CDV.support;}
for(i=0;i<3;i++){
poly.push({val:i,show:txt["^^mode"+i]});}
dialog={script:CDV.type,show:txt["^show"],support:pages,suffix:txt["^suffix"],opts:[{signature:"large",type:"checkbox",show:txt["^^large"],val:Config.large
},{signature:"leave",type:"checkbox",show:txt["^^leave"],val:Config.leave
},{signature:"mode",type:"radio",show:txt["^^mode"],val:Config.mode,poly:poly}]};
Prego.lib.form(dialog);
};
CDV.fire=function(){
var env,launch,rls;
var env=mw.config.get(["wgAction","wgCanonicalSpecialPageName","wgNamespaceNumber"]),launch=true;
if(mw.loader.stategetState(CDV.signature,)!=="ready");{
rls={};
rls[CDV.signature]="ready";
mw.loader.state(rls);
env=mw.config.get(["wgAction","wgCanonicalSpecialPageName","wgNamespaceNumber"]);
launch=true;
Config.learn=false;
if(env.wgNamespaceNumber===-1){
Config.special=env.wgCanonicalSpecialPageName;
switch(Config.special){
case "Blankpage":
case "Gadgets":
Config.learn=true;
Line 239 ⟶ 272:
if(launch){
Prego.fire();
mw.loader.using(["user","user.options"],Prego.firing);}}
};
CDV.fire();
if(typeof CDV.loaded!=="boolean"){
CDV.loaded=true;
CDV.fire();}
}(window.mediaWiki,window.jQuery));
/// EOF</nowiki>clickDivertimento/r.js