/// User:PerfektesChaos/js/remindErrorMessages/d.js
// Check rendered page whether HTML elements with class="error" occur
/// 2022-07-01 [email protected]
// ResourceLoader: compatible;
// dependencies: NONE
/// Fingerprint: #0#0#
/// @license: CC-by-sa/4.0 GPLv3
// Documentation: ]
/// <nowiki>
/* global window: false */
/* jshint forin: false,
bitwise:true, curly:true, eqeqeq:true, latedef:true,
laxbreak:true,
nocomma:true, strict:true, undef:true, unused:true */
( function ( mw, $ ) {
"use strict";
var Version = -2.6,
Sign = "remindErrorMessages",
Shop = "w:en:User:PerfektesChaos/js/",
Selectors = [ ".mw-error",
".mw-warning",
".error",
".warning",
".errorbox",
".warningbox",
".cm-error",
"div" ],
Submit = ".errorbox",
Category = { state: ".mw-hidden-catlinks",
submit: ".hiddencats",
track: [ "duplicate-args-category",
"expensive-parserfunction-category",
"graph-broken-category",
"kartographer-broken-category",
"math-tracking-category-error",
"math-tracking-category-render-error",
"node-count-exceeded-category",
"post-expand-template-argument-category",
"post-expand-template-inclusion-category",
"restricted-displaytitle-ignored",
"score-error-category",
"syntaxhighlight-error-category",
"templatestyles-page-error-category" ],
$hidden: false },
CodeMirr = { live: false },
Content = { $contentSub: false },
Repo = { minutes: 1440 },
This = { complaints: false,
config: false,
css: { bark: { "background-color": "#FFFF00",
"color": "#FF0000",
"font-size": "120%",
"font-weight": "bold" },
box: { "border-color": "#FF0000",
"border-style": "solid",
"border-width": "3px",
"font-size": "1rem",
"font-style": "normal",
"font-weight": "normal",
"line-height": "1.3rem",
"margin-top": "0.5rem",
"margin-bottom": "0.5rem",
"padding": "5px" },
preview:{ "background-color": "#FFDDDD",
"border-color": "#FF0000",
"border-style": "dashed",
"border-width": "2px",
"font-size": "0.8rem",
"line-height": "1.5rem",
"margin-top": "1rem",
"margin-bottom": "1.5rem",
"padding-top": "0.3rem",
"padding-bottom": "0.3rem",
"padding-left": "1rem",
"padding-right": "1rem" },
warn: { "background-color": "#FF0000",
"color": "#FFFF00",
"font-size": "150%",
"font-weight": "1000",
"margin-left": "0.5em",
"margin-right": "0.5em",
"padding-left": "0.5em",
"padding-right": "0.5em",
"padding-top": "4px",
"padding-bottom": "4px" }
},
options: { categories: "object",
hiddencats: "boolean",
maintCats: "number" },
opt: false,
shrink: "-invisible",
suppress: "-noContent",
unselect: [ "#editpage-copywarn-declaration",
"#mw-anon-preview-warning" ],
warnDrop:
};
Category.factory = function () {
// Create maintenance category titles object
// Precondition:
// mediawiki.api is ready
// mediawiki.storage is ready
// Uses:
// > Category.track
// >< Category.Api
// mw.Api.loadMessagesIfMissing()
// Category.feed()
// (Category.feed)
// (Category.fault)
// 2019-07-01 [email protected]
if ( typeof Category.track === "object"
&& Category.track &&
typeof Category.track.length === "number" ) {
if ( typeof Category.Api === "undefined" ) {
Category.Api = new mw.Api();
}
Category.Api.loadMessagesIfMissing( Category.track )
.done( Category.feed )
.fail( Category.fault );
} else {
Category.feed();
}
}; // Category.factory()
Category.fault = function ( jqXHR, textStatus, errorThrown ) {
// API query failure
// Precondition:
// Common failure call
// Uses:
// > Sign
// 2019-07-01 [email protected]
var scream;
if ( textStatus ) {
switch ( typeof textStatus ) {
case "object":
if ( typeof textStatus.textStatus === "string" ) {
scream = textStatus.textStatus;
} else {
scream = "";
}
if ( typeof textStatus.exception === "string"
&& textStatus.exception ) {
scream = scream + " (" + textStatus.exception + ")";
}
break;
case "string":
scream = textStatus;
break;
} // switch
}
if ( errorThrown ) {
if ( scream ) {
scream = scream + " -- Error: ";
}
scream = scream + errorThrown;
}
if ( ! scream ) {
scream = "???";
}
if ( typeof window.console === "object" &&
typeof window.console.log === "function" ) {
window.console.log( Sign + " * " + scream );
if ( typeof textStatus === "object"
&& textStatus &&
typeof window.console.dir === "function" ) {
window.console.dir( textStatus );
}
}
}; // Category.fault()
Category.feed = function ( answer ) {
// Build maintenance category titles object from system messages
// Precondition:
// answer -- messages, or false
// api.messages available
// mediawiki.storage is ready
// Uses:
// > Category.track
// > Category.$hidden
// >< Category.titles
// < Category.tracking
// < Category.parsing
// mw.message()
// Category.fire()
// Content.follow()
// Repo.flush()
// 2019-07-01 [email protected]
var i, s;
Category.tracking = false;
Category.parsing = false;
if ( answer ) {
for ( i = 0; i < Category.track.length; i++ ) {
s = Category.track;
if ( mw.messages.exists( s ) ) {
s = mw.message( s ).plain();
if ( s.indexOf( "\n" ) < 0 &&
s.indexOf( "{{" ) < 0 ) {
if ( typeof Category.tracking !== "object" ) {
Category.tracking = ;
}
Category.tracking.push( s );
if ( typeof Category.titles !== "object" ) {
Category.titles = { };
}
Category.titles = true;
} else {
if ( typeof Category.parsing !== "object" ) {
Category.parsing = ;
}
Category.parsing.push( s );
}
}
} // for i
}
if ( ! Category.$hidden ) {
Category.fire();
Content.follow();
}
Repo.flush();
}; // Category.feed()
Category.fetch = function () {
// Populate maintenance category information
// Precondition:
// mediawiki.storage is ready
// Uses:
// < Category.titles
// < Category.parsing
// Repo.first()
// Category.fire()
// Content.follow()
// Repo.fresh()
// mw.loader.using()
// (Category.factory)
// 2019-07-01 [email protected]
var repo = Repo.first(),
load;
if ( ! repo ||
typeof repo.titles === "undefined" ||
typeof repo.parsing === "undefined" ) {
load = true;
} else {
Category.titles = repo.titles;
Category.parsing = repo.parsing;
Category.fire();
Content.follow();
load = ! Repo.fresh();
}
if ( load ) {
mw.loader.using( ,
Category.factory );
}
}; // Category.fetch()
Category.filter = function ( $a ) {
// Decide whether category title is whitelisted
// Precondition:
// $a -- <a> with category link
// Postcondition:
// Return <a>, or nothing
// Uses:
// > Category.titles
// > Category.parsing
// > Category.user
// 2019-10-24 [email protected]
var c, i, re, r,
seek = $a.text();
if ( typeof Category.titles === "object"
&& Category.titles &&
typeof Category.titles === "boolean" ) {
r = true;
} else if ( typeof Category.parsing === "object"
&& Category.parsing &&
typeof Category.parsing.length === "number" ) {
re = new RegExp( "\\b" + seek + "\\b" );
for ( i = 0; i < Category.parsing.length; i++ ) {
if ( re.test( Category.parsing ) ) {
r = true;
break; // for i
}
} // for i
}
if ( ! r && Category.user ) {
for ( i = 0; i < Category.user.length; i++ ) {
c = Category.user;
switch ( typeof c ) {
case "string":
r = ( c === seek );
break; // switch
case "object":
case "function":
r = c.test( seek );
break; // switch
} // switch typeof c
if ( r ) {
break; // for i
}
} // for i
}
return ( r ? $a.clone() : false );
}; // Category.filter()
Category.fire = function () {
// Handler when page initiialized
// Uses:
// > Category.submit
// > Category.state
// > Category.limit
// < Category.$hidden
// Category.filter()
// 2019-07-01 [email protected]
var $wrap = $( Category.state ),
i, k, less, s, $div, $e, $li, $list, $ul;
if ( $wrap.length ) {
$e = $wrap.find( "ul" );
if ( $e.length ) {
$list = $e;
$e = $wrap.contents();
if ( $e.get( 0 ).nodeType === 3 ) {
$div = $( "<div>" );
$div.text( $e.eq( 0 ).text().trim() );
}
}
} else {
$wrap = $( Category.submit );
if ( $wrap.length ) {
$e = $wrap.find( "p" );
if ( $e.length ) {
$div = $( "<div>" );
$div.text( $e.text().trim() );
}
$list = $wrap.find( "ul" );
less = true;
}
}
if ( $div ) {
$list = $list.children();
for ( i = 0; i < $list.length; i++ ) {
$e = $list.eq( i ).find( "a" );
if ( $e.length ) {
if ( Category.limit ) {
$e = Category.filter( $e );
} else {
$e = $e.clone();
}
if ( $e ) {
$e.attr( { target: "maintCats" } );
if ( less ) {
s = $e.text().trim();
k = s.indexOf( ":" );
if( k > 0 ) {
s = s.substr( k + 1 );
$e.text( s );
}
}
$li = $( "<li>" );
$li.append( $e );
$ul = $ul || $( "<ul>" );
$ul.append( $li );
}
}
} // for i
if ( $ul ) {
Category.$hidden = $( "<div>" );
Category.$hidden.append( $div );
Category.$hidden.append( $ul );
}
}
}; // Category.fire()
CodeMirr.fiat = function () {
// Handler when CodeMirror changed
// Uses:
// > CodeMirr.cm
// > CodeMirr.$wrapper
// >< CodeMirr.complaints
// >< CodeMirr.many
// 2018-01-11 [email protected]
var i, learnt, $e, $errors, $li;
if ( CodeMirr.cm ) {
$errors = CodeMirr.$wrapper.find( ".cm-error" );
if ( $errors.length ) {
if ( ! CodeMirr.complaints ) {
CodeMirr.complaints = ;
CodeMirr.many = 0;
}
for ( i = 0; i < $errors.length; i++ ) {
$e = $errors.eq( i );
if ( ! $e.attr( "id" ) ) {
learnt = true;
CodeMirr.many++;
$e.attr( "id", "cm-error-" + CodeMirr.many );
}
} // for i
if ( learnt ||
$errors.length !== CodeMirr.complaints.length ) {
CodeMirr.complaints = ;
for ( i = 0; i < $errors.length; i++ ) {
$e = $errors.eq( i );
$li = $( "<li>" );
$li.attr( "id", $e.attr( "id" ) );
CodeMirr.complaints.push( $li );
} // for i
}
}
}
}; // CodeMirr.fiat()
CodeMirr.finish = function () {
// Handler when CodeMirror disabled
// Uses:
// < CodeMirr.cm
// 2017-09-03 [email protected]
CodeMirr.cm = null;
}; // CodeMirr.finish()
CodeMirr.fire = function ( application ) {
// Handler when CodeMirror enabled
// Precondition:
// application -- object
// Uses:
// >< CodeMirr.live
// < CodeMirr.cm
// < CodeMirr.complaints
// < CodeMirr.$wrapper
// mw.hook()
// (CodeMirr.finish)
// (CodeMirr.fiat)
// 2017-09-03 [email protected]
CodeMirr.cm = application;
if ( ! CodeMirr.live ) {
CodeMirr.live = true;
mw.hook( "CodeMirr.disabled" ).add( CodeMirr.finish );
CodeMirr.complaints = false;
}
CodeMirr.$wrapper = $( CodeMirr.cm.getWrapperElement() );
CodeMirr.cm.on( "change", CodeMirr.fiat );
}; // CodeMirr.fire()
CodeMirr.first = function () {
// Uses:
// > window.CodeMirror
// >< CodeMirr.cm
// mw.user.options.get()
// 2018-07-06 [email protected]
var r, uo;
if ( ! CodeMirr.cm &&
typeof window.CodeMirror === "function" &&
typeof window.CodeMirr.doc === "object" ) {
CodeMirr.cm = window.CodeMirror;
}
if ( CodeMirr.cm ) {
uo = mw.user.options.get( "usecodemirror" );
if ( typeof uo === "number"
&& uo > 0 ) {
r = CodeMirr.cm;
}
}
return r;
}; // CodeMirr.first()
Content.fine = function () {
// No HTML elements with class="error", cleanup if necessary
// Uses:
// > This.$box
// > This.$barWarn
// >< This.lapsus
// 2019-07-01 [email protected]
if ( This.lapsus ) {
This.$box.hide();
if ( typeof This.$barWarn === "object" ) {
This.$barWarn.hide();
}
This.lapsus = false;
}
}; // Content.fine()
Content.flip = function ( as, alert ) {
// Make HTML element visible, highlight and add content to survey
// Precondition:
// as -- sequence number
// alert -- DOM element
// Postcondition:
// Return true -- continue $.each()
// Uses:
// this -- DOM element
// > This.suppress
// > This.shrink
// > This.signed
// > Sign
// > This.complaints
// > This.css.bark
// > Content.selector
// 2019-09-20 [email protected]
var $e = $( alert ),
show, sign, $a;
if ( ! $e.hasClass( This.signed ) && // child already displayed
! $e.hasClass( This.suppress ) ) {
sign = $e.attr( "id" );
if ( ! sign ) {
sign = Sign + "_" + as;
$e.attr( { id: sign } );
}
$e.addClass( This.signed )
.css( This.css.bark );
show = $e.text().replace( /^(\s|\xA0| )+/, "" )
.replace( /(\s|\xA0| )+$/, "" );
if ( ! show ) {
show = "";
$e.text( "ERROR" + show );
}
$e.find( "a" ).css( { "text-decoration": "underline" } );
$a = $( "<a>" ).attr( { href: "#" + sign } )
.text( show );
This.complaints.push( $( "<li>" ).append( $a ) );
$e.parent().show();
$e.find( Content.selector ).addClass( This.signed );
}
return true;
}; // Content.flip()
Content.flop = function ( $alerts ) {
// HTML elements with class="error" etc. detected
// Precondition:
// $alerts -- jQuery elements of class="error"; or false
// Uses:
// > Content.$content
// > This.opts
// > This.action
// > Selectors
// > Submit
// > Stale
// > Category.$hidden
// >< This.$barWarn
// >< This.complaints
// >< This.css.bark
// >< This.css.box
// >< This.css.warn
// < This.$ul
// < This.$box
// < This.lapsus
// (Content.flip)
// 2022-07-01 [email protected]
var sign = Sign + "_box",
swift = "#" + sign,
view = { "display": null,
"visibility": "visible" },
$box = $( swift ),
i, $next;
if ( $alerts || Category.$hidden || $box.length ) {
if ( $box.length ) {
This.$ul.empty();
This.$box = $box;
This.$box.show();
} else {
This.$box = $( "<div>" );
This.$box.attr( "id", sign );
if ( This.opts ) {
if ( typeof This.opts.barkCSS === "object" ) {
$.extend( This.css.bark, This.opts.barkCSS );
}
if ( typeof This.opts.boxCSS === "object" ) {
$.extend( This.css.box, This.opts.boxCSS );
}
}
This.$box.css( This.css.box );
This.$ul = $( "<ul>" );
This.$box.append( This.$ul );
Content.$content.prepend( This.$box );
}
} else {
$( Submit ).eq( 0 ).attr( { id: sign } );
}
if ( This.action === "submit" ) {
if ( typeof This.$barWarn === "object" ) {
This.$barWarn.show();
} else {
$next = $( "#wpPreview" );
if ( $next.length ) {
This.$barWarn = $( "<a>" );
This.$barWarn.attr( { href: swift,
id: Sign + "_attention" } );
if ( This.opts
&& typeof This.opts.barCSS === "object" ) {
$.extend( This.css.warn, This.opts.barCSS );
}
This.$barWarn.css( This.css.warn );
This.$barWarn.text( "!" );
$next.before( This.$barWarn );
}
}
}
if ( $alerts ) {
This.complaints = ;
$alerts.each( Content.flip );
for ( i = 0; i < Selectors.length; i++ ) {
view.display = "block";
$( "div" + Selectors ).css( view );
view.display = "inline";
$( "span" + Selectors ).css( view );
} // for i
$( This.shrink ).empty();
}
if ( Category.$hidden ) {
This.complaints = This.complaints || ;
This.complaints.push( Category.$hidden );
}
This.lapsus = ( This.complaints.length );
if ( This.lapsus ) {
for ( i = 0; i < This.complaints.length; i++ ) {
This.$ul.append( This.complaints );
} // for i
}
}; // Content.flop()
Content.follow = function () {
// Launch main task and listeners
// Uses:
// > Sign
// mw.hook()
// (Category.fire)
// (Content.fresh)
// (CodeMirr.fire)
// 2019-10-10 [email protected]
mw.hook( "wikipage.content" ).add( Content.fresh );
mw.hook( "error.message" ).add( Content.fresh );
mw.hook( Sign + ".refresh" ).add( Content.fresh );
// mw.hook( "CodeMirr.enabled" ).add( CodeMirr.fire );
}; // Content.follow()
Content.fresh = function ( $area ) {
// Handler when content area has changed
// Precondition:
// $area -- jQuery element of content area, or not
// Uses:
// > Content.selector
// > Content.unselect
// > This.opts.previewCSS
// > This.css.preview
// > Submit
// > Category.$hidden
// > This.warnDrop.length
// >< Content.$contentSub
// < Content.$content
// Content.flop()
// Content.fine()
// 2020-12-13 [email protected]
var $warnings = $( Content.selector ).not( Content.unselect ),
i, suppress, $old, $paras, $preview, $warningbox;
if ( ! Content.$contentSub ) {
if ( Content.$contentSub === false ) {
Content.$contentSub = $( "#contentSub" );
if ( Content.$contentSub.length ) {
Content.$content = Content.$contentSub;
} else {
Content.$contentSub = null;
}
}
if ( ! Content.$contentSub ) {
if ( $area ) {
Content.$content = $area;
} else {
Content.$content = $( "#mw-content-text" );
}
}
}
if ( $warnings.length ) {
$warningbox = $( ".warningbox" );
if ( $warningbox.length ) {
$preview = $( ".previewnote .warningbox" );
if ( $preview.length ) {
if ( This.opts &&
typeof This.opts.previewCSS === "object" ) {
$.extend( This.css.preview, This.opts.previewCSS );
}
$preview.removeClass( "warningbox " + This.signed )
.css( This.css.preview );
$warnings = $warnings.not( $preview.get( 0 ) );
$paras = $preview.find( "p" );
if ( $paras.length > 1 ) {
$preview = $paras.eq( 0 );
$paras = $paras.not( $preview );
$paras.each( function () {
var $p = $( this );
$warnings = $warnings.add( $p );
$p.detach();
} );
}
}
$old = $warningbox.filter( ".mw-revision" );
if ( $old.length ) {
$old.addClass( This.suppress );
$warnings = $warnings.not( $old );
$old = $area.children().eq( 0 ).filter( ".warningbox" );
if ( $old.length ) {
$old.addClass( This.suppress );
$warnings = $warnings.not( $old );
}
}
if ( This.warnDrop.length ) {
for ( i = 0; i < This.warnDrop.length; i++ ) {
if ( i ) {
suppress = suppress + ",";
} else {
suppress = "";
}
suppress = suppress + This.warnDrop;
} // for i
$old = $warningbox.filter( suppress );
if ( $old.length ) {
$old.addClass( This.suppress );
$warnings = $warnings.not( $old );
}
}
}
}
if ( $warnings.length ) {
Content.flop( $warnings );
} else if ( $( Submit ).length || Category.$hidden ) {
Content.flop();
} else {
Content.fine();
}
}; // Content.fresh()
Repo.first = function () {
// Initialize local storage
// Precondition:
// mediawiki.storage is ready
// Uses:
// > Sign
// > JSON
// < Repo.repo
// mw.storage.get()
// 2019-07-01 [email protected]
var stored = mw.storage.get( Sign );
if ( stored ) {
try {
Repo.repo = JSON.parse( stored );
} catch( ex ) {
// why ever * corrupted by anyone
Repo.repo = false;
}
}
return Repo.repo;
}; // Repo.first()
Repo.flush = function () {
// Memorize current options in local storage
// Precondition:
// mediawiki.storage is ready
// Uses:
// > Category.titles
// > Category.parsing
// > Sign
// < Repo.repo
// mw.storage.set()
// Category.fault()
// 2019-07-01 [email protected]
var date = new Date(),
ms = date.getTime(),
luck;
Repo.repo = { minutes: Math.floor( ms * 0.0000166666667 ) };
if ( typeof Category.titles === "object" ) {
Repo.repo.titles = Category.titles;
} else {
Repo.repo.titles = false;
}
if ( typeof Category.parsing === "object" ) {
Repo.repo.parsing = Category.parsing;
} else {
Repo.repo.parsing = false;
}
luck = mw.storage.set( Sign, JSON.stringify( Repo.repo ) );
if ( ! luck ) {
Category.fault( false, "local storage dump" );
}
}; // Repo.flush()
Repo.fresh = function () {
// Is local storage still fresh?
// Postcondition:
// Return true, if local storage is still fresh
// Uses:
// > Repo.repo.minutes
// > Repo.minutes
// 2019-07-01 [email protected]
var date, m, r;
if ( typeof Repo.repo === "object"
&& Repo.repo &&
typeof Repo.repo.minutes === "number" &&
typeof Repo.minutes === "number" ) {
date = new Date();
m = date.getTime() * 0.0000166666667;
r = ( m < Repo.repo.minutes + Repo.minutes );
}
return r;
}; // Repo.fresh()
function feature( all, apply, about ) {
// Configure single option from external
// Precondition:
// all -- object with all external options
// apply -- string with option name
// about -- string with required option type
// Uses:
// < This.opts.*
// 2019-10-24 [email protected]
if ( typeof all === about
&& ( all || all === false ) ) {
This.opts = all;
}
} // feature()
function features( assign ) {
// Configure options from external
// Precondition:
// assign -- object with external options
// Uses:
// > This.css
// >< This.opts
// >< This.options
// feature()
// 2019-10-24 [email protected]
var s;
if ( typeof assign === "object"
&& assign ) {
This.opts = This.opts || { };
for ( s in This.css ) {
This.options = "object";
}
for ( s in assign ) {
feature( assign, s, This.options );
}
}
} // features()
function fiat() {
// DOM is ready, analyze initial page
// Uses:
// > This.namespaceNumber
// > This.opts.hiddencats
// > This.opts.categories
// >< This.opts.maintCats
// < Category.user
// < Category.limit
// mw.loader.using()
// Category.fire()
// Content.follow()
// (Category.fetch)
// 2019-10-24 [email protected]
var i, v;
if ( This.namespaceNumber !== 14 ) {
This.opts = This.opts || { };
if ( typeof This.opts.maintCats !== "number" &&
typeof This.opts.hiddencats === "boolean" ) {
if ( This.opts.hiddencats ) {
This.opts.maintCats = 2;
} else {
This.opts.maintCats = 0;
}
}
if ( typeof This.opts.categories === "object" &&
typeof This.opts.categories.length === "number"
&& This.opts.categories.length >= 1 ) {
Category.user = ;
for ( i = 0; i < This.opts.categories.length; i++ ) {
v = This.opts.categories;
if ( ( typeof v === "string"
&& v ) ||
( ( typeof v === "object" && v ||
typeof v === "function" ) &&
typeof v.test === "function" ) ) {
Category.user.push( v );
}
} // for i
if ( ! Category.user.length ) {
Category.user = false;
}
} else {
Category.user = false;
}
if ( typeof This.opts.maintCats !== "number" ) {
This.opts.maintCats = 1;
}
if ( This.opts.maintCats >= 1 ) {
Category.limit = ( This.opts.maintCats < 2 );
}
if ( Category.limit ) {
mw.loader.using( ,
Category.fetch );
} else {
if ( This.opts.maintCats >= 2 ) {
Category.fire();
}
Content.follow();
}
} else {
Content.follow();
}
} // fiat()
function fire() {
// Error messages might occur in this context
// Uses:
// > Sign
// > Version
// > Shop
// > mw.libs
// < This.lapsus
// < This.config
// < This.complaints
// features()
// mw.hook()
// (fiat)
// 2019-10-24 [email protected]
var card = { type: Sign,
vsn: Version,
doc: "]" };
This.lapsus = false;
if ( typeof mw.libs === "object"
&& mw.libs ) {
This.config = mw.libs;
if ( This.config ) {
This.config.vsn = card.vsn;
This.config.doc = card.doc;
if ( typeof This.config.options === "object"
&& This.config.options ) {
features( This.config.options );
}
}
}
This.complaints = ;
$( fiat );
mw.hook( Sign ).fire( card );
} // fire()
function first() {
// Autorun on load (once)
// Uses:
// > Sign
// > Selectors
// > This.unselect
// < This.action
// < This.namespaceNumber
// < Content.selector
// < Content.unselect
// < This.signed
// < This.suppress
// mw.loader.getState()
// mw.loader.state()
// mw.hook()
// mw.config.get()
// mw.loader.using()
// (features)
// (fire)
// 2022-01-01 [email protected]
var signature = "ext.gadget." + Sign,
env, i, launch, rls;
if ( mw.loader.getState( signature ) !== "ready" ) {
rls = { };
rls = "ready";
mw.loader.state( rls );
mw.hook( Sign + "-options" ).add( features );
env = mw.config.get( [ "wgAction",
"wgNamespaceNumber" ] );
switch ( env.wgAction ) {
case "view" :
launch = ( env.wgNamespaceNumber >= 0 );
// includes veaction=edit
// upload?
break;
case "submit" :
case "parsermigration-edit" :
launch = true;
break;
} // switch wgAction
if ( launch ) {
This.action = env.wgAction;
This.namespaceNumber = env.wgNamespaceNumber;
for ( i = 0; i < Selectors.length; i++ ) {
if ( i ) {
Content.selector = Content.selector + ",";
} else {
Content.selector = "";
}
Content.selector = Content.selector + Selectors;
} // for i
for ( i = 0; i < This.unselect.length; i++ ) {
if ( i ) {
Content.unselect = Content.unselect + ",";
} else {
Content.unselect = "";
}
Content.unselect = Content.unselect + This.unselect;
} // for i
This.signed = Sign + "_msg";
This.shrink = "." + Sign + This.shrink;
This.suppress = Sign + This.suppress;
mw.loader.using( ,
fire );
}
}
} // first()
first();
}( window.mediaWiki, window.jQuery ) );
/// EOF </nowiki> remindErrorMessages/d.js