Check out the community portal for ways in which you can help the Wiki of Mana! Also, keep in mind that this wiki contains unmarked spoilers.

Difference between revisions of "MediaWiki:Gadget-RecentChangesRefresh.js"

From the Wiki of Mana, the Mana encyclopedia
Jump to navigationJump to search
(New)
 
(Fix url)
 
Line 26: Line 26:


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).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="https://cdn.wikiofmana.com/loader.gif" border="0" alt="AJAX operation in progress" /></span></span>');
$('#autoRefreshToggle').click(function () {
$('#autoRefreshToggle').click(function () {
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 365);
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 365);

Latest revision as of 19:18, December 9, 2021

// Auto-refresh recent changes
// Code courtesy of pcj of WoWWiki

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('&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="https://cdn.wikiofmana.com/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]) {
		article = '#bodyContent';
		appTo = '.firstHeading';
		for (x in ajaxPages) {
			if (mw.config.get('wgPageName') == ajaxPages[x] && $('#autoRefreshToggle').length == 0) ajaxRC();
		}
	}
});