User:PhilipBembridge/monobook.js

////////////////////////////////

///////// Purge button /////////

////////////////////////////////

// addPurge

$(function () {

var hist; var url;

if (!(hist = document.getElementById('ca-history') )) return;

if (!(url = hist.getElementsByTagName('a')[0] )) return;

if (!(url = url.href )) return;

mw.util.addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),

'purge', 'ca-purge', 'Purge server cache for this page', '0');

});

//

/////////////////////////////

///////// Logs link /////////

/////////////////////////////

// adds a 'logs for this page' link to the toolbox bar

// if the page is a user's page, talk page or subpage, the link will go to logs for the user instead

// if the page is a special page, then no link is displayed

$(function () {

// if this is a user, show the logs for the user rather than the page

if ( wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk" ) {

url = wgServer + "/w/index.php?title=Special:Log&user=" + wgTitle.split("/")[0];

} else if ( wgCanonicalNamespace == "Special" ) {

// don't display link for special pages

return;

} else {

url = wgServer + "/w/index.php?title=Special:Log&page=" + wgPageName;

}

mw.util.addPortletLink("p-tb", url, "Logs", "pt-logs");

});

//

////////////////////////////////////////////////////////////////

///////// Last F.M. (Buggy when at school, so removed) /////////

////////////////////////////////////////////////////////////////

//document.write('');

//////////////////////////

///////// Popups /////////

//////////////////////////

// User:Lupin/popups.js

importScript('User:Lupin/popups.js');

////////////////////////////

///////// Friendly /////////

////////////////////////////

importScript('User:Ioeth/friendly.js');

///////////////////////////

///////// Twinkle /////////

///////////////////////////

importScript('User:AzaToth/twinkle.js');

//////////////////////////////////

///////// User watchlist /////////

//////////////////////////////////

importScript('User:Tra/userwatchlist.js'); //User:Tra/userwatchlist.js

/////////////////////////////////////////////////////

/////////////////////////////////////////////////////

///////// Changes since last load watchlist /////////

/////////////////////////////////////////////////////

/////////////////////////////////////////////////////

$(function () {

if (!wgCanonicalSpecialPageName || wgCanonicalSpecialPageName != "Watchlist") return;

if (!document.forms[0] || !document.forms[0].namespace) return;

var link = document.createElement('a');

link.id = 'listSince';

link.href = '#listSince'; // must have a href to show as link!

var then = +(new Date());

var fixLinkHref = function () {

var url = window.location.href.split('#')[0];

var days = ( +(new Date()) - then )/(1000 * 3600 * 24);

if (url.match(/[?&]days=/))

this.href = url.replace(/([?&]days=)[^&]*/, '$1'+days);

else

this.href = url + (url.indexOf('?') < 0 ? '?':'&') + 'days=' + days;

return true;

};

link.onclick = fixLinkHref;

link.onmousedown = fixLinkHref; // react to middle clicks too

var frag = document.createDocumentFragment();

frag.appendChild(document.createTextNode(' | '));

frag.appendChild(link);

link.appendChild(document.createTextNode('Changes'));

frag.appendChild(document.createTextNode(' since last load.'));

// just one little ID attribute would be _so_ nice...

var nsSelectForm = document.getElementsByTagName('form')[0];

nsSelectForm.parentNode.insertBefore(frag, nsSelectForm);

});

//

///////////////////////////////////////////////

///////// Article for creation helper /////////

///////////////////////////////////////////////

importScript ('User:Henrik/js/afc-helper.js');