MediaWiki:Gadget-RecentChangesRefresh.js: Difference between revisions

m
no edit summary
No edit summary
mNo edit summary
 
(19 intermediate revisions by the same user not shown)
Line 2: Line 2:
// Code courtesy of pcj of WoWWiki
// Code courtesy of pcj of WoWWiki


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) {
var exdate = new Date();
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + '=' + escape(value) + ((expiredays == null) ? '' : ';expires=' + exdate.toGMTString());
document.cookie = c_name + '=' + escape(value) + ((expiredays === null) ? '' : ';expires=' + exdate.toGMTString());
}
}


Line 26: Line 27:


function ajaxRC() {
function ajaxRC() {
$(appTo).append('&nbsp;<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>');
$(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 41: 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 49: Line 50:


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