User:Chieftain Alex/ATools.js
From Guild Wars 2 Wiki
Jump to navigationJump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* <nowiki> */
/* ATools - Javascript tools for arseholes? No its AlexTools. Really? Yeah. Oh well too late I memorised the first one.
* Written by [[User:Chieftain Alex]] with swathes of code from everywhere.
* For use with the Vector skin.
*/
(function ATools (document) {
/* Fetch mw variables */
var conf = mw.config.get([
'wgServer',
'wgPageName',
'wgRelevantPageName',
'wgTitle',
'wgNamespaceNumber',
'wgCurRevisionId'
]);
/* Provide the pretty buttons to start the legwork! */
/** Last diff **/
var caHistory = document.getElementById('ca-history');
if (caHistory != undefined) {
lastdiff = document.createElement('li');
lastdiff.id = 'special-diff';
lastdiff.innerHTML = '<span><a href="/index.php?title=' + encodeURIComponent(conf.wgPageName) + '&diff=' + conf.wgCurRevisionId + '" title="Show differences between last and actual revision">diff last</a></span>'
document.getElementById('ca-history').parentNode.insertBefore(lastdiff, document.getElementById('ca-history').nextSibling)
}
/** Link to users' pages/images **/
if (conf.wgNamespaceNumber == 2 || conf.wgNamespaceNumber == 3) // namespace: User, User talk
{
var pageRootName = conf.wgTitle.substring(0, ((conf.wgTitle.indexOf('/') > 0) ? conf.wgTitle.indexOf('/') : conf.wgTitle.length));
var usertoolbox = document.createElement('div');
usertoolbox.id = 'userlinks';
usertoolbox.className = 'portal';
document.getElementById('mw-panel').appendChild(usertoolbox);
var usertoolboxheading = document.createElement('h3');
usertoolboxheading.id = 'userlinks-heading';
usertoolboxheading.innerHTML = 'Pages and files';
document.getElementById('userlinks').appendChild(usertoolboxheading);
var usertools = document.createElement('div');
usertools.id = 'link-list-box';
usertools.className = 'body';
usertools.innerHTML = '<ul>'
+ '<li id="user-subpages"><a title="Show user pages of User:' + pageRootName + '" href="/index.php?title=Special:Prefixindex&namespace=2&prefix=' + pageRootName.replace( ' ', '+' ) + '/">User\'s pages</a></li>'
+ '<li id="user-images" ><a title="Show user images of User:' + pageRootName + '" href="/index.php?title=Special:Prefixindex&namespace=6&prefix=User+' + pageRootName.replace( ' ', '+' ) + '">User\'s images</a></li>'
+ '</ul>'
document.getElementById('userlinks').appendChild(usertools);
}
/** Provide deletion and image tagging links **/
if ( typeof( atoolsTagging ) === 'undefined' || atoolsTagging == false ) {
} else {
if (document.getElementById('ca-viewsource') != null) {
return; // Protected, can't edit.
} else {
if (conf.wgNamespaceNumber !== -1) // not namespace: Special
{ // Deletion tags appear in every namespace.
var deletediv = document.createElement('div');
deletediv.id = 'deletetagger';
deletediv.className = 'portal';
document.getElementById('mw-panel').appendChild(deletediv);
var deletedivheading = document.createElement('h3');
deletedivheading.id = 'delete-tools-heading';
deletedivheading.innerHTML = 'Deletion tools';
document.getElementById('deletetagger').appendChild(deletedivheading);
var deletesmalldiv = document.createElement('div');
deletesmalldiv.id = 'delete-tools-list-box';
deletesmalldiv.className = 'body';
deletesmalldiv.innerHTML = '<ul>'
+ '<li id="dt-DelspeedySpam"><a title="Add a speedy deletion tag (spam)." href="' + conf.wgServer + '/index.php?title=' + conf.wgRelevantPageName.replace(/\+/g, '%2B').replace(/&/g, '%26').replace(/\"/g, '%22') + '&action=edit&atools=delspeedyspam">Spam (speedy)</a></li>'
+ '<li id="dt-DelspeedyRedirect"><a title="Add a speedy deletion tag (move remnant)." href="' + conf.wgServer + '/index.php?title=' + conf.wgRelevantPageName.replace(/\+/g, '%2B').replace(/&/g, '%26').replace(/\"/g, '%22') + '&action=edit&atools=delspeedyredirect">Redirect (speedy)</a></li>'
+ '</ul>'
document.getElementById('deletetagger').appendChild(deletesmalldiv);
}
if (conf.wgNamespaceNumber == 6) // namespace: File
{
var filediv = document.createElement('div');
filediv.id = 'imagetagger';
filediv.className = 'portal';
document.getElementById('mw-panel').appendChild(filediv);
var filedivheading = document.createElement('h3');
filedivheading.id = 'image-tools-heading';
filedivheading.innerHTML = 'Image tools';
document.getElementById('imagetagger').appendChild(filedivheading);
var filesmalldiv = document.createElement('div');
filesmalldiv.id = 'image-tools-list-box';
filesmalldiv.className = 'body';
filesmalldiv.innerHTML = '<ul>'
+ '<li id="it-Screenshot"><a title="Add a screenshot tag." href="' + conf.wgServer + '/index.php?title=' + conf.wgRelevantPageName.replace(/\+/g, '%2B').replace(/&/g, '%26').replace(/\"/g, '%22') + '&action=edit&atools=screenshot">Screenshot</a></li>'
+ '<li id="it-Icon" ><a title="Add an icon tag." href="' + conf.wgServer + '/index.php?title=' + conf.wgRelevantPageName.replace(/\+/g, '%2B').replace(/&/g, '%26').replace(/\"/g, '%22') + '&action=edit&atools=icon">Icon</a></li>'
+ '</ul>'
document.getElementById('imagetagger').appendChild(filesmalldiv);
}
/** The editing bit **/
/* Check if its not supposed to be doing anything! */
if (window.location.href.indexOf('action=edit') < 0 || window.location.href.indexOf('atools=') < 0)
return;
var txtTextbox = document.getElementById('wpTextbox1');
var txtSummary = document.getElementById('wpSummary');
if (window.location.href.indexOf('atools=screenshot') > -1) // Screenshot
{
txtTextbox.value = txtTextbox.value
.replace(new RegExp("\\{\\{ArenaNet\\simage(\\|\\w+|)\\}\\}", "g"), "")
.replace(new RegExp("\\n(\\n*)\\n", "g"), "\n\n");
txtTextbox.value = '{{ArenaNet image|screenshot}}\n' + txtTextbox.value;
txtSummary.value = ' +ArenaNet image [screenshot]';
} else if (window.location.href.indexOf('atools=icon') != -1) // Icon
{
txtTextbox.value = txtTextbox.value
.replace(new RegExp("\\{\\{ArenaNet\\simage(\\|\\w+|)\\}\\}", "g"), "")
.replace(new RegExp("\\n(\\n*)\\n", "g"), "\n\n");
txtTextbox.value = '{{ArenaNet image|icon}}\n' + txtTextbox.value;
txtSummary.value = ' +ArenaNet image [icon]';
} else if (window.location.href.indexOf('atools=delspeedyspam') != -1) // Delspeedyspam
{
txtTextbox.value = '<noinclude>{{Del' + 'ete|Spam|speedy}}</noinclude>\n' + txtTextbox.value;
txtSummary.value = ' +Speedy deletion [spam]';
} else if (window.location.href.indexOf('atools=delspeedyredirect') != -1) // Delspeedyredirect
{
txtTextbox.value = '<noinclude>{{Del' + 'ete|Move remnant|speedy}}</noinclude>\n' + txtTextbox.value;
txtSummary.value = ' +Speedy deletion [move remnant]';
} else {
return // Exit the function if its not working
}
document.getElementById('wpMinoredit').checked = true;
txtSummary.value += ' | [[User:Chieftain Alex/ATools.js|ATools]] ';
document.getElementById('editform').submit();
}
}
})(document);
/* </nowiki> */