User:Gregbard/assessortags2.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. |
Documentation for this user script can be added at User:Gregbard/assessortags2. |
importScript('User:AzaToth/morebits.js');
// If assessortagsConfig aint exist.
if( typeof( assessortagsConfig ) == 'undefined' ) {
assessortagsConfig = {};
}
/**
assessortagsConfig.summaryAd ( string )
*/
if( typeof( assessortagsConfig.summaryAd ) == 'undefined' ) {
assessortagsConfig.summaryAd = " using [[User:Gregbard/inphilo.js/doc|INPHILO]]";
}
/**
assessortagsConfig.markTaggedPagesAsMinor ( boolean )
*/
if( typeof( assessortagsConfig.markTaggedPagesAsMinor ) == 'undefined' ) {
assessortagsConfig.markTaggedPagesAsMinor = true;
}
function assessortags() {
if( wgNamespaceNumber == 1 || wgNamespaceNumber == 5 || wgNamespaceNumber == 7 || wgNamespaceNumber == 11 || wgNamespaceNumber == 13 ||wgNamespaceNumber == 15 || wgNamespaceNumber == 101 )
mw.util.addPortletLink( 'p-cactions', "javascript:assessortags.callback()", "WP:PHILO", "ca-wikiprojecttags", "Add WikiProject banners", "");
}
addOnloadHook(assessortags);
assessortags.callback = function assessortagsCallback() {
var Window = new SimpleWindow( 400, 500 );
var form = new QuickForm( assessortags.callback.evaluate );
Window.setTitle( "WikiProject Philosophy Banner" );
}
form.append( { type:'header', label:'Task Forces' } );
form.append( { type:'checkbox', name: 'main', list: assessortags.mainList } );
}
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
assessortags.mainList = [
{
label: 'Philosophy',
value: 'WikiProject Philosophy',
subgroup: {
name: 'phil',
type: 'checkbox',
list: [
{
label: "Aesthetics task force",
value: "|aesthetics=yes"
},
{
label: "Epistemology War task force",
value: "|epistemology=yes"
},
{
label: "Ethics task force",
value: "|ethics=yes"
},
{
label: "Logic task force",
value: "|logic=yes"
},
{
label: "Metaphysics task force",
value: "|metaphysics=yes"
},
{
label: "Social and Political Philosophy task force",
value: "|social=yes"
},
{
label: "Ancient Philosophy task force",
value: "|ancient=yes"
},
{
label: "Medieval Philosophy task force",
value: "|medieval=yes"
},
{
label: "Modern Philosophy task force",
value: "|modern=yes"
},
{
label: "Contemporary Philosophy task force",
value: "|contemporary=yes"
},
{
label: "Analytic Philosophy task force",
value: "|analytic=yes"
},
{
label: "Continental Philosophy task force",
value: "|continental=yes"
},
{
label: "Eastern Philosophy task force",
value: "|eastern=yes"
},
{
label: "Jurisprudence task force",
value: "|law=yes"
},
{
label: "Philosophy of language task force",
value: "|language=yes"
},
{
label: "Philosophy of mind task force",
value: "|mind=yes"
},
{
label: "Philosophy of religion task force",
value: "|religion=yes"
},
{
label: "Philosophy of science task force",
value: "|science=yes"
},
{
label: "Philosophers task force",
value: "|philosopher=yes"
},
{
label: "Philosophical literature task force",
value: "|literature=yes"
},
{
label: "Top Importance",
value: "|importance=top"
},
{
label: "High Importance",
value: "|importance=high"
},
{
label: "Mid Importance",
value: "|importance=mid"
},
{
label: "Low Importance",
value: "|importance=low"
},
{
label: "Stub Class",
value: "|class=stub"
},
{
label: "Start Class",
value: "|class=start"
},
{
label: "C-Class",
value: "|class=C"
},
{
label: "Peer Review",
value: "|peer-review=yes"
},
{
label: "Needs Attention",
value: "|attention=yes"
}
]
}
},
];
assessortags.callbacks = {
main: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var tagRe, text = '', summaryText = ''; //Is the summaryText still needed?
var tags = new Array(), groupableTags = new Array(); //Is the groupableTags really still needed? Removing it fowls stuff up, but it seems like it should be removable
// Check for preexisting tags
Status.info( 'Info', 'Looking for banners already on page' );
for( var i = 0; i < self.params.tags.length; i++ ) {
tagRe = new RegExp( '(\\{\\{' + self.params.tags[i] + '(\\||\\}\\}))', 'im' );
if( !tagRe.exec( form.wpTextbox1.value ) ) {
tags = tags.concat( self.params.tags[i] );
} else {
Status.info( 'Info', 'Found \{\{' + self.params.tags[i]
+ '\}\} on the article already...excluding' );
}
}
if( self.params.group && tags.length >= 2 ) {
Status.info( 'Info', 'Adding banners to top of page' );
groupableTags.sort();
for( var i = 0; i < tags.length; i++ ) {
text += '\{\{' + tags[i];
if( tags[i] == 'D&D' ) {
text += self.params.dungeonsanddragonsSubcategory.join("");
} else if( tags[i] == 'WikiProject Philosophy' ) {
text += self.params.philSubcategory.join("");
}
text += '\}\}\n';
}
} else {
tags = tags.concat( groupableTags );
}
if( self.params.group && tags.length < 2 ) {
Status.info( 'Info', 'Adding banners to top of page' );
tags.sort();
for( var i = 0; i < tags.length; i++ ) {
text += '\{\{' + tags[i];
if( tags[i] == 'WikiProject Philosophy' ) {
text += self.params.philSubcategory.join("");
}
text += '\}\}\n';
}
}
text += form.wpTextbox1.value;
summaryText += 'Added WikiProject banners to page' + assessortagsConfig.summaryAd;
var postData = {
'wpMinoredit': assessortagsConfig.markTaggedPagesAsMinor ? 1 : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': summaryText,
'wpTextbox1': text
};
self.post( postData );
}
}
assessortags.callback.evaluate = function assessortagsCallbackEvaluate(e) {
var form = e.target;
{
var philSubcategory = form.getChecked( 'main.phil' );
}
var params;
if( tags.length == 0 ) {
alert( 'Please select at least one banner.' );
return;
}
params = {
tags: tags,
group: form.group.checked,
philSubcategory: philSubcategory ? philSubcategory : null,
rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : ''
}
Status.init( form );
var query = {
'title': wgPageName,
'action': 'submit'
};
Wikipedia.actionCompleted.redirect = wgPageName;
Wikipedia.actionCompleted.notice = "Tagging complete, reloading article";
var wikipedia_wiki = new Wikipedia.wiki( 'Article modification', query, assessortags.callbacks.main );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
}
// </nowiki>