User:L293D/global.js: Difference between revisions
Appearance
Content deleted Content added
Created page with "mw.loader.using( ['mediawiki.user', 'mediawiki.util', 'mediawiki.api'], function() { mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&ti..." |
MusikAnimal (talk | contribs) fix to use the new version of MoreMenu |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js'); |
|||
mw.loader.using( ['mediawiki.user', 'mediawiki.util', 'mediawiki.api'], function() { |
|||
mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-dropdown-menus-vector.js'); |
|||
// This script is meant to help with [[Wikipedia:Articles for creation/Redirects]]. The GUI |
|||
}); |
|||
// was put together pretty messily and some of the code isn't too pretty either, but it works. |
|||
// To use it, add a new line with |
|||
// importScript( 'User:PhantomTech/scripts/AFCRHS.js' ); |
|||
// to your common.js and add yourself to the Articles for Creation |
|||
// checkpage at [[Wikipedia:WikiProject Articles for creation/Participants]] |
|||
// |
|||
// For help using the script, to report issues or to request changes use [[User Talk:PhantomTech]]. |
|||
importScript( "MediaWiki:Gadget-morebits.js" ); |
|||
importStylesheet( "MediaWiki:Gadget-morebits.css" ); |
|||
( function ( $, mw ) { |
|||
'use strict'; |
|||
$( document ).ready( function () { |
|||
function replyButton( sectionID ) { |
|||
var window = new Morebits.simpleWindow( 750, 400 ); |
|||
window.setTitle( 'Response Interface' ); |
|||
window.setScriptName( 'AFC/R HS' ); |
|||
window.addFooterLink( 'Source', 'User:PhantomTech/scripts/AFCRHS.js' ); |
|||
var form = new Morebits.quickForm( submitForm ); |
|||
form.append( { |
|||
type: 'hidden', |
|||
name: 'sectionID', |
|||
value: sectionID |
|||
} ); |
|||
form.append( { |
|||
type: 'radio', |
|||
name: 'acceptRadio', |
|||
list: [ |
|||
{ name: 'accept', label: 'Accept', value: true }, |
|||
{ name: 'accept', label: 'Decline', value: false, checked: true } |
|||
], |
|||
event: function ( event ) { |
|||
updateDynamicArea( event.target.form ); |
|||
} |
|||
} ); |
|||
form.append( { |
|||
type: 'div', |
|||
name: 'dynamic_area', |
|||
label: 'Something broke...' |
|||
} ); |
|||
form.append( { |
|||
type: 'submit', |
|||
label: 'Submit' |
|||
} ); |
|||
var renderedForm = form.render(); |
|||
window.setContent( renderedForm ); |
|||
window.display(); |
|||
updateDynamicArea( renderedForm ); |
|||
} |
|||
function updateDynamicArea( form ) { |
|||
var accept = Morebits.quickForm.getElements( form, "accept" )[ 0 ].checked; |
|||
var dynamic_area = new Morebits.quickForm.element( { |
|||
type: 'div', |
|||
name: 'dynamic_area' |
|||
} ); |
|||
if ( !accept ) { |
|||
dynamic_area.append( { |
|||
type: 'header', |
|||
label: 'Decline request' |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'select', |
|||
name: 'declineOptions', |
|||
label: 'Decline reason: ', |
|||
list: [ |
|||
{ type: 'option', name: 'declineOptions', value: 'unlikely', label: 'Unlikely title' }, |
|||
{ type: 'option', name: 'declineOptions', value: 'exists', label: 'Suggested title exists' }, |
|||
{ type: 'option', name: 'declineOptions', value: 'empty', label: 'Submission is empty' }, |
|||
{ type: 'option', name: 'declineOptions', value: 'notarget', label: 'Target does not exist' }, |
|||
{ |
|||
type: 'option', |
|||
name: 'declineOptions', |
|||
value: 'externallink', |
|||
label: 'Target is external link' |
|||
}, |
|||
{ |
|||
type: 'option', |
|||
name: 'declineOptions', |
|||
value: 'notredirect', |
|||
label: 'Request is not for a redirect' |
|||
}, |
|||
{ |
|||
type: 'option', |
|||
name: 'declineOptions', |
|||
value: 'editrequest', |
|||
label: 'Request is an edit request' |
|||
}, |
|||
{ |
|||
type: 'option', |
|||
name: 'declineOptions', |
|||
value: 'notenglish', |
|||
label: 'Request not in english' |
|||
}, |
|||
{ type: 'option', name: 'declineOptions', value: 'decline', label: 'Custom reason' } |
|||
] |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'input', |
|||
name: 'comment', |
|||
label: 'Provide custom reason if it is selected: ' |
|||
} ); |
|||
} else { |
|||
dynamic_area.append( { |
|||
type: 'header', |
|||
label: 'Accept request' |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'div', |
|||
name: 'redirectTypeInstructions', |
|||
label: 'Enter "none" for none, "to acronym" for {' + '{R' + ' to acronym}}, etc.' |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'input', |
|||
name: 'redirectTypes', |
|||
label: 'Redirect type: ', |
|||
value: 'none' |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'input', |
|||
name: 'redirTarget', |
|||
label: 'Redirect target: ' |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'input', |
|||
name: 'comment', |
|||
label: 'Comments: ', |
|||
value: 'All of the redirects you requested were created. Thank you for your contribution to Wikipedia!' |
|||
} ); |
|||
dynamic_area.append( { |
|||
type: 'dyninput', |
|||
name: 'redirectList', |
|||
label: 'List of redirects to be created', |
|||
min: 1, |
|||
max: 30, |
|||
sublabel: 'Name: ' |
|||
} ); |
|||
} |
|||
form.replaceChild( dynamic_area.render(), Morebits.quickForm.getElements( form, "dynamic_area" )[ 0 ] ); |
|||
} |
|||
function submitForm( e ) { |
|||
// Check if we're still on the current version of the page |
|||
var redirectPage = new Morebits.wiki.page( mw.config.get( 'wgPageName' ) ); |
|||
redirectPage.load( function () { |
|||
if ( parseInt( redirectPage.getCurrentID() ) !== mw.config.get( 'wgRevisionId' ) ) { |
|||
alert( 'Changes have been made to this page since the version you\'re viewing' ); |
|||
return; |
|||
} |
|||
// If version check passes, start making changes |
|||
Morebits.simpleWindow.setButtonsEnabled( false ); |
|||
var redirectType, target, redirects; |
|||
var form = e.target; |
|||
var sectionID = parseInt( form.sectionID.value ); |
|||
var accept = form.accept[ 0 ].checked; |
|||
var comment = form.comment.value; |
|||
var redirectTemplateCode = 'accept'; |
|||
var page = new Morebits.wiki.page( mw.config.get( 'wgPageName' ) ); |
|||
if ( accept ) { |
|||
redirectType = form.redirectTypes.value; |
|||
if ( redirectType !== 'none' ) { |
|||
redirectType = '\n{' + '{R ' + redirectType + '}}'; |
|||
} else { |
|||
redirectType = ''; |
|||
} |
|||
target = form.redirTarget.value; |
|||
redirects = []; |
|||
for ( var i = 0; i < form.redirectList.length; i++ ) { |
|||
if ( form.redirectList[ i ].value.length > 0 ) { |
|||
redirects.push( form.redirectList[ i ].value ); |
|||
} |
|||
} |
|||
if (redirects.length === 0) { |
|||
redirects.push(form.redirectList.value); |
|||
} |
|||
} else { |
|||
redirectTemplateCode = form.declineOptions.value; |
|||
} |
|||
Morebits.status.init( form ); |
|||
var requestStatus = new Morebits.status( 'Marking request on page as ' + (accept ? 'accepted' : 'denied' ) ); |
|||
page.setPageSection( sectionID ); |
|||
requestStatus.info( 'Loading request page...' ); |
|||
if ( accept ) { |
|||
// Get WikiProjects from target's talk page |
|||
var targetPageTalkPage = new Morebits.wiki.page( 'Talk:' + target ); |
|||
targetPageTalkPage.load( function () { |
|||
var talkPageText = '{' + '{sub' + 'st:WPAFC/redirect}}'; |
|||
if ( targetPageTalkPage.getPageText().indexOf("{" + "{Disambig" + "Project}}") > -1 || targetPageTalkPage.getPageText().indexOf("{" + "{ Disambig" + "Project }}") > -1 ) { |
|||
talkPageText += '\n{' + '{WikiProject ' + 'Disambiguation|class=redirect}}'; |
|||
} |
|||
var match = targetPageTalkPage.getPageText().match( /\{\{ ?((W|w)ikiProject |(W|w)P)(?!Articles for creation)(.*?)(?=\n|\||}})/g ); |
|||
if ( match !== null ) { |
|||
for ( var t = 0; t < match.length; t++ ) { |
|||
talkPageText += '\n' + match[ t ] + '|class=redirect}}'; |
|||
} |
|||
} |
|||
// Get ready to do some crazy recursion to get around making functions |
|||
// in loops without really solving the problem... |
|||
var index = -1; |
|||
var createRedirectFunction = function () { |
|||
index++; |
|||
var redirectPage = new Morebits.wiki.page( redirects[ index ] ); |
|||
redirectPage.load( function () { // Load redirect |
|||
// Create redirect page |
|||
redirectPage.setPageText( '#REDIRECT [[' + target + ']]' + redirectType ); |
|||
redirectPage.setEditSummary( 'Creating redirect per request - Using [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' ); |
|||
redirectPage.setCreateOption( 'createonly' ); |
|||
redirectPage.setMaxRetries(5); |
|||
redirectPage.save( function () { // Save redirect |
|||
// When that's done... |
|||
var redirectTalkPage = new Morebits.wiki.page( 'Talk:' + redirects[ index ] ); |
|||
redirectTalkPage.load( function () { // Load redirect talk |
|||
// Create redirect talk page |
|||
redirectTalkPage.setPageText( talkPageText ); |
|||
redirectTalkPage.setEditSummary( 'Creating redirect talk page per request - Using [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' ); |
|||
redirectPage.setMaxRetries(5); |
|||
redirectTalkPage.save( function () { // Save redirect talk |
|||
// When that's done... Do it all over again! |
|||
if ( index + 1 < redirects.length ) { |
|||
createRedirectFunction(); |
|||
//setTimeout(createRedirectFunction, 1000); |
|||
} else { |
|||
page.load( function () { // Edit Request |
|||
var text = page.getPageText(); |
|||
var match = text.match( /(==.*?==\n)((.|\n)*)/ ); |
|||
text = match[ 1 ] + '{' + '{afc-c|' + ( accept ? 'a' : 'd' ) + '}}\n' + match[ 2 ] + '\n:{' + '{su' + 'bst:afc redirect|' + redirectTemplateCode + '|' + comment + '}} ~~' + '~~\n{' + '{afc' + '-c|b}}'; |
|||
page.setPageSection( sectionID ); |
|||
page.setPageText( text ); |
|||
page.setMaxConflictRetries( 0 ); |
|||
page.setEditSummary( 'Responding to redirect request with [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' ); |
|||
page.save(); |
|||
} ); |
|||
} |
|||
} ); |
|||
} ); |
|||
} ); |
|||
} ); |
|||
}; |
|||
createRedirectFunction(); |
|||
//setTimeout(createRedirectFunction, 1000); |
|||
} ); |
|||
} else { |
|||
page.load( function () { // Edit request |
|||
var text = page.getPageText(); |
|||
var match = text.match( /(==.*?==\n)((.|\n)*)/ ); |
|||
text = match[ 1 ] + '{' + '{afc-c|' + ( accept ? 'a' : 'd' ) + '}}\n' + match[ 2 ] + '\n:{' + '{su' + 'bst:afc redirect|' + redirectTemplateCode + '|' + comment + '}} ~~' + '~~\n{' + '{afc' + '-c|b}}'; |
|||
page.setPageSection( sectionID ); |
|||
page.setPageText( text ); |
|||
page.setMaxConflictRetries( 0 ); |
|||
page.setEditSummary( 'Responding to redirect request with [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' ); |
|||
page.save(); |
|||
} ); |
|||
} |
|||
} ); |
|||
} |
|||
// Only start on the right page and if we're working with the current version |
|||
if ( mw.config.get( 'wgPageName' ) === 'Wikipedia:Articles_for_creation/Redirects' && mw.config.get( 'wgRevisionId' ) === mw.config.get( 'wgCurRevisionId' ) ) { |
|||
mw.loader.using( 'jquery.ui' ); |
|||
mw.loader.using( 'jquery.tipsy' ); |
|||
// Check if user is approved |
|||
var checkPage = new Morebits.wiki.page( 'Wikipedia:WikiProject Articles for creation/Participants' ); |
|||
checkPage.setPageSection( 1 ); |
|||
checkPage.load( function () { |
|||
var approvedUsers = checkPage.getPageText().match( /(?:\n\* ?\{\{user2\|(.*?)}})/g ); |
|||
if ( approvedUsers === null ) { |
|||
alert( 'Failed to load checkpage' ); |
|||
} else if ( $.inArray( mw.user.getName(), approvedUsers ) ) { |
|||
// Add links next to section headings |
|||
$( 'h2:has(.mw-headline:contains("Redirect request"))' ).each( function () { |
|||
var id = $( this ).children().last().find( 'a' ).attr( "href" ).match( /§ion=(\d+)/i )[ 1 ]; |
|||
var $replyLink = $( '<span class="mw-editsection">[<a href="#null">Respond</a>]</span>' ); |
|||
$replyLink.click( function () { |
|||
replyButton( id ); |
|||
} ); |
|||
$( this ).append( $replyLink ); |
|||
} ); |
|||
} else { |
|||
alert( 'You aren\'t on the checkpage at [[Wikipedia:WikiProject Articles for creation/Participants]]' ); |
|||
} |
|||
} ); |
|||
} |
|||
} ); |
|||
}( jQuery, mediaWiki ) ); |
Latest revision as of 22:30, 17 December 2019
mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js');
// This script is meant to help with [[Wikipedia:Articles for creation/Redirects]]. The GUI
// was put together pretty messily and some of the code isn't too pretty either, but it works.
// To use it, add a new line with
// importScript( 'User:PhantomTech/scripts/AFCRHS.js' );
// to your common.js and add yourself to the Articles for Creation
// checkpage at [[Wikipedia:WikiProject Articles for creation/Participants]]
//
// For help using the script, to report issues or to request changes use [[User Talk:PhantomTech]].
importScript( "MediaWiki:Gadget-morebits.js" );
importStylesheet( "MediaWiki:Gadget-morebits.css" );
( function ( $, mw ) {
'use strict';
$( document ).ready( function () {
function replyButton( sectionID ) {
var window = new Morebits.simpleWindow( 750, 400 );
window.setTitle( 'Response Interface' );
window.setScriptName( 'AFC/R HS' );
window.addFooterLink( 'Source', 'User:PhantomTech/scripts/AFCRHS.js' );
var form = new Morebits.quickForm( submitForm );
form.append( {
type: 'hidden',
name: 'sectionID',
value: sectionID
} );
form.append( {
type: 'radio',
name: 'acceptRadio',
list: [
{ name: 'accept', label: 'Accept', value: true },
{ name: 'accept', label: 'Decline', value: false, checked: true }
],
event: function ( event ) {
updateDynamicArea( event.target.form );
}
} );
form.append( {
type: 'div',
name: 'dynamic_area',
label: 'Something broke...'
} );
form.append( {
type: 'submit',
label: 'Submit'
} );
var renderedForm = form.render();
window.setContent( renderedForm );
window.display();
updateDynamicArea( renderedForm );
}
function updateDynamicArea( form ) {
var accept = Morebits.quickForm.getElements( form, "accept" )[ 0 ].checked;
var dynamic_area = new Morebits.quickForm.element( {
type: 'div',
name: 'dynamic_area'
} );
if ( !accept ) {
dynamic_area.append( {
type: 'header',
label: 'Decline request'
} );
dynamic_area.append( {
type: 'select',
name: 'declineOptions',
label: 'Decline reason: ',
list: [
{ type: 'option', name: 'declineOptions', value: 'unlikely', label: 'Unlikely title' },
{ type: 'option', name: 'declineOptions', value: 'exists', label: 'Suggested title exists' },
{ type: 'option', name: 'declineOptions', value: 'empty', label: 'Submission is empty' },
{ type: 'option', name: 'declineOptions', value: 'notarget', label: 'Target does not exist' },
{
type: 'option',
name: 'declineOptions',
value: 'externallink',
label: 'Target is external link'
},
{
type: 'option',
name: 'declineOptions',
value: 'notredirect',
label: 'Request is not for a redirect'
},
{
type: 'option',
name: 'declineOptions',
value: 'editrequest',
label: 'Request is an edit request'
},
{
type: 'option',
name: 'declineOptions',
value: 'notenglish',
label: 'Request not in english'
},
{ type: 'option', name: 'declineOptions', value: 'decline', label: 'Custom reason' }
]
} );
dynamic_area.append( {
type: 'input',
name: 'comment',
label: 'Provide custom reason if it is selected: '
} );
} else {
dynamic_area.append( {
type: 'header',
label: 'Accept request'
} );
dynamic_area.append( {
type: 'div',
name: 'redirectTypeInstructions',
label: 'Enter "none" for none, "to acronym" for {' + '{R' + ' to acronym}}, etc.'
} );
dynamic_area.append( {
type: 'input',
name: 'redirectTypes',
label: 'Redirect type: ',
value: 'none'
} );
dynamic_area.append( {
type: 'input',
name: 'redirTarget',
label: 'Redirect target: '
} );
dynamic_area.append( {
type: 'input',
name: 'comment',
label: 'Comments: ',
value: 'All of the redirects you requested were created. Thank you for your contribution to Wikipedia!'
} );
dynamic_area.append( {
type: 'dyninput',
name: 'redirectList',
label: 'List of redirects to be created',
min: 1,
max: 30,
sublabel: 'Name: '
} );
}
form.replaceChild( dynamic_area.render(), Morebits.quickForm.getElements( form, "dynamic_area" )[ 0 ] );
}
function submitForm( e ) {
// Check if we're still on the current version of the page
var redirectPage = new Morebits.wiki.page( mw.config.get( 'wgPageName' ) );
redirectPage.load( function () {
if ( parseInt( redirectPage.getCurrentID() ) !== mw.config.get( 'wgRevisionId' ) ) {
alert( 'Changes have been made to this page since the version you\'re viewing' );
return;
}
// If version check passes, start making changes
Morebits.simpleWindow.setButtonsEnabled( false );
var redirectType, target, redirects;
var form = e.target;
var sectionID = parseInt( form.sectionID.value );
var accept = form.accept[ 0 ].checked;
var comment = form.comment.value;
var redirectTemplateCode = 'accept';
var page = new Morebits.wiki.page( mw.config.get( 'wgPageName' ) );
if ( accept ) {
redirectType = form.redirectTypes.value;
if ( redirectType !== 'none' ) {
redirectType = '\n{' + '{R ' + redirectType + '}}';
} else {
redirectType = '';
}
target = form.redirTarget.value;
redirects = [];
for ( var i = 0; i < form.redirectList.length; i++ ) {
if ( form.redirectList[ i ].value.length > 0 ) {
redirects.push( form.redirectList[ i ].value );
}
}
if (redirects.length === 0) {
redirects.push(form.redirectList.value);
}
} else {
redirectTemplateCode = form.declineOptions.value;
}
Morebits.status.init( form );
var requestStatus = new Morebits.status( 'Marking request on page as ' + (accept ? 'accepted' : 'denied' ) );
page.setPageSection( sectionID );
requestStatus.info( 'Loading request page...' );
if ( accept ) {
// Get WikiProjects from target's talk page
var targetPageTalkPage = new Morebits.wiki.page( 'Talk:' + target );
targetPageTalkPage.load( function () {
var talkPageText = '{' + '{sub' + 'st:WPAFC/redirect}}';
if ( targetPageTalkPage.getPageText().indexOf("{" + "{Disambig" + "Project}}") > -1 || targetPageTalkPage.getPageText().indexOf("{" + "{ Disambig" + "Project }}") > -1 ) {
talkPageText += '\n{' + '{WikiProject ' + 'Disambiguation|class=redirect}}';
}
var match = targetPageTalkPage.getPageText().match( /\{\{ ?((W|w)ikiProject |(W|w)P)(?!Articles for creation)(.*?)(?=\n|\||}})/g );
if ( match !== null ) {
for ( var t = 0; t < match.length; t++ ) {
talkPageText += '\n' + match[ t ] + '|class=redirect}}';
}
}
// Get ready to do some crazy recursion to get around making functions
// in loops without really solving the problem...
var index = -1;
var createRedirectFunction = function () {
index++;
var redirectPage = new Morebits.wiki.page( redirects[ index ] );
redirectPage.load( function () { // Load redirect
// Create redirect page
redirectPage.setPageText( '#REDIRECT [[' + target + ']]' + redirectType );
redirectPage.setEditSummary( 'Creating redirect per request - Using [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' );
redirectPage.setCreateOption( 'createonly' );
redirectPage.setMaxRetries(5);
redirectPage.save( function () { // Save redirect
// When that's done...
var redirectTalkPage = new Morebits.wiki.page( 'Talk:' + redirects[ index ] );
redirectTalkPage.load( function () { // Load redirect talk
// Create redirect talk page
redirectTalkPage.setPageText( talkPageText );
redirectTalkPage.setEditSummary( 'Creating redirect talk page per request - Using [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' );
redirectPage.setMaxRetries(5);
redirectTalkPage.save( function () { // Save redirect talk
// When that's done... Do it all over again!
if ( index + 1 < redirects.length ) {
createRedirectFunction();
//setTimeout(createRedirectFunction, 1000);
} else {
page.load( function () { // Edit Request
var text = page.getPageText();
var match = text.match( /(==.*?==\n)((.|\n)*)/ );
text = match[ 1 ] + '{' + '{afc-c|' + ( accept ? 'a' : 'd' ) + '}}\n' + match[ 2 ] + '\n:{' + '{su' + 'bst:afc redirect|' + redirectTemplateCode + '|' + comment + '}} ~~' + '~~\n{' + '{afc' + '-c|b}}';
page.setPageSection( sectionID );
page.setPageText( text );
page.setMaxConflictRetries( 0 );
page.setEditSummary( 'Responding to redirect request with [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' );
page.save();
} );
}
} );
} );
} );
} );
};
createRedirectFunction();
//setTimeout(createRedirectFunction, 1000);
} );
} else {
page.load( function () { // Edit request
var text = page.getPageText();
var match = text.match( /(==.*?==\n)((.|\n)*)/ );
text = match[ 1 ] + '{' + '{afc-c|' + ( accept ? 'a' : 'd' ) + '}}\n' + match[ 2 ] + '\n:{' + '{su' + 'bst:afc redirect|' + redirectTemplateCode + '|' + comment + '}} ~~' + '~~\n{' + '{afc' + '-c|b}}';
page.setPageSection( sectionID );
page.setPageText( text );
page.setMaxConflictRetries( 0 );
page.setEditSummary( 'Responding to redirect request with [[User:PhantomTech/scripts/AFCRHS.js|AFC/R HS]]' );
page.save();
} );
}
} );
}
// Only start on the right page and if we're working with the current version
if ( mw.config.get( 'wgPageName' ) === 'Wikipedia:Articles_for_creation/Redirects' && mw.config.get( 'wgRevisionId' ) === mw.config.get( 'wgCurRevisionId' ) ) {
mw.loader.using( 'jquery.ui' );
mw.loader.using( 'jquery.tipsy' );
// Check if user is approved
var checkPage = new Morebits.wiki.page( 'Wikipedia:WikiProject Articles for creation/Participants' );
checkPage.setPageSection( 1 );
checkPage.load( function () {
var approvedUsers = checkPage.getPageText().match( /(?:\n\* ?\{\{user2\|(.*?)}})/g );
if ( approvedUsers === null ) {
alert( 'Failed to load checkpage' );
} else if ( $.inArray( mw.user.getName(), approvedUsers ) ) {
// Add links next to section headings
$( 'h2:has(.mw-headline:contains("Redirect request"))' ).each( function () {
var id = $( this ).children().last().find( 'a' ).attr( "href" ).match( /§ion=(\d+)/i )[ 1 ];
var $replyLink = $( '<span class="mw-editsection">[<a href="#null">Respond</a>]</span>' );
$replyLink.click( function () {
replyButton( id );
} );
$( this ).append( $replyLink );
} );
} else {
alert( 'You aren\'t on the checkpage at [[Wikipedia:WikiProject Articles for creation/Participants]]' );
}
} );
}
} );
}( jQuery, mediaWiki ) );