/******************************************************************************
* *
* [[Help:Substitution|Substituted]] from [[Template:Deltab]], which was *
* apparently based on code by [[User:Raylu|Raylu]]. Includes generalizations *
* from [[User:Pb30/Delsort tab/delsort.js]] and code snippets from *
* [[Wikipedia:AutoEd|AutoEd]] (and random stuff from other places, *
* identified inline). *
* *
* Some discussion can be found at [[User talk:Ioeth/Archive 6#JS request]]). *
* *
* This script adds a "sort deletion" tab to the top of XfD pages. *
* *
*****************************************************************************/
function addDelsortMessage() {
var action = mw.config.get( "wgAction" );
if( action == 'view' ){
window.location.href = mw.config.get( "wgServer" ) + mw.config.get( "wgScript" ) + '?title=' + encodeURIComponent( mw.config.get( "wgPageName" ) ) + '&action=edit';
}
//prompt for 'type', the name of the delsort list
if( action == 'edit' || action == 'submit' ){
var type = prompt('Enter category');
type = type.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); //trim1 from [http://blog.stevenlevithan.com/archives/faster-trim-javascript]
if( type === null || type.length === 0 || type === 'undefined' ){ return; }
//grab page elements and define vars
var txt = document.forms.editform.wpTextbox1;
var newTxt = '\n\{\{subst:deletion sorting|' + type + '|— \~\~\~\~\}\}\n';
var desc = document.forms.editform.wpSummary;
var newDesc = 'tagged as a ' + type + '-related XfD discussion ([[User:Dinoguy1000/scripts/delsort.js|script-assisted]]).';
//add notice to text
if( txt.value.indexOf(newTxt) == -1 && txt.value.indexOf('This debate has been included in the [[Wikipedia:WikiProject Deletion sorting\/' + type) == -1 ) {
txt.value = txt.value.rtrim();
txt.value += newTxt;
} else {
alert('This debate has already been tagged as a ' + type + '-related XfD discussion.');
return;
}
//add notice to summary
if( newDesc.match(/[^\s]/) ) {
if( desc.value.indexOf(newDesc) == -1 ) {
if( desc.value.match(/[^\*\/\s][^\/\s]?\s*$/) ){ desc.value += " | "; }
desc.value += newDesc;
}
}
//minor edit checked, but don't autosubmit
document.forms.editform.wpMinoredit.checked = true;
//document.forms.editform.submit();
}
}
jQuery( function( $ ) {
var action = mw.config.get( "wgAction" ),
ns = mw.config.get( "wgNamespaceNumber" ),
title = mw.config.get( "wgTitle" );
/*
if( ns == 4 && title.match( / for d(elet|iscuss)ion/ ) &&
( ( title.match( /(Articles|Miscellany) for deletion/ ) != -1 && action == 'view' ) ||
action == 'edit' || action == 'submit' ) ) {
if( typeof( document.forms.editform ) != 'undefined' ) {
mw.util.addPortletLink( 'p-cactions', 'javascript:addDelsortMessage()', 'Sort deletion', 'ca-SortDeletion', 'Sort Deletion', '', document.getElementById('ca-move'));
} else if (wgIsArticle && $('#ca-edit') && action == "view") {
var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=edit';
mw.util.addPortletLink( 'p-cactions', url + '&DelSort=true', 'Sort deletion', 'ca-SortDeletion', 'Sort Deletion', '', $('#ca-move'));
}
}
*/
if( ns == 4 && title.match( / for d(elet|iscuss)ion/ ) &&
( ( title.match( /(Articles|Miscellany) for deletion/ ) != -1 && action == 'view' ) ||
action == 'edit' || action == 'submit' ) ) {
// if( !$( '.xfd-closed' ) ||
// ( ( action == 'edit' || action == 'submit' ) &&
// document.forms.editform.wpTextbox1.value.indexOf( 'xfd-closed' ) == -1 ) ) {
mw.util.addPortletLink( 'p-cactions', 'javascript:addDelsortMessage()', 'Sort deletion', 'ca-Sortdeletion', 'Sort Deletion', '' );
// }
}
} );