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> */