User:Thisisborin9/assessmenttag.js

// // If AssessConfig aint exist. if( typeof( AssessConfig ) == 'undefined' ) { AssessConfig = function {}; } /** AssessConfig.summaryAd (string) If ad should be added or not to summary, default Quick Assessment */ if( typeof( AssessConfig.summaryAd ) == 'undefined' ) { AssessConfig.summaryAd = " using Quick Assessment"; } function quickassessment { if( wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk" || wgNamespaceNumber == -1 ||wgCanonicalNamespace == "Main") { return; }	if( userIsInGroup( 'sysop' ) ) { mw.util.addPortletLink( 'p-cactions', "javascript:quickassessment.callback", "assess", "q-assess", "Assess page", ""); } else if (assessConfigExists) { mw.util.addPortletLink( 'p-cactions', "javascript:quickassessment.callback", "assess", "q-assess", "Assess page", ""); }	else {		mw.util.addPortletLink('p-cactions', 'javascript:alert("Your account is too new to use Quick Assessment.");', 'assess', 'q-assess', 'Assess page', ''); } } $(quickassessment); quickassessment.callback = function quickassessmentCallback { var Window = new SimpleWindow( 600, 400 ); Window.setTitle( "WikiProject Assessment" ); var form = new QuickForm( quickassessment.callback.evaluate ); form.append( {			type: 'select',			name: 'category',			label: 'Select a class: ',			event: quickassessment.callback.disabledefaults,			list: [				{					label: 'Class',					list: [						{ label: 'NA-Class', value: 'na' },						{ label: 'Template-Class', value: 'template' },						{ label: 'List-Class', value: 'list' },						{ label: 'Stub-Class', value: 'stub' },						{ label: 'Start-Class', value: 'start' },						{ label: 'B-Class', value: 'b' },						{ label: 'GA-Class', value: 'ga' },						{ label: 'A-Class', value: 'a' },						{ label: 'FA-Class', value: 'fa' },						{ label: 'FL-Class', value: 'fl' },						{ label: , selected: true, value:  }					]				}			]		} );

form.append( { 			type:'input',			name:'wikiproject',			label:'WikiProject Name',			tooltip:'Enter the exact template name for the WikiProject, such as (NBA Project) or (WikiProject California)'		} );

var flags = form.append( {			type: 'field',			label: 'Select importance'		} );

flags.append( {			type: 'checkbox',			list: [				{					name: 'low',					label: 'Low-importance',				},				{					name: 'mid',					label: 'Mid-importance',				},				{					name: 'high',					label: 'High-importance',				},				{					name: 'top',					label: 'Top-importance',				}                       ]                } );

var flags = form.append( {			type: 'field',			label: 'Options'		} ); flags.append( {			type: 'checkbox',			list: [				{					name: 'bannershell',					label: 'Wrap inside the template ',					tooltip: 'Will wrap inside WikiProjectBannerShell for 3 or more templates',				},				{ 					name: 'nested',					label: 'Add |nested=yes tags',					tooltip: 'Will use the |nested=yes feature of the template, therefore enabling WikiProjectBannerShell',				}			]		} ); form.append( { type:'submit' } ); var result = form.render; Window.setContent( result ); Window.display; } twinkleprotect.callback.disabledefaults = function twinkleprotectCallbackDisableDefaults(e) { var root = e.target.form; if( e.target.value == 'na' ) { root.low.disabled = true; root.mid.disabled = true; root.high.disabled = true; root.top.disabled = true; root.bannershell.disabled = true; root.nested.disabled = true; } else { root.low.disabled = false; root.mid.disabled = false; root.high.disabled = false; root.top.disabled = false; root.bannershell.disabled = false; root.nested.disabled = false; if( userIsInGroup( 'sysop' ) && root.request_only.checked ){ root.small.disabled = true; root.noinclude.disabled = true; }	}	if( /template/.test( e.target.value ) ) { root.noinclude.checked = true; root.expiry.disabled = true; } else { root.noinclude.checked = false; } }

twinkleprotect.callback.evaluate = function twinkleprotectCallbackEvaluate(e) { var form = e.target; var params = { noinclude: form.noinclude.checked, cascade: form.cascade.checked, small: form.small.checked, reason: form.reason.value, expiry: form.expiry.value, type: form.category.value }	Status.init( form ); if( userIsInGroup( 'sysop' ) && ! request_only ) { var edit, move, tag = params.type, reason, create = ''; switch( tag ) { case 'pp-dispute': edit = 'sysop'; move = 'sysop'; reason = 'Full protection: Dispute'; break; case 'pp-vandalism': edit = 'sysop'; move = 'sysop'; reason = 'Full protection: Vandalism'; break; case 'pp-template': edit = 'sysop'; move = 'sysop'; reason = 'Full protection: High-visible template'; break; case 'pp-usertalk': edit = 'sysop'; move = 'sysop'; reason = 'Full protection: User talk of blocked user'; break; case 'pp-protected': edit = 'sysop'; move = 'sysop'; if( params.reason ) { tag += '|reason=' + params.reason; params.reason = undefined; }			reason = 'Full protection'; break; case 'pp-semi-vandalism': edit = 'autoconfirmed'; move = 'autoconfirmed'; reason = 'Semi-protection: Vandalism'; break; case 'pp-semi-usertalk': edit = 'autoconfirmed'; move = 'autoconfirmed'; reason = 'Semi-protection: User talk of blocked user'; break; case 'pp-semi-template': edit = 'autoconfirmed'; move = 'autoconfirmed'; reason = 'Semi-protection: High-visible template'; break; case 'pp-semi-spambot': edit = 'autoconfirmed'; move = 'autoconfirmed'; reason = 'Semi-protection: Spambot target'; break; case 'pp-semi-protected': edit = 'autoconfirmed'; move = 'autoconfirmed'; if( params.reason ) { tag += '|reason=' + params.reason; params.reason = undefined; }			reason = 'Semi-protection'; break; case 'pp-move': edit = ''; move = 'sysop'; reason = 'Move-protection'; break; case 'pp-create': edit = ''; move = ''; create = 'sysop'; reason = 'Create-protection: \{\{pp-create\}\}'; break; case 'unprotect': default: edit = ''; move = ''; reason = 'Unprotection'; break; }		if( params.reason ) { reason += ', ' + params.reason; }		reason += '.'; params.reason = reason; params.tag = tag; params.edit = edit; params.move = move; params.create = create; var query = { 'title': wgPageName, 'action': 'submit' };		// Updating data for the action completed event Wikipedia.actionCompleted.redirect = query['title']; Wikipedia.actionCompleted.notice = "Done..."; if( create == '' ) { var wikipedia_wiki = new Wikipedia.wiki( 'Tagging page', query, twinkleprotect.callbacks.sysop.taggingPage ); wikipedia_wiki.params = params; wikipedia_wiki.get; }		var query = { 'title': wgPageName, 'action': 'protect' };		var wikipedia_wiki = new Wikipedia.wiki( 'Protecting page', query, twinkleprotect.callbacks.sysop.protectingPage ); wikipedia_wiki.params = params; wikipedia_wiki.get; } else { var typename, reason; switch( params.type ) { case 'pp-dispute': case 'pp-vandalism': case 'pp-template': case 'pp-usertalk': case 'pp-protected': typename = 'full protection'; break; case 'pp-semi-vandalism': case 'pp-semi-usertalk': case 'pp-semi-template': case 'pp-semi-spambot': case 'pp-semi-protected': typename = 'semi-protection'; break; case 'pp-move': typename = 'move-protection'; break; case 'pp-create': typename = 'create-protection'; break; case 'unprotect': default: typename = 'unprotection'; break; }		switch( params.type ) { case 'pp-dispute': reason = 'Dispute'; break; case 'pp-vandalism': reason = 'Vandalism'; break; case 'pp-template': reason = 'High-visible template'; break; case 'pp-usertalk': reason = 'User talk of blocked user'; break; case 'pp-protected': reason = ''; break; case 'pp-semi-vandalism': reason = 'Vandalism'; break; case 'pp-semi-usertalk': reason = 'User talk of blocked user'; break; case 'pp-semi-template': reason = 'High-visible template'; break; case 'pp-semi-spambot': reason = 'Spambot target'; break; case 'pp-semi-protected': reason = ''; break; case 'pp-move': reason = ''; break; case 'pp-create': reason = ''; break; case 'unprotect': default: reason = ''; break; }		if( reason != '' ) { reason = "" + reason + ""; }		if( params.reason ) { reason += ', ' + params.reason; }		if( reason != '' ) { reason += '.'; }		params.reason = reason; params.typename = typename; var query = { 'title': 'Wikipedia:Requests for page protection', 'action': 'submit' };		// Updating data for the action completed event Wikipedia.actionCompleted.redirect = query['title']; Wikipedia.actionCompleted.notice = "Nomination completed, redirecting now to the discussion page"; var wikipedia_wiki = new Wikipedia.wiki( 'Requesting protection of page', query, twinkleprotect.callbacks.user ); wikipedia_wiki.params = params; wikipedia_wiki.get; } } twinkleprotect.callbacks = { sysop: { taggingPage: function( self ) { var form = self.responseXML.getElementById( 'editform' ); var oldtag_re = /\s*(?: )?\s*\{\{\s*(pp-[^{}]*?|protected|(?:t|v|s|p-|usertalk-v|usertalk-s|sb|move)protected(?:2)?|protected template|privacy protection)\s*?\}\}\s*(?:<\/noinclude>)?\s*/gi; var text = form.wpTextbox1.value; text = text.replace( oldtag_re, '' ); if( self.params.type != 'unprotect' && self.params.expiry != 'indefinite' ) { self.params.tag += '|expiry='; if( this.params.small ) { self.params.tag += '|small=yes'; }			}			var summary; if( self.params.type == 'unprotect' ) { summary = 'removing protection template' + TwinkleConfig.summaryAd; } else { if( self.params.noinclude ) { text = " \{\{" + self.params.tag + "\}\} " + text; } else { text = "\{\{" + self.params.tag + "\}\}\n" + text; }				summary = "adding \{\{" + self.params.tag + "\}\}" + TwinkleConfig.summaryAd; }			var postData = { 'wpMinoredit': form.wpMinoredit.checked ? '' : undefined, 'wpWatchthis': form.wpWatchthis.checked ? '' : undefined, 'wpStarttime': form.wpStarttime.value, 'wpEdittime': form.wpEdittime.value, 'wpAutoSummary': form.wpAutoSummary.value, 'wpEditToken': form.wpEditToken.value, 'wpSummary': summary, 'wpTextbox1': text };			self.post( postData ); },		protectingPage: function( self ){ var form = self.responseXML.getElementById( 'mw-Protect-Form' ); var postData = { 'wpEditToken': form.wpEditToken.value, 'mwProtectWatch': form.mwProtectWatch.checked ? '' : undefined, 'mwProtectCascade': self.params.cascade ? '' : undefined, 'mwProtect-expiry': self.params.expiry != 'indefinite' ? self.params.expiry : undefined, 'mwProtect-level-edit': self.params.edit, 'mwProtect-level-move': self.params.move, 'mwProtect-level-create': self.params.create, 'mwProtect-reason': self.params.reason + TwinkleConfig.protectionSummaryAd };			self.post( postData ); }	},	user: function( self ) { var form = self.responseXML.getElementById( 'editform' ); var text = form.wpTextbox1.value; var rppRe = new RegExp( '====.*?' + RegExp.escape( wgPageName, true ) + '.*?====', 'm' ); var tag = rppRe.exec( text ); if( tag ) { self.statelem.warn( [ htmlNode( 'strong', tag[0] ), " is alread placed on the page." ] ) return false; }		var ns2tag	=	{ '0'	:	'la', '1'	:	'lat', '2'	:	'lu', '3'	:	'lut', '4'	:	'lw', '5'	:	'lwt', '6'	:	'li', '7'	:	'lit', '8'	:	'lm', '9'	:	'lmt', '10':	'lt', '11':	'ltt', '12':	'lh', '13':	'lht', '14':	'lc', '15':	'lct', '100':	'lp', '101':	'lpt' };		var newtag = '==== \{\{' + ns2tag[ wgNamespaceNumber ] + '|' + wgTitle + '\}\} ====' + "\n"; if( ( new RegExp( '^' + RegExp.escape( newtag ).replace( /\s+/g, '\\s*' ), 'm' ) ).test( text ) ) { self.statelem.error( 'There are already a request available for this page, aborting.' ); return; }		var words = []; switch( self.params.expiry ) { case 'temporary': words.push( "temporary" ); break; case 'indefinite': words.push( "indefinite" ); break; }		if( self.params.cascade ) { words.push( "cascading" ); }		words.push( self.params.typename ); newtag += "" + words.join( ' ' ) + "" + ( self.params.reason !=  ? ' ' + self.params.reason :  ) + "\~\~\~\~"; if( self.params.type == 'unprotect' ) { var str = "==Current requests for unprotection==\n"; } else { var str = "==Current requests for protection==\n"; }		text = text.replace( str, str + "\n" + newtag + "\n" ); var postData = { 'wpMinoredit': undefined, 'wpWatchthis': form.wpWatchthis.checked ? '' : undefined, 'wpStarttime': form.wpStarttime.value, 'wpEdittime': form.wpEdittime.value, 'wpAutoSummary': form.wpAutoSummary.value, 'wpEditToken': form.wpEditToken.value, 'wpSummary': "Requesting " + self.params.typename + ' of ' + wgPageName.replace('_', ' ') + '.' + TwinkleConfig.summaryAd, 'wpTextbox1': text };		self.post( postData ); } } //