User:Jauerback/monobook.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
The accompanying .css page for this skin can be added at User:Jauerback/monobook.css. |
mw.loader.load('//ru.wikipedia.org/enwiki/w/index.php?title=MediaWiki:Gadget-markblocked.js&action=raw&ctype=text/javascript');
// If TwinkleConfig aint exist.
if( typeof( TwinkleConfig ) == 'undefined' ) {
TwinkleConfig = {};
}
/**
TwinkleConfig.showSharedIPNotice may take arguments:
true: to show shared ip notice if an IP address
false: to not print the notice
*/
if( typeof( TwinkleConfig.showSharedIPNotice ) == 'undefined' ) {
TwinkleConfig.showSharedIPNotice = true;
}
/**
TwinkleConfig.watchWarnings (boolean)
if true, watch the page which has been dispatched an warning or notice, if false, default applies
*/
if( typeof( TwinkleConfig.watchWarnings ) == 'undefined' ) {
TwinkleConfig.watchWarnings = true;
}
/**
TwinkleConfig.summaryAd (string)
If ad should be added or not to summary, default [[WP:TWINKLE|TWINKLE]]
*/
if( typeof( TwinkleConfig.summaryAd ) == 'undefined' ) {
TwinkleConfig.summaryAd = " using [[WP:TW|TW]]";
}
function twinklewarn() {
if( mw.config.get('wgNamespaceNumber') == 3 ) {
mw.util.addPortletLink( 'p-cactions', (twinkleConfigExists ? "javascript:twinklewarn.callback()" : 'javascript:alert("Your account is too new to use Twinkle.");'), "warn", "tw-warn", "Warn/Notify user", "");
}
}
$(twinklewarn);
twinklewarn.callback = function twinklewarnCallback() {
var Window = new SimpleWindow( 600, 400 );
Window.setTitle( "Warn/Notify user" );
var form = new QuickForm( twinklewarn.callback.evaluate );
var main_select = form.append( {
type:'field',
label:'Choose type of warning/notice to issue',
tooltip:'Choose first the main group you want to issue, then choose an appropriate type to issue.'
} );
var main_group = main_select.append( {
type:'select',
name:'main_group',
event:twinklewarn.callback.change_category
} );
main_group.append( { type:'option', label:'General Note (1)', value:'level1' } );
main_group.append( { type:'option', label:'Caution (2)', value:'level2' } );
main_group.append( { type:'option', label:'Warning (3)', value:'level3' } );
main_group.append( { type:'option', label:'Final warning (4)', value:'level4' } );
main_group.append( { type:'option', label:'Only warning (4im)', value:'level4im' } );
main_group.append( { type:'option', label:'Single issue notices', value:'singlenotice' } );
main_group.append( { type:'option', label:'Single issue warnings', value:'singlewarn' } );
if( userIsInGroup( 'sysop' ) ) {
main_group.append( { type:'option', label:'Blocking', value:'block', selected:true } );
}
main_select.append( { type:'select', name:'sub_group' } ); //Will be empty to begin with.
form.append( {
type:'input',
name:'article',
label:'Linked article',
value:( QueryString.exists( 'vanarticle' ) ? QueryString.get( 'vanarticle' ) : '' ),
tooltip:'An article might be linked to the notice, either it was a revert to said article that dispatched this notice. Leave empty for no article to be linked'
} );
var more = form.append( { type:'field', label:'Fill in an optional reason and hit \"Submit\"' } );
more.append( { type:'textarea', label:'More:', name:'reason', tooltip:'Perhaps a reason, or that a more detailed notice must be appended' } );
more.append( { type:'submit', label:'Submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
result.main_group.root = result;
// We must init the first choice (General Note);
var evt = document.createEvent( "Event" );
evt.initEvent( 'change', true, true );
result.main_group.dispatchEvent( evt );
}
// This is all the messages that might be dispatched by the code
twinklewarn.messages = {
level1: {
"uw-vandalism1": {
label:"Vandalism",
summary:"General note: Vandalism"
},
"uw-test1": {
label:"Editing tests",
summary:"General note: Editing tests"
},
"uw-delete1": {
label:"Page blanking, removal of content or templates",
summary:"General note: Page blanking, removal of content or templates"
},
"uw-joke1": {
label:"Using improper humor",
summary:"General note: Using improper humor"
},
"uw-create1": {
label:"Creating inappropriate pages",
summary:"General note: Creating inappropriate pages"
},
"uw-upload1": {
label:"Uploading inappropriate images",
summary:"General note: Uploading inappropriate images"
},
"uw-image1": {
label:"Image-related vandalism",
summary:"General note: Image-related vandalism"
},
"uw-spam1": {
label:"Adding spam links",
summary:"General note: Adding spam links"
},
"uw-advert1": {
label:"Using Wikipedia for advertising or promotion",
summary:"General note: Using Wikipedia for advertising or promotion"
},
"uw-npov1": {
label:"Not adhering to neutral point of view",
summary:"General note: Not adhering to neutral point of view"
},
"uw-unsourced1": {
label:"Addition of unsourced material without proper citations",
summary:"General note: Addition of unsourced material without proper citations"
},
"uw-error1": {
label:"Introducing deliberate factual errors",
summary:"General note: Introducing deliberate factual errors"
},
"uw-biog1": {
label:"Adding unreferenced controversial information about living persons",
summary:"General note: Adding unreferenced controversial information about living persons"
},
"uw-defam1": {
label:"Defamation not specifically directed",
summary:"General note: Defamation not specifically directed"
},
"uw-uncen1": {
label:"Censorship of material",
summary:"General note: Censorship of material"
},
"uw-mos1": {
label:"Manual of style",
summary:"General note: Formatting, date, language, etc (Manual of style)"
},
"uw-move1": {
label:"Page moves",
summary:"General note: Page moves"
},
"uw-chat1": {
label:"Using talk page as forum",
summary:"General note: Using talk page as forum"
},
"uw-tpv1": {
label:"Refactoring others' talk page comments",
summary:"General note: Refactoring others' talk page comments"
},
"uw-afd1": {
label:"Removing \{\{afd\}\} templates",
summary:"General note: Removing \{\{afd\}\} templates"
},
"uw-speedy1": {
label:"Removing \{\{speedy deletion\}\} templates",
summary:"General note: Removing \{\{speedy deletion\}\} templates"
},
"uw-npa1": {
label:"Personal attack directed at a specific editor",
summary:"General note: Personal attack directed at a specific editor"
},
"uw-agf1": {
label:"Not assuming good faith",
summary:"General note: Not assuming good faith"
},
"uw-own1": {
label:"Ownership of articles",
summary:"General note: Ownership of articles"
},
"uw-nor1": {
label:"Adding original research",
summary:"General note: Adding original research, including unpublished syntheses of sourced material"
}
},
level2: {
"uw-vandalism2": {
label:"Vandalism",
summary:"Caution: Vandalism"
},
"uw-test2": {
label:"Editing tests",
summary:"Caution: Editing tests"
},
"uw-delete2": {
label:"Page blanking, removal of content or templates",
summary:"Caution: Page blanking, removal of content or templates"
},
"uw-joke2": {
label:"Using improper humor",
summary:"Caution: Using improper humor"
},
"uw-create2": {
label:"Creating inappropriate pages",
summary:"Caution: Creating inappropriate pages"
},
"uw-upload2": {
label:"Uploading inappropriate images",
summary:"Caution: Uploading inappropriate images"
},
"uw-image2": {
label:"Image-related vandalism",
summary:"Caution: Image-related vandalism"
},
"uw-spam2": {
label:"Adding spam links",
summary:"Caution: Adding spam links"
},
"uw-advert2": {
label:"Using Wikipedia for advertising or promotion",
summary:"Caution: Using Wikipedia for advertising or promotion"
},
"uw-npov2": {
label:"Not adhering to neutral point of view",
summary:"Caution: Not adhering to neutral point of view"
},
"uw-unsourced2": {
label:"Addition of unsourced material without proper citations",
summary:"Caution: Addition of unsourced material without proper citations"
},
"uw-error2": {
label:"Introducing deliberate factual errors",
summary:"Caution: Introducing deliberate factual errors"
},
"uw-biog2": {
label:"Adding unreferenced controversial information about living persons",
summary:"Caution: Adding unreferenced controversial information about living persons"
},
"uw-defam2": {
label:"Defamation not specifically directed",
summary:"Caution: Defamation not specifically directed"
},
"uw-uncen2": {
label:"Censorship of material",
summary:"Caution: Censorship of material"
},
"uw-mos2": {
label:"Manual of style",
summary:"Caution: Formatting, date, language, etc (Manual of style)"
},
"uw-move2": {
label:"Page moves",
summary:"Caution: Page moves"
},
"uw-chat2": {
label:"Using talk page as forum",
summary:"Caution: Using talk page as forum"
},
"uw-tpv2": {
label:"Refactoring others' talk page comments",
summary:"Caution: Refactoring others' talk page comments"
},
"uw-afd2": {
label:"Removing \{\{afd\}\} templates",
summary:"Caution: Removing \{\{afd\}\} templates"
},
"uw-speedy2": {
label:"Removing \{\{speedy deletion\}\} templates",
summary:"Caution: Removing \{\{speedy deletion\}\} templates"
},
"uw-npa2": {
label:"Personal attack directed at a specific editor",
summary:"Caution: Personal attack directed at a specific editor"
},
"uw-agf2": {
label:"Not assuming good faith",
summary:"Caution: Not assuming good faith"
},
"uw-own2": {
label:"Ownership of articles",
summary:"Caution: Ownership of articles"
},
"uw-nor2": {
label:"Adding original research",
summary:"Caution: Adding original research, including unpublished syntheses of sourced material"
}
},
level3: {
"uw-vandalism3": {
label:"Vandalism",
summary:"Warning: Vandalism"
},
"uw-test3": {
label:"Editing tests",
summary:"Warning: Editing tests"
},
"uw-delete3": {
label:"Page blanking, removal of content or templates",
summary:"Warning: Page blanking, removal of content or templates"
},
"uw-joke3": {
label:"Using improper humor",
summary:"Warning: Using improper humor"
},
"uw-create3": {
label:"Creating inappropriate pages",
summary:"Warning: Creating inappropriate pages"
},
"uw-upload3": {
label:"Uploading inappropriate images",
summary:"Warning: Uploading inappropriate images"
},
"uw-image3": {
label:"Image-related vandalism",
summary:"Warning: Image-related vandalism"
},
"uw-spam3": {
label:"Adding spam links",
summary:"Warning: Adding spam links"
},
"uw-advert3": {
label:"Using Wikipedia for advertising or promotion",
summary:"Warning: Using Wikipedia for advertising or promotion"
},
"uw-npov3": {
label:"Not adhering to neutral point of view",
summary:"Warning: Not adhering to neutral point of view"
},
"uw-unsourced3": {
label:"Addition of unsourced material without proper citations",
summary:"Warning: Addition of unsourced material without proper citations"
},
"uw-error3": {
label:"Introducing deliberate factual errors",
summary:"Warning: Introducing deliberate factual errors"
},
"uw-biog3": {
label:"Adding unreferenced controversial information about living persons",
summary:"Warning: Adding unreferenced controversial information about living persons"
},
"uw-defam3": {
label:"Defamation not specifically directed",
summary:"Warning: Defamation not specifically directed"
},
"uw-uncen3": {
label:"Censorship of material",
summary:"Warning: Censorship of material"
},
"uw-mos3": {
label:"Manual of style",
summary:"Warning: Formatting, date, language, etc (Manual of style)"
},
"uw-move3": {
label:"Page moves",
summary:"Warning: Page moves"
},
"uw-chat3": {
label:"Using talk page as forum",
summary:"Warning: Using talk page as forum"
},
"uw-tpv3": {
label:"Refactoring others' talk page comments",
summary:"Warning: Refactoring others' talk page comments"
},
"uw-afd3": {
label:"Removing \{\{afd\}\} templates",
summary:"Warning: Removing \{\{afd\}\} templates"
},
"uw-speedy3": {
label:"Removing \{\{speedy deletion\}\} templates",
summary:"Warning: Removing \{\{speedy deletion\}\} templates"
},
"uw-npa3": {
label:"Personal attack directed at a specific editor",
summary:"Warning: Personal attack directed at a specific editor"
},
"uw-agf3": {
label:"Not assuming good faith",
summary:"Warning: Not assuming good faith"
},
"uw-own3": {
label:"Ownership of articles",
summary:"Warning: Ownership of articles"
},
"uw-nor3": {
label:"Adding original research",
summary:"Warning: Adding original research, including unpublished syntheses of sourced material"
}
},
level4: {
"uw-vandalism4": {
label:"Vandalism",
summary:"Final warning: Vandalism"
},
"uw-delete4": {
label:"Page blanking, removal of content or templates",
summary:"Final warning: Page blanking, removal of content or templates"
},
"uw-joke4": {
label:"Using improper humor",
summary:"Final warning: Using improper humor"
},
"uw-create4": {
label:"Creating inappropriate pages",
summary:"Final warning: Creating inappropriate pages"
},
"uw-upload4": {
label:"Uploading inappropriate images",
summary:"Final warning: Uploading inappropriate images"
},
"uw-image4": {
label:"Image-related vandalism",
summary:"Final warning: Image-related vandalism"
},
"uw-spam4": {
label:"Adding spam links",
summary:"Final warning: Adding spam links"
},
"uw-advert4": {
label:"Using Wikipedia for advertising or promotion",
summary:"Final warning: Using Wikipedia for advertising or promotion"
},
"uw-npov4": {
label:"Not adhering to neutral point of view",
summary:"Final warning: Not adhering to neutral point of view"
},
"uw-biog4": {
label:"Adding unreferenced controversial information about living persons",
summary:"Final warning: Adding unreferenced controversial information about living persons"
},
"uw-defam4": {
label:"Defamation not specifically directed",
summary:"Final warning: Defamation not specifically directed"
},
"uw-move4": {
label:"Page moves",
summary:"Final warning: Page moves"
},
"uw-chat4": {
label:"Using talk page as forum",
summary:"Final warning: Using talk page as forum"
},
"uw-afd4": {
label:"Removing \{\{afd\}\} templates",
summary:"Final warning: Removing \{\{afd\}\} templates"
},
"uw-speedy4": {
label:"Removing \{\{speedy deletion\}\} templates",
summary:"Final warning: Removing \{\{speedy deletion\}\} templates"
},
"uw-npa4": {
label:"Personal attack directed at a specific editor",
summary:"Final warning: Personal attack directed at a specific editor"
},
"uw-nor4": {
label:"Adding original research",
summary:"Final Warning: Adding original research, including unpublished syntheses of sourced material"
}
},
level4im: {
"uw-vandalism4im": {
label:"Vandalism",
summary:"Only warning: Vandalism"
},
"uw-delete4im": {
label:"Page blanking, removal of content or templates",
summary:"Only warning: Page blanking, removal of content or templates"
},
"uw-create4im": {
label:"Creating inappropriate pages",
summary:"Only warning: Creating inappropriate pages"
},
"uw-upload4im": {
label:"Uploading inappropriate images",
summary:"Only warning: Uploading inappropriate images"
},
"uw-image4im": {
label:"Image-related vandalism",
summary:"Only warning: Image-related vandalism"
},
"uw-spam4im": {
label:"Adding spam links",
summary:"Only warning: Adding spam links"
},
"uw-defam4im": {
label:"Defamation not specifically directed",
summary:"Only warning: Defamation not specifically directed"
},
"uw-move4im": {
label:"Page moves",
summary:"Only warning: Page moves"
},
"uw-npa4im": {
label:"Personal attack directed at a specific editor",
summary:"Only warning: Personal attack directed at a specific editor"
}
},
singlenotice: {
"uw-2redirect": {
label:"Creating double redirects through bad page moves",
summary:"Notice: Creating double redirects through bad page moves"
},
"uw-badlistentry":
label:"Bad list entry",
summary:"Notice: Bad list entry"
},
"uw-aiv": {
label:"Bad AIV report",
summary:"Notice: Bad AIV report"
},
"uw-articlesig": {
label:"Adding signatures to article space",
summary:"Notice: Adding signatures to article space"
},
"uw-autobiography": {
label:"Creating autobiographies",
summary:"Notice: Creating autobiographies"
},
"uw-badcat": {
label:"Adding incorrect categories",
summary:"Notice: Adding incorrect categories"
},
"uw-bite": {
label:"\"Biting\" newcomers",
summary:"Notice: \"Biting\" newcomers"
},
"uw-coi": {
label:"Conflict of Interest",
summary:"Notice: Conflict of Interest"
},
"uw-c&pmove": {
label:"Cut and paste moves",
summary:"notice: Cut and paste moves"
},
"uw-date": {
label:"Unnecessarily changing date formats",
summary:"Notice: Unnecessarily changing date formats"
},
"uw-deadlink": {
label:"Removing proper sources containing dead links",
summary:"Notice: Removing proper sources containing dead links"
},
"uw-editsummary": {
label:"Not using edit summary",
summary:"Notice: Not using edit summary"
},
"uw-english": {
label:"Not communicating in English",
summary:"Notice: Not communicating in English"
},
"uw-hangon": {
label:"User forgets to place a hang-on reasoning to the talk page",
summary:"Notice: User forgets to place a hang-on reasoning to the talk page"
},
"uw-italicize": {
label:"Italicize books, films, albums, magazines, TV series, etc within articles",
summary:"Notice: Italicize books, films, albums, magazines, TV series, etc within articles"
},
"uw-lang": {
label:"Unnecessarily changing between British and American English",
summary:"Notice: Unnecessarily changing between British and American English"
},
"uw-linking": {
label:"For excessive addition of redlinks or repeated blue links",
summary:"Notice: For excessive addition of redlinks or repeated blue links"
},
"uw-minor": {
label:"Incorrect use of minor edits check box",
summary:"Notice: Incorrect use of minor edits check box"
},
"uw-nonfree": {
label:"Uploading replaceable non-free images",
summary:"Notice: Uploading replaceable non-free images"
},
"uw-notaiv": {
label:"Do not report complex abuse to AIV",
summary:"Notice: Do not report complex abuse to AIV"
},
"uw-notvote": {
label:"We use consensus, not voting",
summary:"Notice: We use consensus, not voting"
},
"uw-preview": {
label:"Use preview button to avoid mistakes",
summary:"Notice: Use preview button to avoid mistakes"
},
"uw-selfrevert": {
label:"Reverting self tests",
summary:"Notice: Reverting self tests"
},
"uw-samename": {
label:"Rename request impossible",
summary:"Notice: Rename request impossible"
},
"uw-sandbox": {
label:"Removal of the Sandbox header",
summary:"Notice: Removal of the Sandbox header"
},
"uw-spellcheck": {
label:"Review spelling, etc.",
summary:"Notice: Review spelling, etc."
},
"uw-socialnetwork": {
label:"Wikipedia is not a social network",
summary:"Notice: Wikipedia is not a social network"
},
"uw-subst": {
label:"Remember to subst: templates",
summary:"Notice: Remember to subst: templates"
},
"uw-talkinarticle": {
label:"Talk in article",
summary:"Notice: Talk in article"
},
"uw-tilde": {
label:"Not signing posts",
summary:"Notice: Not signing posts"
},
"uw-uaa": {
label:"Reporting of username to WP:UAA not accepted",
summary:"Notice: Reporting of username to WP:UAA not accepted"
},
"uw-warn": {
label:"Warning vandals",
summary:"Notice: Warning vandals"
}
},
singlewarn: {
"uw-3rr": {
label:"Potentially violating the three revert rule",
summary:"Warning: Potentially violating the three revert rule"
},/*
"uw-attack": {
label:"Creating attack pages",
summary:"Warning: Creating attack pages"
},*/
"uw-bv": {
label:"Blatant vandalism",
summary:"Warning: Blatant vandalism"
},
"uw-canvass": {
label:"Canvassing",
summary:"Warning: Canvassing"
},
"uw-copyright": {
label:"Copyright violation",
summary:"Warning: Copyright violation"
},
"uw-copyright-link": {
label:"Linking to copyrighted works violation",
summary:"Warning: Linking to copyrighted works violation"
},
"uw-hoax": {
label:"Creating hoaxes",
summary:"Warning: Creating hoaxes"
},
"uw-legal": {
label:"Making legal threats",
summary:"Warning: Making legal threats"
},
"uw-longterm": {
label:"Long term pattern of vandalism",
summary:"Warning: Long term pattern of vandalism"
},
"uw-multipleIPs": {
label:"Usage of multiple IPs",
summary:"Warning: Usage of multiple IPs"
},
"uw-pinfo": {
label:"Personal info",
summary:"Warning: Personal info"
},
"uw-redirect": {
label:"Creating malicious redirects",
summary:"Warning: Creating malicious redirects"
},
"uw-upv": {
label:"Userpage vandalism",
summary:"Warning: Userpage vandalism"
},
"uw-tempabuse": {
label:"Improper use of warning or blocking template",
summary:"Warning: Improper use of warning or blocking template"
},
"uw-wrongsummary": {
label:"Using inaccurate or inappropriate edit summaries",
summary:"Warning: Using inaccurate or inappropriate edit summaries"
},
"uw-username": {
label:"Username is against policy",
summary:"Warning: Username is against policy"
},
"uw-userpage": {
label:"Userpage or subpage is against policy",
summary:"Warning: Userpage or subpage is against policy"
}
},
block: {
"uw-block1": {
'label':"Block level 1",
'summary':"You have been temporarily blocked"
},
"uw-block2": {
'label':"Block level 2",
'summary':"You have been blocked"
},
"uw-block3": {
'label':"Block level 3",
'summary':"You have been indefinitely blocked"
},
"uw-ablock": {
'label':"Anonymous block",
'summary':"Your IP address has been blocked"
},
"uw-sblock": {
'label':"Spam block",
'summary':"You have been blocked for spamming"
},
"uw-soablock": {
'label':"Advertising block",
'summary':"You have been blocked for advertising"
},
"uw-vblock": {
'label':"Vandalism",
'summary':"You have been blocked for vandalism"
},
"uw-voablock": {
'label':"Vandalism-only account",
'summary':"You have been blocked for using a vandalism-only account"
},
"uw-dblock": {
'label':"Delete block",
'summary':"You have been blocked for deletion"
},
"uw-3block": {
'label':"3RR block",
'summary':"You have been blocked for violation of the [[WP:3RR|3RR]] rule"
},
"uw-ublock": {
'label':"Username block",
'summary':"You have been blocked for violation of the [[WP:U|username policy]]"
},
"uw-uhblock": {
'label':"Username hard block",
'summary':"You have been blocked for blatant violation of the [[WP:U|username policy]]"
},
"uw-lblock": {
'label':"Legal Threat Block",
'summary':"You have been blocked for [[Wikipedia:No legal threats|making legal threats]]"
},
"uw-hblock": {
'label':"Harassment Block",
'summary':"You have been blocked for attempting to [[Wikipedia:Harassment|harass]] other users"
},
"uw-npblock": {
'label':"Creating Nonsense Pages Block",
'summary':"You have been blocked for [[Wikipedia:Patent_nonsense|creating nonsense pages]]"
}
}
};
twinklewarn.callback.change_category = function twinklewarnCallbackChangeCategory(e) {
var value = e.target.value;
var sub_group = e.target.root.sub_group;
var messages = twinklewarn.messages[ value ];
sub_group.main_group = value;
var old_subvalue = sub_group.value;
if( old_subvalue ) {
old_subvalue = old_subvalue.replace(/\d*(im)?$/, '' );
var old_subvalue_re = new RegExp( RegExp.escape( old_subvalue ) + "(\\d*(?:im)?)$" );
}
while( sub_group.hasChildNodes() ){
sub_group.removeChild( sub_group.firstChild );
}
for( var i in messages ) {
var selected = false;
if( old_subvalue && old_subvalue_re.test( i ) ) {
selected = true;
}
var elem = new QuickForm.element( { type:'option', label:"[" + i + "]: " + messages[i].label, value:i, selected: selected } );
sub_group.appendChild( elem.render() );
}
if( value == 'block' ) {
var more = new QuickForm.element( {
type: 'input',
name: 'block_timer',
label: 'Period of blocking: ',
tooltip: 'The period the blocking is due for, for example 24 hours, 2 weeks, indefinite etc...'
} );
e.target.root.insertBefore( more.render(), e.target.root.lastChild );
e.target.root.article.disabled = true;
} else if( e.target.root.block_timer ) {
e.target.root.removeChild( e.target.root.block_timer.parentNode );
e.target.root.article.disabled = false;
}
}
twinklewarn.callbacks = {
main: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
var history_re = /\<\!\-\-\ Template\:(uw\-.*?)\ \-\-\>.*?(\d{1,2}:\d{1,2}, \d{1,2} \w+ \d{4}) \(UTC\)/g;
var history = {};
var latest = { date:new Date( 0 ), type:'' };
var current;
while( ( current = history_re.exec( text ) ) != undefined ) {
var current_date = new Date( current[2] + ' UTC' );
if( !( current[1] in history ) || history[ current[1] ] < current_date ) {
history[ current[1] ] = current_date;
}
if( current_date > latest.date ) {
latest.date = current_date;
latest.type = current[1];
}
}
var date = new Date();
if( self.params.sub_group in history ) {
var temp_time = new Date( history[ self.params.sub_group ] );
temp_time.setUTCHours( temp_time.getUTCHours() + 24 );
if( temp_time > date ) {
Status.info( 'Info', "an identical " + self.params.sub_group + " has been issued in the last 24 hours" );
if( !confirm( "Will you still add a warning/notice?" ) ) {
self.statelem.info( 'aborted per user request' );
return;
}
}
}
latest.date.setUTCMinutes( latest.date.getUTCMinutes() + 1 ); // after long debate, one minute is max
if( latest.date > date ) {
Status.info('Info', "a " + latest.type + " has been issued in the last minute" );
if( !confirm( "Will you still add a warning/notice?" ) ) {
self.statelem.info( 'aborted per user request' );
return;
}
}
var mainheaderRe = /==+\\s*Warnings\\s*==+/;
var headerRe = new RegExp( "^==+\\s*(?:" + date.getUTCMonthName() + '|' + date.getUTCMonthNameAbbrev() + ")\\s+" + date.getUTCFullYear() + "\\s*==+", 'm' );
if( text.length > 0 ) {
text += "\n";
}
if( !headerRe.exec( text ) ) {
Status.info( 'Info', 'Will create a new level 2 heading for the date, as none was found for this month' );
text += "== " + date.getUTCMonthName() + " " + date.getUTCFullYear() + " ==\n";
}
if( self.params.main_group == 'block' ) {
var time = null;
if( /te?mp|^\s*$|min/.exec( self.params.block_timer ) ) {
time = '';
} else if( /indef|\*|max/.exec( self.params.block_timer ) ) {
time = '|indef=yes';
} else {
time = '|time=' + self.params.block_timer;
}
text += "\{\{subst:" + self.params.sub_group + time + (self.params.reason ? '|reason=' + self.params.reason : '' ) + "|sig=true\}\}";
} else if( self.params.sub_group == 'uw-username' ) {
// ugly hack
text += "\{\{subst:" + self.params.sub_group + ( self.params.reason ? '|1=' + self.params.reason : '' ) + "\}\} \~\~\~\~";
} else {
text += "\{\{subst:" + self.params.sub_group + ( self.params.article ? '|1=' + self.params.article : '' ) + "\}\}" + (self.params.reason ? " ''" + self.params.reason + "'' ": ' ' ) + "\~\~\~\~";
}
if ( TwinkleConfig.showSharedIPNotice && isIPAddress( mw.config.get('wgTitle') ) ) {
Status.info( 'Info', 'Adding a shared ip notice' );
switch( QueryString.get( 'type' ) ) {
case 'vand':
text += "\n:''If this is a shared [[IP address]], and you didn't make any [[Wikipedia:vandalism|unconstructive]] edits, consider [[Wikipedia:Why create an account?|creating an account]] for yourself so you can avoid further irrelevant warnings.'' ";
break;
default:
text += "\n:''If this is a shared [[IP address]], and you didn't make the edit, consider [[Wikipedia:Why create an account?|creating an account]] for yourself so you can avoid further irrelevant notices.'' ";
break;
}
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? 1 : undefined,
'wpWatchthis': TwinkleConfig.watchWarnings ? 1 : form.wpWatchthis.checked ? 1 : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': twinklewarn.messages[self.params.main_group][self.params.sub_group].summary + ( self.params.article ? ' on [[' + self.params.article + ']]' : '' ) + '.' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
}
twinklewarn.callback.evaluate = function twinklewarnCallbackEvaluate(e) {
// First, grab all the values provided by the form
var params = {
reason: e.target.reason.value,
main_group: e.target.main_group.value,
sub_group: e.target.sub_group.value,
article: e.target.article.value.replace( /^(Image|Category):/i, ':$1:' ),
block_timer: e.target.block_timer ? e.target.block_timer.value : null
}
Status.init( e.target );
var query = {
'title': mw.config.get('wgPageName'),
'action': 'submit'
};
Wikipedia.actionCompleted.redirect = mw.config.get('wgPageName');
Wikipedia.actionCompleted.notice = "Warning complete, reloading talk page in some seconds";
var wikipedia_wiki = new Wikipedia.wiki( 'User talk page modification', query, twinklewarn.callbacks.main );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
}