MediaWiki:Gadget-RecentChangesRefresh.js
From Halopedia, the Halo wiki
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.
// Auto-refresh recent changes
// Code courtesy of pcj of WoWWiki
// Modified to support the Nimbus skin
var rcRefresh = 30000;
var ajaxRCOverride = false;
var ajaxPages = new Array('Special:RecentChanges');
function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + '=' + escape(value) + ((expiredays === null) ? '' : ';expires=' + exdate.toGMTString());
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + '=');
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(';', c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return '';
}
function ajaxRC() {
$(appTo).append(' <span style="position:absolute; margin-left:10px;"><span style="font-size:xx-small; cursor:help;" title="Automatically refresh the current page every ' + Math.floor(rcRefresh / 1000) + ' seconds">AUTO-REFRESH:</span><input type="checkbox" id="autoRefreshToggle"><span style="position:relative; left:5px;" id="autoRefreshProgress"><img src="/images/loader.gif" border="0" alt="AJAX operation in progress" /></span></span>');
$('#autoRefreshToggle').click(function () {
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 365);
loadRCData();
});
$('#autoRefreshProgress').hide();
if (getCookie('ajaxRC') == 'on' || ajaxRCOverride) {
$('#autoRefreshToggle').prop('checked', true);
setTimeout(loadRCData, rcRefresh);
}
}
function loadRCData() {
if (!$('#autoRefreshToggle').prop('checked')) return;
$('#autoRefreshProgress').show();
$(article).load(location.href + ' ' + article + ' > *', function (data) {
$(article + ' .mw-collapsible').makeCollapsible();
$('#autoRefreshProgress').hide();
if ($('#autoRefreshToggle').prop('checked')) setTimeout(loadRCData, rcRefresh);
});
}
$(function() {
if (!document.getElementsByClassName('mw-rcfilters-enabled')[0]) {
if (mw.config.get('skin') == 'nimbus') {
article = '#mw-content-text';
appTo = '.pagetitle';
} else {
article = '#bodyContent';
appTo = '.firstHeading';
}
for (var x in ajaxPages) {
if (mw.config.get('wgPageName') == ajaxPages[x] && $('#autoRefreshToggle').length === 0) ajaxRC();
}
}
});