MediaWiki:Gadget-RecentChangesRefresh.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
(23 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 | ||
var loaderImg = 'https://wiki.gallery/images/loader.gif'; | |||
var ajaxPages = ['Special:RecentChanges']; | |||
var ajaxRCOverride = false; | |||
var rcRefresh = 30000; | var rcRefresh = 30000; | ||
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 28: | Line 27: | ||
function ajaxRC() { | function ajaxRC() { | ||
$(appTo).last().append(' <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', 999); | ||
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off'); | |||
loadRCData(); | loadRCData(); | ||
}); | }); | ||
Line 44: | 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 51: | Line 49: | ||
} | } | ||
$(function () { | $(function() { | ||
if ( | if ($('.mw-rcfilters-enabled').length) return; | ||
appTo = 'h1'; | |||
article = '#mw-content-text'; | |||
for (var x in ajaxPages) { | |||
if (mw.config.get('wgPageName') == ajaxPages[x] && $('#autoRefreshToggle').length === 0) ajaxRC(); | |||
} | } | ||
}); | }); |
Latest revision as of 13:08, May 20, 2024
// Auto-refresh recent changes
// Code courtesy of pcj of WoWWiki
var loaderImg = 'https://wiki.gallery/images/loader.gif';
var ajaxPages = ['Special:RecentChanges'];
var ajaxRCOverride = false;
var rcRefresh = 30000;
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).last().append(' <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() {
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 999);
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 ($('.mw-rcfilters-enabled').length) return;
appTo = 'h1';
article = '#mw-content-text';
for (var x in ajaxPages) {
if (mw.config.get('wgPageName') == ajaxPages[x] && $('#autoRefreshToggle').length === 0) ajaxRC();
}
});