User:Smallman12q/friendlytag1.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:Smallman12q/friendlytag1. |
// <nowiki>
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
FriendlyConfig = {};
}
/**
FriendlyConfig.summaryAd ( string )
If ad should be added or not to summary, default [[WP:FRIENDLY|Friendly]]
*/
if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {
FriendlyConfig.summaryAd = " using [[WP:FRIENDLY|Friendly]]";
}
/**
FriendlyConfig.groupByDefault ( boolean )
*/
if( typeof( FriendlyConfig.groupByDefault ) == 'undefined' ) {
FriendlyConfig.groupByDefault = true;
}
/**
FriendlyConfig.watchTaggedPages ( boolean )
*/
if( typeof( FriendlyConfig.watchTaggedPages ) == 'undefined' ) {
FriendlyConfig.watchTaggedPages = true;
}
/**
FriendlyConfig.markTaggedPagesAsMinor ( boolean )
*/
if( typeof( FriendlyConfig.markTaggedPagesAsMinor ) == 'undefined' ) {
FriendlyConfig.markTaggedPagesAsMinor = true;
}
/**
FriendlyConfig.markTaggedPagesAsPatrolled ( boolean )
*/
if( typeof( FriendlyConfig.markTaggedPagesAsPatrolled ) == 'undefined' ) {
FriendlyConfig.markTaggedPagesAsPatrolled = true;
}
var isRedirect = false;
function friendlytag() {
if( QueryString.exists( 'redirect' ) && QueryString.get( 'redirect' ) == 'no' && !QueryString.exists( 'rcid' ) ) {
isRedirect = true;
mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "tag", "friendly-tag", "Tag redirect", "");
} else if( wgNamespaceNumber != 0 || wgCurRevisionId == false ) {
return;
} else {
mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "tag", "friendly-tag", "Tag article", "");
}
}
addOnloadHook(friendlytag);
friendlytag.callback = function friendlytagCallback( uid ) {
var Window = new SimpleWindow( 600, 400 );
var form = new QuickForm( friendlytag.callback.evaluate );
Window.setTitle( "Article Templates" );
form.append( {
type: 'checkbox',
list: [
{
label: 'Group into {{article issues}} if possible',
value: 'group',
name: 'group',
tooltip: 'If applying three or more templates supported by {{article issues}} and this box is checked, all supported templates will be grouped into a single {{article issues}} template.',
checked: FriendlyConfig.groupByDefault
}
]
}
);
form.append( { type:'submit' } );
//article namespace
form.append( { type:'header', label:'General' } );
form.append( { type:'checkbox', name: 'general', list: friendlytag.generalList } );
form.append( { type:'header', label:'Sources / Citations / References' } );
form.append( { type:'checkbox', name: 'sources_citations_references', list: friendlytag.sources_citations_referencesList } );
form.append( { type:'header', label:'Links' } );
form.append( { type:'checkbox', name: 'links', list: friendlytag.linksList } );
form.append( { type:'header', label:'Cleanup' } );
form.append( { type:'checkbox', name: 'cleanup', list: friendlytag.cleanupList } );
form.append( { type:'header', label:'Deletion / Renaming / Discussion' } );
form.append( { type:'checkbox', name: 'deletion_renaming_discussion', list: friendlytag.deletion_renaming_discussionList } );
form.append( { type:'header', label:'Disputes and warnings' } );
form.append( { type:'checkbox', name: 'disputes_and_warnings', list: friendlytag.disputes_and_warningsList } );
form.append( { type:'header', label:'Maintenance' } );
form.append( { type:'checkbox', name: 'maintenance', list: friendlytag.maintenanceList } );
form.append( { type:'header', label:'Wikimedia Sister Projects' } );
form.append( { type:'checkbox', name: 'wikimedia_sister_projects', list: friendlytag.wikimedia_sister_projectsList } );
form.append( { type:'header', label:'Compact tables of contents (TOC)' } );
form.append( { type:'checkbox', name: 'compact_tables_of_contents', list: friendlytag.compact_tables_of_contentsList } );
form.append( { type:'header', label:'Lists' } );
form.append( { type:'checkbox', name: 'lists', list: friendlytag.listsList } );
form.append( { type:'header', label:'Standard boxes' } );
form.append( { type:'checkbox', name: 'standard_boxes', list: friendlytag.standard_boxesList } );
form.append( { type:'header', label:'Formatting' } );
form.append( { type:'checkbox', name: 'gormatting', list: friendlytag.FormattingList } );
//end of article namespace templates
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
friendlytag.generalList = [
{
label: 'Disambiguation and redirection',
value: 'disambiguation_and_redirection'
subgroup: {
name: 'disambiguation_and_redirectionn',
type: 'checkbox',
list: [
{
label: "\{\{ dablink|message \}\}: articles with alternative meanings ",
value: "dablink_message"
type: 'input',
name: 'article',
label: 'Linked article (if supported by template)',
value:( QueryString.exists( 'vanarticle' ) ? QueryString.get( 'vanarticle' ) : '' ),
tooltip: 'An article might be linked to the welcome if the template supports it. Leave empty for no artice to be linked. Templates that support a linked article are marked with an asterisk. Ignored for templates that do not support a linked article.',
event: function( event ) {
event.stopPropagation();
},
};
}];
//////////////////////////
//////////////////////////////
if( !isRedirect ) {
Window.setTitle( "Article maintenance tagging" );
form.append( {
type: 'checkbox',
list: [
{
label: 'Group into {{article issues}} if possible',
value: 'group',
name: 'group',
tooltip: 'If applying three or more templates supported by {{article issues}} and this box is checked, all supported templates will be grouped into a single {{article issues}} template.',
checked: FriendlyConfig.groupByDefault
}
]
}
);
form.append( { type:'submit' } );
form.append( { type:'header', label:'Maintenance templates' } );
form.append( { type:'checkbox', name: 'maintenance', list: friendlytag.maintenanceList } );
form.append( { type:'header', label:'Problem templates' } );
form.append( { type:'checkbox', name: 'problem', list: friendlytag.problemList } );
form.append( { type:'header', label:'Notice templates' } );
form.append( { type:'checkbox', name: 'notice', list: friendlytag.noticeList } );
if( typeof( FriendlyConfig.customTagList ) == 'object' ) {
form.append( { type:'header', label:'Custom templates' } );
form.append( { type: 'checkbox', name: 'custom', list: FriendlyConfig.customTagList } );
}
} else {
Window.setTitle( "Redirect tagging" );
form.append( { type:'submit' } );
form.append( { type:'header', label:'Spelling, misspelling, tense and capitalization templates' } );
form.append( { type:'checkbox', name: 'spelling', list: friendlytag.spellingList } );
form.append( { type:'header', label:'Alternative name templates' } );
form.append( { type:'checkbox', name: 'alternative', list: friendlytag.alternativeList } );
form.append( { type:'header', label:'Miscellaneous and administrative redirect templates' } );
form.append( { type:'checkbox', name: 'administrative', list: friendlytag.administrativeList } );
}
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
friendlytag.maintenanceList = [
{
label: '\{\{cleanup\}\}: article may require cleanup',
value: 'cleanup'
},
{
label: '\{\{confusing\}\}: article may be confusing or unclear',
value: 'confusing'
},
{
label: '\{\{copyedit\}\}: article needs copy editing for grammar, style, cohesion, tone, and/or spelling',
value: 'copyedit'
},
{
label: '\{\{deadend\}\}: article has few or no links to other articles',
value: 'deadend'
},
{
label: '\{\{do-attempt\}\}: few or no other articles link to this one even after attempted de-orphaning',
value: 'do-attempt'
},
{
label: '\{\{essay-like\}\}: article is written like an essay and needs cleanup',
value: 'essay-like'
},
{
label: '\{\{expand\}\}: article needs expansion',
value: 'expand'
},
{
label: '\{\{expert\}\}: article needs attention from an expert on the subject',
value: 'expert'
},
{
label: '\{\{fansite\}\}: article resembles a fansite',
value: 'fansite'
},
{
label: '\{\{in-universe\}\}: article subject is fictional and needs rewriting from a non-fictional perspective',
value: 'in-universe'
},
{
label: '\{\{internallinks\}\}: article needs more relevant internal links',
value: 'internallinks'
},
{
label: '\{\{intro-missing\}\}: article has no lead section and one should be written',
value: 'intromissing'
},
{
label: '\{\{intro-toolong\}\}: article introduction is too long and should be shortened',
value: 'intro length'
},
{
label: '\{\{intro-tooshort\}\}: article introduction is too short and should be expanded',
value: 'tooshort'
},
{
label: '\{\{intro-rewrite\}\}: lead section of article needs to be rewritten to comply with guidelines',
value: 'introrewrite'
},
{
label: '\{\{morefootnotes\}\}: article has some references, but insufficient in-text citations',
value: 'morefootnotes'
},
{
label: '\{\{nofootnotes\}\}: article has references, but no in-text citations',
value: 'nofootnotes'
},
{
label: '\{\{notenglish\}\}: article is written in a language other than English and needs translation',
value: 'notenglish'
},
{
label: '\{\{orphan\}\}: article has few or no other articles that link to it',
value: 'orphan'
},
{
label: '\{\{plot\}\}: plot summary in article is too long',
value: 'plot'
},
{
label: '\{\{prose\}\}: article is in a list format that may be better presented using prose',
value: 'prose'
},
{
label: '\{\{pov-check\}\}: nominate article to be checked for neutrality',
value: 'pov-check'
},
{
label: '\{\{sections\}\}: article needs to be broken into sections',
value: 'sections'
},
{
label: '\{\{tone\}\}: tone of article is not appropriate',
value: 'tone'
},
{
label: '\{\{uncategorized\}\}: article is uncategorized',
value: 'uncategorized'
},
{
label: '\{\{verylong\}\}: article is too long',
value: 'verylong'
},
{
label: '\{\{wikify\}\}: article needs to be wikified',
value: 'wikify'
}
];
friendlytag.problemList = [
{
label: '\{\{advert\}\}: article is written like an advertisement',
value: 'advert'
},
{
label: '\{\{autobiography\}\}: article is an autobiography and may not be of NPOV',
value: 'autobiography'
},
{
label: '\{\{coi\}\}: article creator or major contributor may have a conflict of interest',
value: 'coi'
},
{
label: '\{\{context\}\}: article provides insufficient context',
value: 'context'
},
{
label: '\{\{disputed\}\}: article has questionable factual accuracy',
value: 'disputed'
},
{
label: '\{\{external links\}\}: article\'s external links may not follow content policies or guidelines',
value: 'external links'
},
{
label: '\{\{globalize\}\}: article may not represent a worldwide view of the subject',
value: 'globalize',
subgroup: {
name: 'globalize',
type: 'select',
list: [
{
label: "\{\{globalize\}\}: article may not represent a worldwide view of the subject",
value: "globalize"
},
{
label: "Region-specific \{\{globalize\}\} subtemplates",
list: [
{
label: "\{\{globalize/Australia\}\}: article deals primarily with the Australian viewpoint",
value: "globalize/Australia"
},
{
label: "\{\{globalize/Belgium\}\}: article deals primarily with the Belgian viewpoint",
value: "globalize/Belgium"
},
{
label: "\{\{globalize/Canada\}\}: article deals primarily with the Canadian viewpoint",
value: "globalize/Canada"
},
{
label: "\{\{globalize/Common law\}\}: article deals primarily with the viewpoint of common law countries",
value: "globalize/Common law"
},
{
label: "\{\{globalize/Eng\}\}: article deals primarily with the English-speaking viewpoint",
value: "globalize/Eng"
},
{
label: "\{\{globalize/Europe\}\}: article deals primarily with the European viewpoint",
value: "globalize/Europe"
},
{
label: "\{\{globalize/France\}\}: article deals primarily with the French viewpoint",
value: "globalize/France"
},
{
label: "\{\{globalize/Germany\}\}: article deals primarily with the German viewpoint",
value: "globalize/Germany"
},
{
label: "\{\{globalize/Greece\}\}: article deals primarily with the Greek viewpoint",
value: "globalize/Greece"
},
{
label: "\{\{globalize/Luxembourg\}\}: article deals primarily with the Luxembourgish viewpoint",
value: "globalize/Luxembourg"
},
{
label: "\{\{globalize/Netherlands\}\}: article deals primarily with the Dutch viewpoint",
value: "globalize/Netherlands"
},
{
label: "\{\{globalize/North America\}\}: article deals primarily with the North American viewpoint",
value: "globalize/North America"
},
{
label: "\{\{globalize/Northern\}\}: article deals primarily with the northern hemisphere viewpoint",
value: "globalize/Northern"
},
{
label: "\{\{globalize/Russia\}\}: article deals primarily with the Russian viewpoint",
value: "globalize/Russia"
},
{
label: "\{\{globalize/Southern\}\}: article deals primarily with the southern hemisphere viewpoint",
value: "globalize/Southern"
},
{
label: "\{\{globalize/UK\}\}: article deals primarily with the British viewpoint",
value: "globalize/UK"
},
{
label: "\{\{globalize/UK and Canada\}\}: article deals primarily with the British and Canadian viewpoints",
value: "globalize/UK and Canada"
},
{
label: "\{\{globalize/USA\}\}: article deals primarily with the American viewpoint",
value: "globalize/USA"
}
]
}
]
}
},
{
label: '\{\{overcoverage\}\}: Examples and perspectives in the article might have an extensive bias or disproportional coverage towards one or more specific regions',
value: 'overcoverage'
},
{
label: '\{\{hoax\}\}: article may be a complete hoax',
value: 'hoax'
},
{
label: '\{\{non-free\}\}: article may contain excessive or improper use of copyrighted materials',
value: 'non-free'
},
{
label: '\{\{notability\}\}: article\'s subject may not meet the notability guideline',
value: 'notability',
subgroup: {
name: 'notability',
type: 'select',
list: [
{
label: "\{\{notability\}\}: article\'s subject may not meet the notability guideline",
value: "none"
},
{
label: "\{\{notability|Academics\}\}: notability guideline for academics",
value: "Academics"
},
{
label: "\{\{notability|Biographies\}\}: notability guideline for biographies",
value: "Biographies"
},
{
label: "\{\{notability|Books\}\}: notability guideline for books",
value: "Books"
},
{
label: "\{\{notability|Companies\}\}: notability guideline for companies and organizations",
value: "Companies"
},
{
label: "\{\{notability|Episode\}\}: notability guideline for television episodes",
value: "Episode"
},
{
label: "\{\{notability|Fiction\}\}: notability guideline for fiction",
value: "Fiction"
},
{
label: "\{\{notability|Institutions\}\}: synonym of \"Companies\"",
value: "Institutions"
},
{
label: "\{\{notability|Music\}\}: notability guideline for music",
value: "Music"
},
{
label: "\{\{notability|Neologisms\}\}: notability guideline for neologisms",
value: "Neologisms"
},
{
label: "\{\{notability|Numbers\}\}: notability guideline for numbers",
value: "Numbers"
},
{
label: "\{\{notability|Organizations\}\}: synonym of \"Companies\"",
value: "Organizations"
},
{
label: "\{\{notability|Products\}\}: notability guideline for products and services",
value: "Products"
},
{
label: "\{\{notability|Web\}\}: notability guideline for web content",
value: "Web"
}
]
}
},
{
label: '\{\{npov\}\}: article does not maintain a neutral point of view',
value: 'npov'
},
{
label: '\{\{original research\}\}: article has original research or unverified claims',
value: 'original research'
},
{
label: '\{\{peacock\}\}: article may contain peacock terms that promotes the subject in a subjective manner without adding information',
value: 'peacock'
},
{
label: '\{\{primarysources\}\}: article needs reliable, third-party sources',
value: 'primarysources'
},
{
label: "\{\{recentism\}\}: article is slanted towards recent events",
value: "recentism"
},
{
label: '\{\{refimprove\}\}: article needs additional references or sources for verification',
value: 'refimprove'
},
{
label: '\{\{self-published\}\}: article may contain improper references to self-published sources',
value: 'self-published'
},
{
label: '\{\{synthesis\}\}: article may contain unpublished synthesis of published material that conveys unattributable ideas',
value: 'synthesis'
},
{
label: "\{\{toofewopinions\}\}: article may not include all significant viewpoints",
value: "toofewopinions"
},
{
label: '\{\{totally-disputed\}\}: article is not neutral and has questionable factual accuracy',
value: 'totally-disputed'
},
{
label: '\{\{unencyclopedic\}\}: article contains unencyclopeic material',
value: 'unencyclopedic'
},
{
label: '\{\{unreferenced\}\}: article has no references at all',
value: 'unreferenced'
},
{
label: '\{\{update\}\}: article information is out of date',
value: 'update'
},
{
label: '\{\{weasel\}\}: article quality may be compromised by the use of weasel words',
value: 'weasel'
}
];
friendlytag.noticeList = [
{
label: '\{\{current\}\}: article documents a current event',
value: 'current',
subgroup: {
name: 'current',
type: 'select',
list: [
{
label: "\{\{current\}\}: article documents a current event",
value: "current"
},
{
label: "\{\{bridge under construction\}\}: article contains information about a bridge currently under construction",
value: "bridge under construction"
},
{
label: "\{\{bridge under construction\}\}: article contains information about a building currently under construction",
value: "building under construction"
},
{
label: "\{\{current antics\}\}: person is currently participating in a reality television show",
value: "current antics"
},
{
label: "\{\{current bill\}\}: article documents proposed legislation that is currently being considered",
value: "current bill"
},
{
label: "\{\{current court case\}\}: article documents a current court case",
value: "current court case"
},
{
label: "\{\{current fiction\}\}: article is about a recently released work of fiction",
value: "current fiction"
},
{
label: "\{\{current game\}\}: article documents a current event in video gaming",
value: "current game"
},
{
label: "\{\{current person\}\}: article is about a person involved in a current event",
value: "current person"
},
{
label: "\{\{current product\}\}: article documents a recently released product",
value: "current product"
},
{
label: "\{\{current pw\}\}: article documents a current professional wrestling event",
value: "current pw"
},
{
label: "\{\{current spaceflight\}\}: article or section documents a current spaceflight",
value: "current spaceflight"
},
{
label: "\{\{current sport\}\}: article documents a current sports-related event",
value: "current sport"
},
{
label: "\{\{current sport delay\}\}: article documents a current sports-related event which may contain information not aired because of tape delay",
value: "current sport delay"
},
{
label: "\{\{current related\}\}: article is related to a current event",
value: "current related"
},
{
label: "\{\{current single\}\}: article documents a current single",
value: "current single"
},
{
label: "\{\{current territorial changes\}\}: article is subject to current territorial changes and may not represent up-to-date detail",
value: "current territorial changes"
},
{
label: "\{\{in space\}\}: article documents a person who is currently in space",
value: "in space"
},
{
label: "\{\{inland waterway under restoration\}\}: article contains information about an inland waterway currently under restoration",
value: "inland waterway under restoration"
},
{
label: "\{\{ongoing lawsuit\}\}: article documents an ongoing lawsuit",
value: "ongoing lawsuit"
},
{
label: "\{\{ongoing election\}\}: article contains information about an ongoing election",
value: "ongoing election"
},
{
label: "\{\{ongoing weather\}\}: article contains information about an ongoing meteorological event or phenomenon",
value: "ongoing weather"
},
{
label: "\{\{recent death\}\}: article is about a person who has recently died",
value: "recent death"
},
{
label: "\{\{recently convicted\}\}: article is about a person who has recently been convicted in a criminal case",
value: "recently convicted"
},
{
label: "\{\{road under construction\}\}: article contains information about a road currently under construction",
value: "road under construction"
}
]
}
},
{
label: '\{\{future\}\}: article is about scheduled or expected future events',
value: 'future',
subgroup: {
name: 'future',
type: 'select',
list: [
{
label: "\{\{future\}\}: article is about scheduled or expected future events",
value: "future"
},
{
label: "Education",
list: [
{
label: "\{\{future book\}\}: scheduled, forthcoming or expected future book(s)",
value: "future book"
},
{
label: "\{\{future museum\}\}: planned museum",
value: "future museum"
}
]
},
{
label: "Engineering",
list: [
{
label: "\{\{future building\}\}: expected future buildings or structures",
value: "future building"
},
{
label: "\{\{future chip\}\}: scheduled or expected future computer chips",
value: "future chip"
},
{
label: "\{\{future energy infrastructure\}\}: planned or expected future energy production, transmission, distribution or other energy related infrastructure",
value: "future energy infrastructure"
},
{
label: "\{\{future infrastructure\}\}: planned or expected future infrastructure",
value: "future infrastructure"
},
{
label: "\{\{future mine\}\}: planned or proposed future mine",
value: "future mine"
},
{
label: "\{\{future pipeline\}\}: planned or expected pipeline",
value: "future pipeline"
},
{
label: "\{\{future power plant\}\}: planned or expected power plant",
value: "future power plant"
},
{
label: "\{\{future scientific facility\}\}: expected future scientific facility",
value: "future scientific facility"
},
{
label: "\{\{future software\}\}: scheduled or expected future software",
value: "future software"
},
{
label: "\{\{future spaceflight\}\}: scheduled or expected spaceflight",
value: "future spaceflight"
},
{
label: "\{\{launching\}\}: rocket or spacecraft which is either currently in the process of launching, or is scheduled to launch within the next few days",
value: "launching"
},
{
label: "\{\{future web service\}\}: scheduled or expected Web service",
value: "future web service"
}
]
},
{
label: "Entertainment",
list: [
{
label: "\{\{future album\}\}: scheduled or expected album",
value: "future album"
},
{
label: "\{\{future amusement ride\}\}: planned or expected future amusement ride",
value: "future amusement ride"
},
{
label: "\{\{future channel\}\}: future television station, channel or network",
value: "future channel"
},
{
label: "\{\{future comic\}\}: scheduled or expected comic book release, or a series already in progress",
value: "future comic"
},
{
label: "\{\{future film\}\}: one or more scheduled or expected films",
value: "future film"
},
{
label: "\{\{future game\}\}: unreleased video game",
value: "future game"
},
{
label: "\{\{future play article\}\}: upcoming play or musical",
value: "future play article"
},
{
label: "\{\{future radio\}\}: future radio station, radio network or radio show",
value: "future radio"
},
{
label: "\{\{future single\}\}: scheduled or expected future single",
value: "future single"
},
{
label: "\{\{future television episode\}\}: scheduled upcoming television episode of an already-running TV series",
value: "future television episode"
},
{
label: "\{\{future television series\}\}: scheduled upcoming television series",
value: "future television series"
}
]
},
{
label: "Miscellaneous",
list: [
{
label: "\{\{concept product\}\}: contains information about conceptual products",
value: "concept product"
},
{
label: "\{\{future election\}\}: forthcoming or ongoing election",
value: "future election"
},
{
label: "\{\{future election in the United States\}\}: upcoming or ongoing election in the United States",
value: "future election in the United States"
},
{
label: "\{\{future product\}\}: scheduled or expected future product",
value: "future product"
},
{
label: "\{\{future product small\}\}: (small) future product, and may contain unverified, unreliable, or incorrect information",
value: "future product small"
}
]
},
{
label: "Transportation",
list: [
{
label: "\{\{future aircraft\}\}: scheduled or anticipated future aircraft",
value: "future aircraft"
},
{
label: "\{\{future airline\}\}: planned or expected new airline",
value: "future airline"
},
{
label: "\{\{future airport\}\}: planned or expected new airport",
value: "future airport"
},
{
label: "\{\{future airport authority\}\}: planned or expected new airport authority",
value: "future airport authority"
},
{
label: "\{\{future airport expansion\}\}: planned or expected expansion of an existing airport",
value: "future airport expansion"
},
{
label: "\{\{future Australian public transportation\}\}: planned or expected public transportation infrastructure in Australia",
value: "future Australian public transportation"
},
{
label: "\{\{future automobile\}\}: scheduled or anticipated future automobile",
value: "future automobile"
},
{
label: "\{\{future bridge\}\}: planned or proposed future bridge",
value: "future bridge"
},
{
label: "\{\{future Canadian public transportation\}\}: planned or expected public transportation infrastructure in Canada",
value: "future Canadian public transportation"
},
{
label: "\{\{future Chinese public transportation\}\}: planned or expected public transportation infrastructure in China",
value: "future Chinese public transportation"
},
{
label: "\{\{concept automobile\}\}: concept automobile",
value: "concept automobile"
},
{
label: "\{\{future French public transportation\}\}: planned or expected public transportation infrastructure in France",
value: "future French public transportation"
},
{
label: "\{\{future London transport infrastructure\}\}: planned or expected London Transport infrastructure",
value: "future London transport infrastructure"
},
{
label: "\{\{future motorcycle\}\}: scheduled or anticipated future motorcycle",
value: "future motorcycle"
},
{
label: "\{\{future public transportation\}\}: planned or expected public transportation infrastructure",
value: "future public transportation"
},
{
label: "\{\{future railway station\}\}: planned or expected future railway station",
value: "future railway station"
},
{
label: "\{\{future road\}\}: planned or expected future road",
value: "future road"
},
{
label: "\{\{future ship\}\}: planned or expected future ship",
value: "future ship"
},
{
label: "\{\{future tunnel\}\}: planned or expected future tunnel",
value: "future tunnel"
},
{
label: "\{\{future UK public transportation\}\}: planned or expected public transportation in the United Kingdom",
value: "future UK public transportation"
},
{
label: "\{\{future USA public transportation\}\}: proposed, planned, or expected public transportation infrastructure in the United States",
value: "future USA public transportation"
}
]
},
{
label: "Sports",
list: [
{
label: "\{\{future arena\}\}: planned or proposed arena",
value: "future arena"
},
{
label: "\{\{future motor sport\}\}: future motor sporting event or team",
value: "future motor sport"
},
{
label: "\{\{future pw\}\}: scheduled professional wrestling event that is taking place in the future",
value: "future pw"
},
{
label: "\{\{future sport\}\}: future sporting event or team",
value: "future sport"
},
{
label: "\{\{future sports venue\}\}: planned or expected sports venue",
value: "future sports venue"
},
{
label: "\{\{future stadium\}\}: planned or proposed stadium",
value: "future stadium"
}
]
}
]
}
},
{
label: '\{\{goceinuse\}\}: article is currently undergoing a major copy edit by the Guild of Copy Editors',
value: 'goceinuse' },
{
label: '\{\{inuse\}\}: article is undergoing a major edit for a short while',
value: 'inuse' },
{
label: '\{\{underconstruction\}\}: article is currently in the middle of an expansion or major revamping',
value: 'underconstruction' }
];
friendlytag.spellingList = [
{
label: '\{\{R from abbreviation\}\}: redirect from a title with an abbreviation',
value: 'R from abbreviation'
},
{
label: '\{\{R to list entry\}\}: redirect to a \"list of minor entities\"-type article which is a collection of brief descriptions for subjects not notable enough to have separate articles',
value: 'R to list entry'
},
{
label: '\{\{R to section\}\}: sames as \{\{R to list entry\}\}, but when list is more sectionlike in organization, such as list of fictional characters in a fictional universe.',
value: 'R to section'
},
{
label: '\{\{R from misspelling\}\}: redirect from a misspelling or typographical error',
value: 'R from misspelling'
},
{
label: '\{\{R from alternative spelling\}\}: redirect from a title with a different spelling',
value: 'R from alternative spelling'
},
{
label: '\{\{R from plural\}\}: redirect from a plural word to the singular equivalent',
value: 'R from plural'
},
{
label: '\{\{R from related word\}\}: redirect from a related word',
value: 'R from related word'
},
{
label: '\{\{R with possibilities\}\}: redirect from a title for a topic more detailed than what is currently provided on the target page, or section of that page, hence something which can and should be expanded',
value: 'R with possibilities'
},
{
label: '\{\{R from member\}\}: redirect from a person who is a member of a group to more general related topics, such as the group, organization, ensemble or team that he or she belongs to',
value: 'R from member'
},
{
label: '\{\{R from other capitalisation\}\}: redirect from a title with another method of capitalisation',
value: 'R from other capitalisation'
}
];
friendlytag.alternativeList = [
{
label: '\{\{R from alternative name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym',
value: 'R from alternative name'
},
{
label: '\{\{R from full name\}\}: redirect from a title that is a complete or more complete name',
value: 'R from full name'
},
{
label: '\{\{R from surname\}\}: redirect from a title that is a surname',
value: 'R from surname'
},
{
label: '\{\{R from historic name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym that has a significant historic past as a region, state, principate\'s holding, city, city-state or such, but which region has been subsumed into a modern era municipality, district or state, or otherwise suffered from a name change over time',
value: 'R from historic name'
},
{
label: '\{\{R from scientific name\}\}: redirect from the scientific name to the common name',
value: 'R from scientific name'
},
{
label: '\{\{R to scientific name\}\}: redirect from the common name to the scientific name',
value: 'R to scientific name'
},
{
label: '\{\{R from name and country\}\}: redirect from the specific name to the briefer name',
value: 'R from name and country'
},
{
label: '\{\{R from alternative language\}\}: redirect from an English name to a name in another language, or vice-versa',
value: 'R from alternative language'
},
{
label: '\{\{R from ASCII\}\}: redirect from a title in basic ASCII to the formal article title, with differences that are not diacritical marks (accents, umlauts, etc.)',
value: 'R from ASCII'
},
{
label: '\{\{R from title without diacritics\}\}: redirect to the article title with diacritical marks (accents, umlauts, etc.)',
value: 'R from title without diacritics'
}
];
friendlytag.administrativeList = [
{
label: '\{\{R from merge\}\}: redirect from a merged page in order to preserve its edit history',
value: 'R from merge'
},
{
label: '\{\{R to disambiguation page\}\}: redirect to a disambiguation page',
value: 'R to disambiguation page'
},
{
label: '\{\{R from duplicated article\}\}: redirect to a similar article in order to preserve its edit history',
value: 'R from duplicated article'
},
{
label: '\{\{R for as of\}\}: redirect page affects an \"as of ...\" link',
value: 'R for as of'
},
{
label: '\{\{R to decade\}\}: redirect from a year to the decade article',
value: 'R to decade'
},
{
label: '\{\{R from shortcut\}\}: redirect from a Wikipedia shortcut',
value: 'R from shortcut'
},
{
label: '\{\{R from CamelCase\}\}: redirect from a CamelCase title',
value: 'R from CamelCase'
},
{
label: '\{\{R from EXIF\}\}: redirect of a wikilink created from JPEG EXIF information (i.e. the \"metadata\" section on some image description pages)',
value: 'R from EXIF'
},
{
label: '\{\{R from school\}\}: redirect from a school article that had very little information',
value: 'R from school'
}
];
// Set to true if template can be grouped into {{articleissues}}
friendlytag.groupHash = {
'3O': true,
'advert': true,
'autobiography': true,
'biased': true,
'blpdispute': true,
'BLPunsourced': true,
'citations missing': true,
'citationstyle': true,
'citecheck': true,
'cleanup': true,
'COI': true,
'coi': true,
'colloquial': true,
'confusing': true,
'context': true,
'contradict': true,
'copyedit': true,
'criticisms': true,
'crystal': true,
'deadend': true,
'disputed': true,
'do-attempt': true,
'essay': true,
'essay-like': true,
'examplefarm': true,
'expand': true,
'expert': true,
'external links': true,
'fansite': true,
'fiction': true,
'gameguide': true,
'globalize': true,
'grammar': true,
'histinfo': true,
'hoax': true,
'howto': true,
'importance': true,
'inappropriate person': true,
'incomplete': true,
'intro length': true,
'intromissing': true,
'introrewrite': true,
'intro-toolong': true,
'intro-tooshort': true,
'in-universe': true,
'jargon': true,
'laundry': true,
'laundrylists': true,
'likeresume': true,
'long': true,
'newsrelease': true,
'notability': true,
'notable': true,
'NPOV': true,
'npov': true,
'onesource': true,
'OR': true,
'or': true,
'original research': true,
'peacock': true,
'plot': true,
'POV': true,
'pov': true,
'primarysources': true,
'prose': true,
'proseline': true,
'quotefarm': true,
'recent': true,
'refimprove': true,
'restructure': true,
'review': true,
'rewrite': true,
'roughtranslation': true,
'sections': true,
'self-published': true,
'spam': true,
'story': true,
'synthesis': true,
'technical': true,
'tone': true,
'toolong': true,
'tooshort': true,
'travelguide': true,
'trivia': true,
'unbalanced': true,
'unencyclopedic': true,
'unref': true,
'unreferenced': true,
'update': true,
'verylong': true,
'weasel': true,
'wikify': true
}
friendlytag.callbacks = {
main: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var tagRe, text = '', summaryText = 'Added';
var tags = new Array(), groupableTags = new Array();
if( !isRedirect ) {
// Check for preexisting tags and separate tags into groupable and non-groupable arrays
Status.info( 'Info', 'Checking for preexisting tags on the article' );
for( var i = 0; i < self.params.tags.length; i++ ) {
tagRe = new RegExp( '(\\{\\{' + self.params.tags[i] + '(\\||\\}\\}))', 'im' );
if( !tagRe.exec( form.wpTextbox1.value ) ) {
if( friendlytag.groupHash[ self.params.tags[i] ] ) {
groupableTags = groupableTags.concat( self.params.tags[i] );
} else {
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 && groupableTags.length >= 3 ) {
Status.info( 'Info', 'Grouping supported tags into \{\{article issues\}\}' );
groupableTags.sort();
text += '\{\{article issues';
summaryText += ' \{\{[[Template:article issues|article issues]]\}\} with parameters';
for( var i = 0; i < groupableTags.length; i++ ) {
text += '|' + groupableTags[i]
+ '=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}';
if( i == (groupableTags.length - 1) ) {
summaryText += ' and';
} else if ( i < (groupableTags.length - 1) && i != 0 ) {
summaryText += ',';
}
summaryText += ' ' + groupableTags[i];
}
text += '\}\}\n';
} else {
tags = tags.concat( groupableTags );
}
} else {
// Check for preexisting tags
Status.info( 'Info', 'Checking for preexisting tags on the redirect' );
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 redirect already...excluding' );
}
}
}
tags.sort();
for( var i = 0; i < tags.length; i++ ) {
if( tags[i] == 'uncategorized' ) {
form.wpTextbox1.value += '\n\n\{\{' + tags[i]
+ '|date=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}';
} else {
if( tags[i] == 'globalize' ) {
text += '\{\{' + self.params.globalizeSubcategory;
} else if( tags[i] == 'current' ) {
text += '\{\{' + self.params.currentSubcategory;
} else if( tags[i] == 'future' ) {
text += '\{\{' + self.params.futureSubcategory;
} else {
text += ( isRedirect ? '\n' : '' ) + '\{\{' + tags[i];
}
if( tags[i] == 'notability' && self.params.notabilitySubcategory != 'none' ) {
text += '|' + self.params.notabilitySubcategory;
}
if( tags[i] == 'do-attempt' ) {
text += '|att=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}\n';
} else {
text += isRedirect ? '\}\}' : '|date=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}\n';
}
}
if( i == (tags.length - 1) && ( i > 0 || groupableTags.length > 3 ) ) {
summaryText += ' and';
} else if ( i < (tags.length - 1) && ( i != 0 || groupableTags.length > 3 ) ) {
summaryText += ',';
}
summaryText += ' \{\{[[Template:';
if( tags[i] == 'globalize' ) {
summaryText += self.params.globalizeSubcategory + '|' + self.params.globalizeSubcategory;
} else if( tags[i] == 'current' ) {
summaryText += self.params.currentSubcategory + '|' + self.params.currentSubcategory;
} else if( tags[i] == 'future' ) {
summaryText += self.params.futureSubcategory + '|' + self.params.futureSubcategory;
} else {
summaryText += tags[i] + '|' + tags[i];
}
summaryText += ']]\}\}';
}
if( !isRedirect ) {
text += form.wpTextbox1.value;
} else {
text = form.wpTextbox1.value + text;
}
summaryText += ' tag' + ( ( tags.length + ( groupableTags.length > 3 ? 1 : 0 ) ) > 1 ? 's' : '' )
+ ' to ' + ( isRedirect ? 'redirect.' : 'article.' ) + FriendlyConfig.summaryAd;
var postData = {
'wpMinoredit': FriendlyConfig.markTaggedPagesAsMinor ? 1 : undefined,
'wpWatchthis': form.wpWatchthis.checked ? 1 : (FriendlyConfig.watchTaggedPages ? 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 );
if( FriendlyConfig.markTaggedPagesAsPatrolled && self.params.rcid != '' ) {
var query = {
'title': wgPageName,
'action': 'markpatrolled',
'rcid': self.params.rcid
};
var wikipedia_wiki = new Wikipedia.wiki( 'Marking page as patrolled', query );
wikipedia_wiki.post();
}
}
}
friendlytag.callback.evaluate = function friendlytagCallbackEvaluate(e) {
var form = e.target;
if( isRedirect ) {
var tags = form.getChecked( 'administrative' ).concat( form.getChecked( 'alternative' ) ).concat( form.getChecked( 'spelling' ) );
} else {
if( typeof( FriendlyConfig.customTagList ) == 'object' ) {
var tags = form.getChecked( 'notice' ).concat( form.getChecked( 'problem' ) ).concat( form.getChecked( 'maintenance' ) ).concat( form.getChecked( 'custom' ) );
} else {
var tags = form.getChecked( 'notice' ).concat( form.getChecked( 'problem' ) ).concat( form.getChecked( 'maintenance' ) );
}
var globalizeSubcategory = form.getChecked( 'problem.globalize' );
var notabilitySubcategory = form.getChecked( 'problem.notability' );
var currentSubcategory = form.getChecked( 'notice.current' );
var futureSubcategory = form.getChecked( 'notice.future' );
}
var params;
if( tags.length == 0 ) {
alert( 'You must select at least one tag!' );
return;
}
if( !isRedirect ) {
params = {
tags: tags,
group: form.group.checked,
globalizeSubcategory: globalizeSubcategory ? globalizeSubcategory[0] : null,
notabilitySubcategory: notabilitySubcategory ? notabilitySubcategory[0] : null,
currentSubcategory: currentSubcategory ? currentSubcategory[0] : null,
futureSubcategory: futureSubcategory ? futureSubcategory[0] : null,
rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : ''
}
} else {
params = {
tags: tags,
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 in some seconds";
var wikipedia_wiki = new Wikipedia.wiki( 'Article modification', query, friendlytag.callbacks.main );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
}
// </nowiki>