MediaWiki:Gadget-importUtility.js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/// Gadget-importUtility.js
// Support sysop on importing and exporting pages
/// 2018-08-24 PerfektesChaos@de.wikipedia
// ResourceLoader: compatible; dependencies: NONE
// Namespaces: -1, 2, 4
// Documentation: [[w:de:Wikipedia:Technik/Skin/Gadgets/importUtility]]
/// Fingerprint: #0#0#
/// @license GPL [//www.mediawiki.org/w/COPYING] (+GFDL, LGPL, CC-BY-SA)
// In memoriam Lady Whistler.
/// <nowiki>
/* global window: false */
/* jshint bitwise:true, curly:true, eqeqeq:true, latedef:true,
laxbreak:true,
nocomma:true, strict:true, undef:true, unused:true */
( function ( mw ) {
"use strict";
var Version = 0.901,
IUTIL = "importUtility",
MaxAge = 604800,
SIGNATURE = "ext.gadget." + IUTIL;
if ( ! mw.loader.getState( SIGNATURE ) ) {
( function () {
var rls = { };
rls[ SIGNATURE ] = "loading";
mw.loader.state( rls );
}() );
}
if ( typeof mw.libs[ IUTIL ] !== "object" ||
! mw.libs[ IUTIL ] ) {
mw.libs[ IUTIL ] = { };
}
mw.libs[ IUTIL ].type = IUTIL;
IUTIL = mw.libs[ IUTIL ];
if ( typeof IUTIL.vsn === "string" ) {
IUTIL.vsn = "!=" + Version + " " + IUTIL.vsn;
} else {
IUTIL.vsn = "*=" + Version;
}
IUTIL.signature = SIGNATURE;
if ( typeof IUTIL.doc !== "string" ) {
if ( typeof IUTIL.cnf !== "object" || ! IUTIL.cnf ) {
IUTIL.cnf = { };
}
IUTIL.cnf.dewiki = { archive:
{ offer: [ false, false ],
sectDone: "(erl.)",
sectTerm: "(erledigt)",
solved: "{{Erledigt|",
stop: "{{Nicht archivieren"
+ "|Zeigen=nein}}"
},
difflink:
{ start: "<init time=\"",
suggest: "Antrag"
},
edit:
{ delIss: [ true, true ],
shift: "\\* *'''Ziel:''' *"
+ "\\[{{fullurl:"
+ "([^|\n]*)"
+ "\\|action=history",
sketch: "Versionsanzahl:",
source: "\\* *'''Fremdlemma:''' *"
+ "\\[{{fullurl:"
+ "([a-z][-_a-z]+):"
+ "([^#|\n]+).*"
+ "\\|action=history",
staff: "Versionen",
swap: "{{Anfrage auf Upload stellen}}"
},
// lenient: false, // permit template request
hold:
{ section: "(in Arbeit)",
stamp: "/In Arbeit"
},
listed:
{ search: "Wikipedia:Importwünsche/"
+ "Teilimport"
},
notify:
{ sect: "Dein Importwunsch zu"
+ " [[:{{{s}}}]]",
skeleton: "Wikipedia:Importwünsche/"
+ "Benutzernachricht"
},
quiet:
{ source: "Wikipedia:Importwünsche/Robinson"
},
spec:
{ "sourceTW": "WP:IMP",
"sourceIU": "WP:IU"
},
table:
{ source: "Benutzer:Importartikel",
support: "Importwünsche/Wartung"
},
minutes: 60, // timeoffset
section: "h2",
slang: "de",
submitUP: "Importwünsche/Importupload",
submitTW: "Importwünsche"
}; // 2015-07-05
IUTIL.doc = "[[w:de:Wikipedia:"
+ "Technik/Skin/Gadgets/importUtility]]";
}
function family() {
// Establish appropriate project configuration
// Uses:
// > .cnf.(DBname)
// < .cnf.project
// mw.config.get()
// mw.log()
// window.alert()
// 2014-09-28 PerfektesChaos@de.wikipedia
var self = mw.config.get( "wgDBname" ),
r;
if ( typeof IUTIL.cnf[ self ] === "object" ) {
IUTIL.cnf.project = IUTIL.cnf[ self ];
r = true;
} else {
mw.log( {loud:true}, "IUTIL family() " + self, 4 );
window.alert( "importUtility *FATAL* Unknown wiki: " + self );
r = false;
}
return r;
} // family()
function fetch( access ) {
// Make module available
// Precondition:
// access -- identifier of module
// Postcondition:
// Returns true, if module already available and ready
// Uses:
// > .signature
// > MaxAge
// > .type
// mw.loader.getState()
// mw.config.get()
// mw.loader.load()
// 2015-11-06 PerfektesChaos@de.wikipedia
var r = false,
signature = IUTIL.signature + "." + access,
maxage = 0,
server = "//de.wikipedia.beta.wmflabs.org";
if ( mw.loader.getState( signature ) ) {
if ( typeof IUTIL[ access ] === "object" ) {
r = ( typeof IUTIL[ access ].fire === "function" );
}
} else {
if ( mw.config.get( "wgServer" ) !== server ) {
server = "https://de.wikipedia.org";
maxage = MaxAge;
}
mw.loader.load( server + "/w/index.php?title="
+ "MediaWiki:Gadget-"
+ IUTIL.type + "/" + access + ".js"
+ "&bcache=1&maxage=" + maxage
+ "&action=raw&ctype=text/javascript",
"text/javascript" );
}
return r;
} // fetch()
function fire() {
// Start additional tasks
// Uses:
// > .start
// fetch()
// 2018-08-24 PerfektesChaos@de.wikipedia
var launch = fetch( "utl" );
if ( fetch( IUTIL.start ) && launch ) {
IUTIL[ IUTIL.start ].fire();
}
} // fire()
function first() {
// Start additional tasks, obey user options
// Uses:
// mw.loader.using()
// (fire)
// 2018-08-24 PerfektesChaos@de.wikipedia
mw.loader.using( [ "user" ],
fire );
} // first()
IUTIL.fire = function () {
// Analyze any page loading; try async ressource loading first
// Uses:
// this
// document
// > .cnf.project.submitTW
// > .cnf.project.submitUP
// > .cnf.project.table.support
// > .type
// > .signature
// < .mode
// < .start
// mw.config.get()
// family()
// first()
// mw.loader.state()
// 2018-08-24 PerfektesChaos@de.wikipedia
var env = mw.config.get( [ "wgAction",
"wgNamespaceNumber" ] ),
rls = { },
launch, s;
switch ( env.wgNamespaceNumber ) {
case -1 : // Special:
switch ( mw.config.get( "wgCanonicalSpecialPageName" ) ) {
case "Import" :
this.mode = -1;
break;
case "Export" :
this.mode = -9;
break;
default:
this.mode = 0;
} // switch wgCanonicalSpecialPageName
if ( this.mode && family() ) {
this.start = "spec";
}
break;
case 2 : // User:
if ( env.wgAction === "edit" ) {
s = "&" + this.type + "=";
if ( window.document.URL.indexOf( s ) > 0
&& family() ) {
this.mode = 10;
this.start = "mod";
}
}
break;
case 4 : // Project:
s = "|view|edit|submit|";
if ( s.indexOf( env.wgAction ) > 0 ) {
if ( env.wgAction === "edit" ) {
launch = ( window.document.URL.indexOf( "§ion=" )
> 0 );
} else {
launch = true;
}
if ( launch && family() ) {
switch ( mw.config.get( "wgTitle" ) ) {
case this.cnf.project.submitTW :
this.mode = 1;
this.start = "proj";
break;
case this.cnf.project.submitUP :
this.mode = 2;
this.start = "proj";
break;
case this.cnf.project.table.support :
this.mode = 3;
this.start = "table";
break;
} // switch wgTitle
}
}
break;
} // switch wgNamespaceNumber
if ( typeof IUTIL.start === "string" ) {
first();
}
rls[ IUTIL.signature ] = "ready";
mw.loader.state( rls );
}; // .fire()
if ( typeof IUTIL.loaded === "boolean" ) {
if ( typeof IUTIL.start === "string" && family() ) {
first();
}
} else {
IUTIL.loaded = true;
IUTIL.fire();
}
}( window.mediaWiki, window.jQuery ) );
// Emacs
// Local Variables:
// coding: utf-8-dos
// fill-column: 80
// End:
/// EOF importUtility.js </nowiki>