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

Content deleted Content added
1.3
2.00
Line 1:
/// User:PerfektesChaos/js/lintHint/r.js
/// 2017-0910-2610 PerfektesChaos@de.wikipedia
/// Fingerprint:#0#5A30DCBA26F53E6E#
/// @license GPL [//www.mediawiki.org/w/COPYING](+GFDL,LGPL,CC-BY-SA)
///<nowiki>
(function(mw,$){
"use strict";
var Version=12.300,Signature="lintHint",HINT={doc:"en:User:PerfektesChaos/js/"+Signature,errors:["bogus-image-options","deletable-table-tag","fostered","html5-misnesting","ignored-table-attr","misnested-tag","missing-end-tag","missing-start-tag","mixed-content","multi-colon-escape","obsolete-tag","pwrap-bug-workaround","self-closed-tag","stripped-tag","tidy-whitespace-bug"],idRev:0,last:true,later:false,launch:false,launched:false,lazy:false,live:false,ltr:true,using:["mediawiki.api","mediawiki.api.messages","mediawiki.util"],$body:false,$page:false,$textarea:false},API={Api:false,errors:false,scream:false,service:"transform/wikitext/to/lint"},BOX={bgc:"FFFF00",bgcErr:"FFE4E1",bgcOk:"ADFF2F",bgcRun:"C0C0C0",boc:"808080",fgc:"000000",fgcRun:"A0A0A0",swift:false,$box:false,$collapsed:false,$failure:false,$null:false,$other:false,$pagename:false,$swift:false,$tbody:false,$table:false,$top:false},EDIT={listen:false,live:false,$source:false},GUIDER={last:false,live:false,reTrim:false,using:["jquery.textSelection","mediawiki.ui.button","mediawiki.ui.input"],$pagename:false},LINTER={},PREGO={app:false,signature:"preferencesGadgetOptions"};
HINT.texts={
"desc":{"en":"Show LintErrors analysis live.","de":"Zeige LintErrors-Analyse live."},
"___domain":{"en":"en.wikipedia.org","de":"de.wikipedia.org"},
"howTo":{"en":"Fill balanced wikitext into first input area and press adjacent submit button, or enter page name into second input field.","de":"Füge ausgeglichenen Wikitext in das obere Eingabefeld ein, oder einen Seitennamen in das untere, und betätige die jeweilige Schaltfläche."},
"mark":{"en":"select problem in source text","de":"Problem im Quelltext selektieren"},
"noPage":{"en":"Wikitext page not found","de":"Wikitext-Seite nicht gefunden"},
"other":{"en":"Future problems detected.","de":"Zukünftige Probleme detektiert."}
Line 104 ⟶ 105:
if(HINT.nsn===0){
HINT.live=true;}
HINT.using.push("jquery.textSelection");
live=true;
break;}
Line 113 ⟶ 115:
mw.hook(Signature+".config").add(features);}
if(live){
PREGO.feed();}
fair();
if(HINT.live){
mw.loader.using(HINT.using,BOX.feed);}}
PREGO.feed();}
HINT.pub={doc:"[["+HINT.doc+"]]",type:Signature,vsn:Version};
mw.hook(Signature+".ready").fire(HINT.pub);}}
Line 290 ⟶ 292:
if(BOX.$box){
if(BOX.$table){
if(HINT.$textarea){
if(GUIDER.last){
BOX.$swift.hide();
}else{
BOX.$swift.show();}}
BOX.$tbody.empty();
BOX.filler();
Line 306 ⟶ 313:
$th.text("+");
$tr.append($th);
if(HINT.$textarea){
BOX.$swift=$("<th>");
BOX.$swift.data("sort-type","number").text("⇓");
mw.hook(PREGO.signature+".ready").add(BOX.flag);
if(GUIDER.last){
BOX.$swift.hide();}
$tr.append(BOX.$swift);}
$thead.append($tr);
BOX.$tbody=$("<tbody>");
Line 365 ⟶ 379:
$td.append($e);}}}
$tr.append($td);
if(HINT.$textarea&&!GUIDER.last&&typeof e.dsr==="object"&&e.dsr&&typeof e.dsr[0]==="number"&&typeof e.dsr[1]==="number"){
$td=$("<td>");
$td.click(BOX.find).data("range",e.dsr).data("sort-value",i)
.text(" ↓ ");
if(typeof BOX.swift==="string"){
$td.attr({title:BOX.swift});}
$tr.append($td);}
BOX.$tbody.append($tr);
n++;}}
Line 382 ⟶ 403:
}else{
mw.hook(PREGO.signature+".ready").add(BOX.future);}}}
};
BOX.find=function(event){
var $item=$(event.target),range=$item.data("range");
HINT.$textarea.focus().textSelection("setSelection",{start:range[0],end:range[1]});
};
BOX.flag=function(application){
if(application){
PREGO.app=application;}
BOX.swift=PREGO.app.translation(HINT.texts.mark);
BOX.$swift.attr({title:BOX.swift});
};
BOX.flat=function($area,alive){
Line 471 ⟶ 502:
if(EDIT.live){
EDIT.listen=false;
API.fire(EDIT.$source.val());}
HINT.$textarea=EDIT.$source;}
}else{
HINT.launch=true;
Line 516 ⟶ 548:
var s=GUIDER.$input.val();
GUIDER.fired();
GUIDER.last=true;
if(!GUIDER.reTrim.test(s)){
API.single=s;
Line 534 ⟶ 567:
var s=GUIDER.$textarea.val();
GUIDER.fired();
GUIDER.last=false;
if(!GUIDER.reTrim.test(s)){
API.single=false;
Line 649 ⟶ 683:
"padding":"4px"}).hide();
HINT.$page.prepend(GUIDER.$pagename);
HINT.$textarea=GUIDER.$textarea;
mw.loader.using(HINT.using,GUIDER.foreign);
};