importScript('User:AzaToth/morebits.js');
//See [[User:Drilnoth/assessortags.js/doc]] for details.
//Greatly based off of [[User:Ioeth/friendlytag.js]].
// <nowiki>
// If assessortagsConfig aint exist.
if( typeof( assessortagsConfig ) == 'undefined' ) {
assessortagsConfig = {};
}
/**
assessortagsConfig.summaryAd ( string )
If ad should be added or not to summary, default " using [[User:Drilnoth/assessortags.js/doc|AssessorTags]]"
*/
if( typeof( assessortagsConfig.summaryAd ) == 'undefined' ) {
assessortagsConfig.summaryAd = " using [[User:Drilnoth/assessortags.js/doc|AssessorTags]]";
}
/**
assessortagsConfig.groupByDefault ( boolean )
*/
if( typeof( assessortagsConfig.groupByDefault ) == 'undefined' ) {
assessortagsConfig.groupByDefault = true;
}
/**
assessortagsConfig.groupingBanner ( choice between WikiProjectBanners and WikiProjectBannerShell )
*/
if( typeof( assessortagsConfig.groupingBanner ) == 'undefined' ) {
assessortagsConfig.groupingBanner = "WikiProjectBannerShell";
}
/**
assessortagsConfig.markTaggedPagesAsMinor ( boolean )
*/
if( typeof( assessortagsConfig.markTaggedPagesAsMinor ) == 'undefined' ) {
assessortagsConfig.markTaggedPagesAsMinor = true;
}
function assessortags() {
if( mw.config.get('wgNamespaceNumber') == 1 || mw.config.get('wgNamespaceNumber') == 5 || mw.config.get('wgNamespaceNumber') == 7 || mw.config.get('wgNamespaceNumber') == 11 || mw.config.get('wgNamespaceNumber') == 13 ||mw.config.get('wgNamespaceNumber') == 15 || mw.config.get('wgNamespaceNumber') == 101 )
mw.util.addPortletLink( 'p-cactions', "javascript:assessortags.callback()", "wikiprojects", "ca-wikiprojecttags", "Add WikiProject banners", "");
}
$(assessortags);
assessortags.callback = function assessortagsCallback() {
var Window = new SimpleWindow( 400, 500 );
var form = new QuickForm( assessortags.callback.evaluate );
{
Window.setTitle( "WikiProject tagging" );
form.append( {
type: 'checkbox',
list: [
{
label: 'Group into {{' + assessortagsConfig.groupingBanner + '}}',
value: 'group',
name: 'group',
tooltip: 'If adding two or more banners and this box is checked, all newly added banners will be grouped into a single {{' + assessortagsConfig.groupingBanner + '}} template.',
checked: assessortagsConfig.groupByDefault
}
]
}
);
form.append( { type:'submit' } );
if( typeof( assessortagsConfig.customBannerList ) == 'object' ) {
form.append( { type:'header', label:'Custom' } );
form.append( { type: 'checkbox', name: 'custom', list: assessortagsConfig.customBannerList } );
form.append( { type:'submit' } );
}
form.append( { type:'header', label:'WikiProject banners (topical)' } );
form.append( { type:'checkbox', name: 'main', list: assessortags.mainList } );
form.append( { type:'header', label:'WikiProject banners (other)' } );
form.append( { type:'checkbox', name: 'second', list: assessortags.secondList } );
}
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
assessortags.mainList = [
{
label: 'Albums',
value: 'Album',
subgroup: {
name: 'album',
type: 'checkbox',
list: [
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
}
]
}
},
{
label: 'Biography',
value: 'WPBiography',
subgroup: {
name: 'biography',
type: 'checkbox',
list: [
{
label: "Actors and Filmmakers WikiProject",
value: "|filmbio-work-group=yes"
},
{
label: "Arts and Entertainment work group",
value: "|a&e-work-group=yes"
},
{
label: "British Royalty WikiProject",
value: "|british-royalty=yes"
},
{
label: "Military work group",
value: "|military-work-group=yes"
},
{
label: "Musicians WikiProject",
value: "|musician-work-group=yes"
},
{
label: "Peerage and Baronetage WikiProject",
value: "|peerage-work-group=yes"
},
{
label: "Politics and Government work group",
value: "|politician-work-group=yes"
},
{
label: "Royalty WikiProject",
value: "|royalty-work-group=yes"
},
{
label: "Science and Academia work group",
value: "|s&a-work-group=yes"
},
{
label: "Sports and Games work group",
value: "|sports-work-group=yes"
},
{
label: "Living: Yes",
value: "|living=yes",
tooltip: 'Check box if person is alive, otherwise check box below.'
},
{
label: "Living: No",
value: "|living=no",
tooltip: 'Check box if person is no longer alive, otherwise check box above.'
},
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
},
{
label: "Needs persondata",
value: "|needs-persondata=yes"
},
{
label: "Needs an image",
value: "|needs-photo=yes"
},
{
label: "Active politician",
value: "|activepol=yes"
}
]
}
},
{
label: 'Books',
value: 'WPBooks',
subgroup: {
name: 'books',
type: 'checkbox',
list: [
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
},
{
label: "Needs an image",
value: "|needs-infobox-cover=yes"
}
]
}
},
{
label: 'Computing',
value: 'WikiProject Computing',
subgroup: {
name: 'computing',
type: 'checkbox',
list: [
{
label: "Amiga WikiProject",
value: "|amiga=yes"
},
{
label: "Computer and Information Security task force",
value: "|security=yes"
},
{
label: "Computer Hardware task force",
value: "|hardware=yes"
},
{
label: "Computer Networking WikiProject",
value: "|network=yes"
},
{
label: "Early Computers task force",
value: "|early-comp=yes"
},
{
label: "Malware WikiProject",
value: "|malware=yes"
},
{
label: "Websites WikiProject",
value: "|websites=yes"
},
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
},
{
label: "Needs an image",
value: "|image-needed=yes"
}
]
}
},
{
label: 'Dungeons & Dragons',
value: 'D&D',
subgroup: {
name: 'dungeonsanddragons',
type: 'checkbox',
list: [
{
label: "Dragonlance task force",
value: "|Dragonlance=yes"
},
{
label: "Forgotten Realms task force",
value: "|Realms=yes"
},
{
label: "Greyhawk task force",
value: "|Greyhawk=yes"
},
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs general cleanup",
value: "|cleanup=yes"
},
{
label: "Needs rewrite to be out-of-universe",
value: "|fiction=yes"
},
{
label: "Good target for articles to be merged to",
value: "|merge=yes"
}
]
}
},
{
label: 'Films',
value: 'Film',
subgroup: {
name: 'films',
type: 'checkbox',
list: [
{
label: "American Cinema task force",
value: "|American-task-force=yes"
},
{
label: "Argentine Cinema task force",
value: "|Argentine-task-force=yes"
},
{
label: "Australian Cinema task force",
value: "|Australian-task-force=yes"
},
{
label: "Film Awards task force",
value: "|Awards-task-force=yes"
},
{
label: "Baltic Cinema task force",
value: "|Baltic-task-force=yes"
},
{
label: "British Cinema task force",
value: "|British-task-force=yes"
},
{
label: "Canadian Cinema task force",
value: "|Canadian-task-force=yes"
},
{
label: "Chinese Cinema task force",
value: "|Chinese-task-force=yes"
},
{
label: "Film Festivals task force",
value: "|Festival-task-force=yes"
},
{
label: "Filmmaking task force",
value: "|Filmmaking-task-force=yes"
},
{
label: "French Cinema task force",
value: "|French-task-force=yes"
},
{
label: "German Cinema task force",
value: "|German-task-force=yes"
},
{
label: "Indian Cinema task force",
value: "|Indian-task-force=yes"
},
{
label: "Italian Cinema task force",
value: "|Italian-task-force=yes"
},
{
label: "Japanese Cinema task force",
value: "|Japanese-task-force=yes"
},
{
label: "Korean Cinema task force",
value: "|Korean-task-force=yes"
},
{
label: "New Zealand Cinema task force",
value: "|NZ-task-force=yes"
},
{
label: "Nordic Cinema task force",
value: "|Nordic-task-force=yes"
},
{
label: "Persian Cinema task force",
value: "|Persian-task-force=yes"
},
{
label: "Southeast Asian Cinema task force",
value: "|Southeast-task-force=yes"
},
{
label: "Soviet and Post-Soviet Cinema task force",
value: "|Soviet-task-force=yes"
},
{
label: "Spanish Cinema task force",
value: "|Spanish-task-force=yes"
},
{
label: "War Films task force",
value: "|War-task-force=yes"
},
{
label: "Needs a plot summary",
value: "|needs-plot=yes"
},
{
label: "Needs more information about cast",
value: "|needs-cast=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
},
{
label: "Needs an image",
value: "|needs-image=yes"
}
]
}
},
{
label: 'LGBT Studies',
value: 'LGBTProject'
},
{
label: 'Military History',
value: 'WPMILHIST',
subgroup: {
name: 'milhist',
type: 'checkbox',
list: [
{
label: "No applicable task force",
value: "|no-task-force=yes"
},
{
label: "African Military History task force",
value: "|African=yes"
},
{
label: "American Civil War task force",
value: "|ACW=yes"
},
{
label: "American Revolutionary War task force",
value: "|ARW=yes"
},
{
label: "Australian Military History task force",
value: "|Australian=yes"
},
{
label: "Aviation, Military task force",
value: "|Aviation=yes"
},
{
label: "Balkan Military History task force",
value: "|Balkan=yes"
},
{
label: "Baltic Military History task force",
value: "|Baltic=yes"
},
{
label: "Biography task force",
value: "|Biography=yes"
},
{
label: "British Military History task force",
value: "|British=yes"
},
{
label: "Canadian Military History task force",
value: "|Canadian=yes"
},
{
label: "Chinese Military History task force",
value: "|Chinese=yes"
},
{
label: "Classical Warfare task force",
value: "|Classical=yes"
},
{
label: "Crusades task force",
value: "|Crusades=yes"
},
{
label: "Dutch Military History task force",
value: "|Dutch=yes"
},
{
label: "Early Modern Warfare task force",
value: "|Early-Modern=yes"
},
{
label: "Films, War task force",
value: "|Films=yes"
},
{
label: "French Military History task force",
value: "|French=yes"
},
{
label: "Fortifications task force",
value: "|Fortifications=yes"
},
{
label: "German Military History task force",
value: "|German=yes"
},
{
label: "Historiography, Military task force",
value: "|Historiography=yes"
},
{
label: "Indian Military History task force",
value: "|Indian=yes"
},
{
label: "Intelligence task force",
value: "|Intel=yes"
},
{
label: "Italian Military History task force",
value: "|Italian=yes"
},
{
label: "Japanese Military History task force",
value: "|Japanese=yes"
},
{
label: "Korean Military History task force",
value: "|Korean=yes"
},
{
label: "Land Vehicles, Military task force",
value: "|Land-vehicles=yes"
},
{
label: "Lebanese Military History task force",
value: "|Lebanese=yes"
},
{
label: "Maritime Warfare task force",
value: "|Maritime=yes"
},
{
label: "Medieval Warfare task force",
value: "|Medieval=yes"
},
{
label: "Memorials and Cemeteries, Military task force",
value: "|Memorials=yes"
},
{
label: "Middle Eastern Military History task force",
value: "|Middle-Eastern=yes"
},
{
label: "Muslim Military History, Early task force",
value: "|Muslim=yes"
},
{
label: "Napoleonic Era task force",
value: "|Napoleonic=yes"
},
{
label: "National Militaries task force",
value: "|National=yes"
},
{
label: "New Zealand Military History task force",
value: "|New-Zealand=yes"
},
{
label: "Nordic Military History task force",
value: "|Nordic=yes"
},
{
label: "Ottoman Military History task force",
value: "|Ottoman=yes"
},
{
label: "Polish Military History task force",
value: "|Polish=yes"
},
{
label: "Romanian Military History task force",
value: "|Romanian=yes"
},
{
label: "Russian Military History task force",
value: "|Russian=yes"
},
{
label: "Science, Military task force",
value: "|Science=yes"
},
{
label: "South American Military History task force",
value: "|South-American=yes"
},
{
label: "Southeast Asian Military History task force",
value: "|Southeast-Asian=yes"
},
{
label: "Spanish Military History task force",
value: "|Spanish=yes"
},
{
label: "Taiwanese Military History task force",
value: "|Taiwanese=yes"
},
{
label: "Technology and Engineering, Military task force",
value: "|Technology=yes"
},
{
label: "United States Military History task force",
value: "|US=yes"
},
{
label: "Weaponry task force",
value: "|Weaponry=yes"
},
{
label: "World War I task force",
value: "|WWI=yes"
},
{
label: "World War II task force",
value: "|WWII=yes"
}
]
}
},
{
label: 'Mississippi',
value: 'WikiProject Mississippi',
subgroup: {
name: 'mississippi',
type: 'checkbox',
list: [
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs picture",
value: "|needs-picture=yes"
},
{
label: "Needs reassessment",
value: "|reassess=yes"
},
{
label: "Candidate for merging",
value: "|merge=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
}
]
}
},
{
label: 'Russia',
value: 'WikiProject Russia',
subgroup: {
name: 'russia',
type: 'checkbox',
list: [
{
label: "Needs immediate attention",
value: "|attention=yes"
}
]
}
},
{
label: 'Simpsons, The',
value: 'WikiProject The Simpsons'
},
{
label: 'Songs',
value: 'Songs',
subgroup: {
name: 'songs',
type: 'checkbox',
list: [
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
}
]
}
},
{
label: 'Soviet Union',
value: 'WikiProject Soviet Union',
subgroup: {
name: 'soviet',
type: 'checkbox',
list: [
{
label: "Needs immediate attention",
value: "|attention=yes"
},
{
label: "Needs an infobox",
value: "|needs-infobox=yes"
}
]
}
},
{
label: 'Vital Articles',
value: 'Vital',
tooltip: 'Articles must be listed at [[WP:VA/E]] to be added to this project.',
subgroup: {
name: 'vital',
type: 'checkbox',
list: [
{
label: "Needs immediate attention",
value: "|attention=yes"
}
]
}
}
];
assessortags.secondList = [
{
label: 'Disambiguation',
value: 'DisambigProject'
}
];
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' );
Status.info( 'Info', 'Grouping banners into \{\{' + assessortagsConfig.groupingBanner + '\}\}' );
groupableTags.sort();
text += '\{\{' + assessortagsConfig.groupingBanner + '|1=' + '\n';
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] == 'WPBiography' ) {
text += self.params.biographySubcategory.join("");
} else if( tags[i] == 'Film' ) {
text += self.params.filmsSubcategory.join("");
} else if( tags[i] == 'WikiProject Computing' ) {
text += self.params.computingSubcategory.join("");
} else if( tags[i] == 'WPBooks' ) {
text += self.params.booksSubcategory.join("");
} else if( tags[i] == 'Vital' ) {
text += self.params.vitalSubcategory.join("");
} else if( tags[i] == 'WPMILHIST' ) {
text += self.params.milhistSubcategory.join("");
} else if( tags[i] == 'WikiProject Mississippi' ) {
text += self.params.mississippiSubcategory.join("");
} else if( tags[i] == 'WikiProject Russia' ) {
text += self.params.russiaSubcategory.join("");
} else if( tags[i] == 'WikiProject Soviet Union' ) {
text += self.params.sovietSubcategory.join("");
} else if( tags[i] == 'Album' ) {
text += self.params.albumSubcategory.join("");
} else if( tags[i] == 'Songs' ) {
text += self.params.songsSubcategory.join("");
}
text += '\}\}\n';
}
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] == 'D&D' ) {
text += self.params.dungeonsanddragonsSubcategory.join("");
} else if( tags[i] == 'WPBiography' ) {
text += self.params.biographySubcategory.join("");
} else if( tags[i] == 'Film' ) {
text += self.params.filmsSubcategory.join("");
} else if( tags[i] == 'WikiProject Computing' ) {
text += self.params.computingSubcategory.join("");
} else if( tags[i] == 'WPBooks' ) {
text += self.params.booksSubcategory.join("");
} else if( tags[i] == 'Vital' ) {
text += self.params.vitalSubcategory.join("");
} else if( tags[i] == 'WPMILHIST' ) {
text += self.params.milhistSubcategory.join("");
} else if( tags[i] == 'WikiProject Mississippi' ) {
text += self.params.mississippiSubcategory.join("");
} else if( tags[i] == 'WikiProject Russia' ) {
text += self.params.russiaSubcategory.join("");
} else if( tags[i] == 'WikiProject Soviet Union' ) {
text += self.params.sovietSubcategory.join("");
} else if( tags[i] == 'Album' ) {
text += self.params.albumSubcategory.join("");
} else if( tags[i] == 'Songs' ) {
text += self.params.songsSubcategory.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;
{if( typeof( assessortagsConfig.customBannerList ) == 'object' ) {
var tags = form.getChecked( 'main' ).concat( form.getChecked( 'second' ) ).concat( form.getChecked( 'custom' ) );
} else {
var tags = form.getChecked( 'main' ).concat( form.getChecked( 'second' ) );
}
var albumSubcategory = form.getChecked( 'main.album' );
var biographySubcategory = form.getChecked( 'main.biography' );
var booksSubcategory = form.getChecked( 'main.books' );
var computingSubcategory = form.getChecked( 'main.computing' );
var dungeonsanddragonsSubcategory = form.getChecked( 'main.dungeonsanddragons' );
var filmsSubcategory = form.getChecked( 'main.films' );
var milhistSubcategory = form.getChecked( 'main.milhist' );
var mississippiSubcategory = form.getChecked( 'main.mississippi' );
var russiaSubcategory = form.getChecked( 'main.russia' );
var songsSubcategory = form.getChecked( 'main.songs' );
var sovietSubcategory = form.getChecked( 'main.soviet' );
var vitalSubcategory = form.getChecked( 'main.vital' );
}
var params;
if( tags.length == 0 ) {
alert( 'Please select at least one banner.' );
return;
}
params = {
tags: tags,
group: form.group.checked,
albumSubcategory: albumSubcategory ? albumSubcategory : null,
biographySubcategory: biographySubcategory ? biographySubcategory : null,
booksSubcategory: booksSubcategory ? booksSubcategory : null,
computingSubcategory: computingSubcategory ? computingSubcategory : null,
dungeonsanddragonsSubcategory: dungeonsanddragonsSubcategory ? dungeonsanddragonsSubcategory : null,
filmsSubcategory: filmsSubcategory ? filmsSubcategory : null,
milhistSubcategory: milhistSubcategory ? milhistSubcategory : null,
mississippiSubcategory: mississippiSubcategory ? mississippiSubcategory : null,
russiaSubcategory: russiaSubcategory ? russiaSubcategory : null,
songsSubcategory: songsSubcategory ? songsSubcategory : null,
sovietSubcategory: sovietSubcategory ? sovietSubcategory : null,
vitalSubcategory: vitalSubcategory ? vitalSubcategory : null,
rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : ''
}
Status.init( form );
var query = {
'title': mw.config.get('wgPageName'),
'action': 'submit'
};
Wikipedia.actionCompleted.redirect = mw.config.get('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>