MediaWiki:Gadget-RecentChangesRefresh.js: Difference between revisions

m
no edit summary
No edit summary
mNo edit summary
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
// Auto-refresh recent changes
// Auto-refresh recent changes
// Code courtesy of pcj of WoWWiki
// Code courtesy of pcj of WoWWiki
// Modified to support the Nimbus skin


var loaderImg = 'https://wiki.gallery/images/loader.gif';
var ajaxPages = ['Special:RecentChanges'];
var ajaxRCOverride = false;
var rcRefresh = 30000;
var rcRefresh = 30000;
var ajaxRCOverride = false;
var ajaxPages = new Array('Special:RecentChanges');


function setCookie(c_name, value, expiredays) {
function setCookie(c_name, value, expiredays) {
Line 27: Line 27:


function ajaxRC() {
function ajaxRC() {
$(appTo).append('&nbsp;<span style="position:absolute; margin-left:10px"><span style="font-family:sans-serif; 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" style="margin-left:5px"><span style="position:relative; left:5px" id="autoRefreshProgress"><img src="/images/loader.gif" border="0" alt="AJAX operation in progress" /></span></span>');
$(appTo).last().append('&nbsp;<div style="height:0;display:inline-block;margin-left:10px"><span style="font-family:sans-serif;font-size:xx-small;cursor:help" title="Automatically refresh this page every ' + Math.floor(rcRefresh / 1000) + ' seconds">AUTO-REFRESH:</span><input type="checkbox" id="autoRefreshToggle" style="margin-left:5px"><span style="position:relative;left:5px" id="autoRefreshProgress"><img class="invert-dark" src="' + loaderImg + '" border="0" alt="Refresh in progress"/></span></div>');
$('#autoRefreshToggle').click(function () {
$('#autoRefreshToggle').click(function() {
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 365);
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 999);
loadRCData();
loadRCData();
});
});
Line 42: Line 42:
if (!$('#autoRefreshToggle').prop('checked')) return;
if (!$('#autoRefreshToggle').prop('checked')) return;
$('#autoRefreshProgress').show();
$('#autoRefreshProgress').show();
$(article).load(location.href + ' ' + article + ' > *', function (data) {
$(article).load(location.href + ' ' + article + ' > *', function(data) {
$(article + ' .mw-collapsible').makeCollapsible();
$(article + ' .mw-collapsible').makeCollapsible();
$('#autoRefreshProgress').hide();
$('#autoRefreshProgress').hide();
Line 50: Line 50:


$(function() {
$(function() {
if (!document.getElementsByClassName('mw-rcfilters-enabled')[0]) {
if ($('.mw-rcfilters-enabled').length) return;
if (mw.config.get('skin') == 'nimbus') {
appTo = 'h1';
article = '#mw-content-text';
article = '#mw-content-text';
appTo = '.pagetitle';
for (var x in ajaxPages) {
} else {
if (mw.config.get('wgPageName') == ajaxPages[x] && $('#autoRefreshToggle').length === 0) ajaxRC();
article = '#bodyContent';
appTo = '.firstHeading';
}
for (var x in ajaxPages) {
if (mw.config.get('wgPageName') == ajaxPages[x] && $('#autoRefreshToggle').length === 0) ajaxRC();
}
}
}
});
});