Difference between revisions 3762303 and 3762304 on simplewiki// If TwinkleConfig aint exist. if( typeof( TwinkleConfig ) == 'undefined' ) { TwinkleConfig = {}; } /** TwinkleConfig.defaultGroup (int) if true, watch the page which has been dispatched an warning or notice, if false, default applies */ if( typeof( TwinkleConfig.defaultWarningGroup ) == 'undefined' ) { TwinkleConfig.defaultWarningGroup = 1; } /** 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 = false; } /** 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.blankTalkpageOnIndefBlock (boolean) if true, blank the talk page when issuing an indef block notice (per [[WP:UW#Indefinitely blocked users]]) */ if( typeof( TwinkleConfig.blankTalkpageOnIndefBlock ) == 'undefined' ) { TwinkleConfig.blankTalkpageOnIndefBlock = false; } /** TwinkleConfig.summaryAd (string) If ad should be added or not to summary, default [[WP:TWINKLE|TWINKLE]] */ if( typeof( TwinkleConfig.summaryAd ) == 'undefined' ) { TwinkleConfig.summaryAd = "([[WP:TW|TW]])"; } function twinklewarnelcome() { if( wgNamespaceNumber == 3 ) { twAddPortletLink( (twinkleConfigExists ? "javascript:twinklewarnelcome.callback()" : 'javascript:alert("Your account is too new to use Twinkle.");'), "Warnel", "tw-warn", "Warn or Notifyelcome", "Welcome user", ""); } } window.TwinkleInit = (window.TwinkleInit || []).concat( twinklewarnelcome); //schedule initializer twinklewarnelcome.callback = function twinklewarnelcomeCallback() { var Window = new SimpleWindow( 600, 400 ); Window.setTitle( "Twinkle ยท warn or notifyWelcome user" ); var form = new QuickForm( twinklewarnelcome.callback.evaluate ); var main_select = form.append( { type:'field', label:'Choose type of warning/notice to issue', tooltip:'First choose a main warning group, then the specific warning to issue.' } ); var main_group = main_select.append( { type:'select', name:'main_group', event:twinklewarnelcome.callback.change_category } ); main_group.append( { type:'option', label:'General Note (1)', value:'level1', selected: ( TwinkleConfig.defaultWarningGroup == 1 || TwinkleConfig.defaultWarningGroup < 1 || ( userIsInGroup( 'sysop' ) ? TwinkleConfig.defaultWarningGroup > 8 : TwinkleConfig.defaultWarningGroup > 7 ) ) } ); (contracted; show full) main_group.append( { type:'option', label:'Welcome messages', value:'welcome', selected: ( TwinkleConfig.defaultWarningGroup == 9 ) } ); if( userIsInGroup( 'sysop' ) ) { main_group.append( { type:'option', label:'Blocking', value:'block', selected: ( TwinkleConfig.defaultWarningGroup == 8 ) } ); } main_select.append( { type:'select', name:'sub_group', event:twinklew arnelcome.callback.change_subcategory } ); //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 twinklewarnelcome.messages = { level1: { "uw-vandalism1": { label:"Vandalism", summary:"General note: Vandalism" }, "uw-test1": { label:"Editing tests", (contracted; show full) 'label':"Open proxy", 'summary':"You have been blocked because this IP is an [[open proxy]]" } } }; twinklew arnelcome.prev_block_timer = null; twinklewarnelcome.prev_article = null; twinklewarnelcome.prev_reason = null; twinklewarnelcome.callback.change_category = function twinklewarnelcomeCallbackChangeCategory(e) { var value = e.target.value; var sub_group = e.target.root.sub_group; var messages = twinklewarnelcome.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 ); if(!(twinklewarnelcome.prev_block_timer === null)) { e.target.root.block_timer.value = twinklewarnelcome.prev_block_timer; twinklewarnelcome.prev_block_timer = null; } if(twinklewarnelcome.prev_article === null) { twinklewarnelcome.prev_article = e.target.root.article.value; } e.target.root.article.disabled = true; e.target.root.article.value = ''; } else if( e.target.root.block_timer ) { if(!e.target.root.block_timer.disabled && twinklewarnelcome.prev_block_timer === null) { twinklewarnelcome.prev_block_timer = e.target.root.block_timer.value; } e.target.root.removeChild( e.target.root.block_timer.parentNode ); if(e.target.root.article.disabled && !(twinklewarnelcome.prev_article === null)) { e.target.root.article.value = twinklewarnelcome.prev_article; twinklewarnelcome.prev_article = null; } e.target.root.article.disabled = false; if(e.target.root.reason.disabled && !(twinklewarnelcome.prev_reason === null)) { e.target.root.reason.value = twinklewarnelcome.prev_reason; twinklewarnelcome.prev_reason = null; } e.target.root.reason.disabled = false; } } twinklewarnelcome.callback.change_subcategory = function twinklewarnelcomeCallbackChangeSubcategory(e) { var main_group = e.target.main_group; var value = e.target.value; if( main_group == 'singlewarn' ) { if( value == 'uw-username' ) { if(twinklewarnelcome.prev_article === null) { twinklewarnelcome.prev_article = e.target.form.article.value; } e.target.form.article.disabled = true; e.target.form.article.value = ''; } else if( e.target.form.article.disabled ) { if(!(twinklewarnelcome.prev_article === null)) { e.target.form.article.value = twinklewarnelcome.prev_article; twinklewarnelcome.prev_article = null; } e.target.form.article.disabled = false; } } else if( main_group == 'block' ) { if( value == 'uw-block3' || value == 'UsernameBlocked' || value == 'UsernameHardBlocked' || value == 'openproxy') { if(twinklewarnelcome.prev_block_timer === null) { twinklewarnelcome.prev_block_timer = e.target.form.block_timer.value; } e.target.form.block_timer.disabled = true; e.target.form.block_timer.value = 'indef'; } else if( e.target.form.block_timer.disabled ) { if(!(twinklewarnelcome.prev_block_timer === null)) { e.target.form.block_timer.value = twinklewarnelcome.prev_block_timer; twinklewarnelcome.prev_block_timer = null; } e.target.form.block_timer.disabled = false; } if( value == 'uw-3block' ) { if(!(twinklewarnelcome.prev_article === null)) { e.target.form.article.value = twinklewarnelcome.prev_article; twinklewarnelcome.prev_article = null; } e.target.form.article.disabled = false; } else if( !e.target.form.article.disabled ) { if(twinklewarnelcome.prev_article === null) { twinklewarnelcome.prev_article = e.target.form.article.value; } e.target.form.article.disabled = true; e.target.form.article.value = ''; } if( value == 'uw-block3') { if(!(twinklewarnelcome.prev_reason === null)) { e.target.form.reason.value = twinklewarnelcome.prev_reason; twinklewarnelcome.prev_reason = null; } e.target.form.reason.disabled = false; } else if( !e.target.form.reason.disabled ) { if(twinklewarnelcome.prev_reason === null) { twinklewarnelcome.prev_reason = e.target.form.reason.value; } e.target.form.reason.disabled = true; e.target.form.reason.value = ''; } } } twinklewarnelcome.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:'' }; (contracted; show full) 'wpWatchthis': (form.wpWatchthis.checked || TwinkleConfig.watchWarnings) ? 1 : undefined, 'wpStarttime': form.wpStarttime.value, 'wpEdittime': form.wpEdittime.value, 'wpAutoSummary': form.wpAutoSummary.value, 'wpEditToken': form.wpEditToken.value, 'wpSection': '', 'wpSummary': twinklew arnelcome.messages[self.params.main_group][self.params.sub_group].summary + ( self.params.article ? ' on [[' + self.params.article + ']]' : '' ) + '.' + TwinkleConfig.summaryAd, 'wpTextbox1': text }; self.post( postData ); } } twinklewarnelcome.callback.evaluate = function twinklewarnelcomeCallbackEvaluate(e) { // First, check to make sure a reason was filled in if uw-username was selected if(e.target.sub_group.value == 'uw-username' && e.target.reason.value.trim() == '') { alert("You must supply a reason for the \{\{uw-username}} template"); return; } // Then, 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': wgPageName, 'action': 'submit' }; Wikipedia.actionCompleted.redirect = wgPageName; Wikipedia.actionCompleted.notice = "Warning complete, reloading talk page in a few seconds"; var wikipedia_wiki = new Wikipedia.wiki( 'User talk page modification', query, twinklewarnelcome.callbacks.main ); wikipedia_wiki.params = params; wikipedia_wiki.followRedirect = true; wikipedia_wiki.get(); } All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://simple.wikipedia.org/w/index.php?diff=prev&oldid=3762304.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|