User:Dr ishmael/monobook.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.
function addStuffToSideBar()
{
if (wgCanonicalSpecialPageName === 'Statistics') {
$.ajax({ url: 'http://wiki.gw2.org.cn/api.php?action=query&meta=siteinfo&siprop=statistics',
success: function(data) {
$('<tr class="mw-statistics-jobs"><td>Job queue</td><td class="mw-statistics-numbers">' + data.match(/jobs="(\d+)"/i)[1].replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td></tr>').insertAfter('.mw-statistics-edits-average');
}
});
}
document.getElementById('n-recentchanges').firstChild.href = '/index.php?title=Special:RecentChanges&hidemyself=1&hidebots=';
var comm = document.createElement('div');
comm.id = "myWikiLinks";
comm.className = "generated-sidebar portlet";
comm.innerHTML = '<h5>Command center</h5>'+
'<div id="commandCenterDiv" class="pBody"><ul>'+
'<li id="n-abusefilter"><a href="/wiki/Special:AbuseFilter">AbuseFilter</a></li>'+
'<li id="n-deletion"><a href="/wiki/Guild Wars 2 Wiki:Bots">Bots</a></li>'+
'<li id="n-deletion"><a href="/wiki/Guild Wars 2 Wiki:List of candidates for deletion">Deletion</a></li>'+
'<li id="n-export"><a href="/wiki/Special:Export">Export</a></li>'+
'<li id="n-masterlog"><a href="/wiki/Special:Log">Master log</a></li>'+
'<li id="n-sitenotice"><a href="/wiki/MediaWiki:Sitenotice" style="display:inline">Sitenotice</a> / <a href="/wiki/MediaWiki:Sitenotice_id" style="display:inline">id</a></li>'+
'<li id="n-specialpages"><a href="/wiki/Special:SpecialPages">Special pages</a></li>'+
'<li id="n-sysmsgs"><a href="/wiki/Special:Allmessages">System messages</a></li>'+
'<li id="n-statsversion"><a href="/wiki/Special:Statistics" style="display:inline">Statistics</a> / <a href="/wiki/Special:Version" style="display:inline">Version</a></li>'+
'</ul></div>';
document.getElementById('p-search').parentNode.insertBefore(comm,document.getElementById('p-search'));
var pref = document.createElement('div');
pref.id = "p-prefixIndex";
pref.className = "generated-sidebar portlet";
pref.innerHTML = '<h5><label for="prefixInput">Search by prefix</label></h5>'+
'<div id="prefixBody" class="pBody" style="text-align:center">'+
'<form id="prefixform" action="/index.php">'+
'<input type="hidden" name="title" value="Special:PrefixIndex">'+
'<input type="search" id="prefixInput" name="prefix" title="Search by prefix" style="font-size:95%;width:10em">'+
'<input type="submit" id="mw-prefixButton" class="searchButton" name="go" title="Search for all pages with this prefix" value="Go">'+
'</form>'+
'</div>';
document.getElementById('p-Support').parentNode.insertBefore(pref,document.getElementById('p-Support'));
if (window.location.href.indexOf('oldid=') >= 0) {
document.getElementById('ca-edit').style.display = 'none';
}
}
/***** Custom edit buttons ****/
var addExtraButtons = function(){
mw.toolbar.addButton({
imageFile: "http://upload.wikimedia.org/wikipedia/commons/2/23/Button_code.png",
speedTip: "Code",
tagOpen: "<code>",
tagClose: "</code>",
sampleText: "",
imageId: 'button-code'
});
mw.toolbar.addButton({
imageFile: "http://images2.wikia.nocookie.net/__cb20070405031754/central/images/7/73/Button_code_nowiki.png",
speedTip: "Code+nowiki",
tagOpen: "<code><nowiki>",
tagClose: "</nowiki></code>",
sampleText: "",
imageId: 'button-code-nowiki'
});
mw.toolbar.addButton({
imageFile: "http://upload.wikimedia.org/wikipedia/commons/1/1b/Button_hide_wiki_tag.png",
speedTip: "HTML comment",
tagOpen: "<!--",
tagClose: "-->",
sampleText: "",
imageId: 'button-html-comment'
});
mw.toolbar.addButton({
imageFile: "http://upload.wikimedia.org/wikipedia/commons/c/ce/Button_no_include.png",
speedTip: "Noinclude",
tagOpen: "<noinclude>",
tagClose: "</noinclude>",
sampleText: "",
imageId: 'button-noinclude'
});
mw.toolbar.addButton({
imageFile: "http://upload.wikimedia.org/wikipedia/commons/b/bf/Button_pagename.png",
speedTip: "Pagename",
tagOpen: "{{",
tagClose: "subst:PAGENAME}}",
sampleText: "",
imageId: 'button-pagename'
});
mw.toolbar.addButton({
imageFile: "http://upload.wikimedia.org/wikipedia/commons/c/c9/Button_strike.png",
speedTip: "Strikethrough",
tagOpen: "<s>",
tagClose: "</s>",
sampleText: "",
imageId: 'button-strikethrough'
});
mw.toolbar.addButton({
imageFile: "http://upload.wikimedia.org/wikipedia/commons/1/18/Button_quotes_2.png",
speedTip: "Quote",
tagOpen: "{{quote|",
tagClose: "}}",
sampleText: "",
imageId: 'button-quote'
});
};
if( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
mw.loader.using( 'user.options', function () {
if ( ! mw.user.options.get( 'usebetatoolbar' ) ) {
mw.loader.using( 'mediawiki.action.edit', function() {
$( addExtraButtons );
});
}
});
}
/*** hideUser for RC ***/
/*** Author: User:Dr ishmael ***/
/* Notes:
- Don't click on the Hide button - this will submit the RC filter form.
- Instead, after typing in the text field, hit Tab to move focus to the button, then hit Space to activate the JavaScript without submitting the form.
*/
function hideUserWrapper()
{
if (document.title.substring(0,14) == 'Recent changes') {
var tables = document.getElementsByTagName('table');
var RCinput;
for (var i = 0; i < tables.length; i++) {
if (tables[i].className == 'mw-recentchanges-table') {
RCinput = tables[i];
break;
}
}
var uls = document.getElementsByTagName('ul');
var RCuls = new Array();
for (var i = 0; i < uls.length; i++) {
if (uls[i].className == 'special') {
RCuls.push(uls[i]);
}
}
var myInput = document.createElement('input');
myInput.type = 'text';
myInput.id = 'hideUsername';
myInput.name = 'hideUsername';
var myLabel = document.createElement('label');
myLabel.htmlFor = 'hideUsername';
myLabel.innerHTML = "Hide user:";
var mySubmit = document.createElement('input');
mySubmit.type = 'button';
mySubmit.value = 'Hide';
var newRow = RCinput.insertRow(1);
var newLabelCell = newRow.insertCell(0);
var newInputCell = newRow.insertCell(1);
newLabelCell.appendChild(myLabel);
newInputCell.appendChild(myInput);
newInputCell.appendChild(mySubmit);
try { // non-IE
mySubmit.addEventListener("click", function() { hideUser(RCuls) }, false);
}
catch(e) { // IE
mySubmit.attachEvent("onclick", function(){ hideUser(RCuls) } );
}
}
}
function hideUser(RCuls)
{
var usernames = document.getElementById('hideUsername').value.split(',');
for (var j = 0; j < RCuls.length; j++) {
var lis = RCuls[j].getElementsByTagName('li');
for (var i = 0; i < lis.length; i++) {
var ulUser;
if (lis[i].innerHTML.substring(0,7) == '(diff |') /* New page creation entry */
ulUser = lis[i].getElementsByTagName('a')[2].innerHTML;
else if (lis[i].getElementsByTagName('a')[0].innerHTML == 'diff') /* Page edit entry */
ulUser = lis[i].getElementsByTagName('a')[3].innerHTML;
else /* Log entry */
ulUser = lis[i].getElementsByTagName('a')[1].innerHTML;
if (new RegExp('^(' + usernames.join('|') + ')$').test(ulUser))
lis[i].style.display = 'none';
else
lis[i].style.display = '';
}
}
}
$(function() {
addStuffToSideBar();
hideUserWrapper();
});