MediaWiki:Gadget-RecentChangesRefresh.js: Difference between revisions

From SmashWiki, the Super Smash Bros. wiki
Jump to navigationJump to search
(test)
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://ssb.wiki.gallery/images/4/42/Loading.gif';
var ajaxPages = ['Special:RecentChanges'];
var ajaxRCOverride = false;
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());
}
}


function getCookie(c_name) {
function getCookie(c_name) {
if (document.cookie.length > 0) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
c_start = document.cookie.indexOf(c_name + '=');
if (c_start != -1) {
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
c_end = document.cookie.indexOf(';', c_start);
if (c_end == -1) c_end = document.cookie.length;
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
return unescape(document.cookie.substring(c_start, c_end));
}
}
}
}
return "";
return '';
}
}
var ajaxPages = new Array("Special:RecentChanges");
var ajaxRCOverride = false;
var rcRefresh = 30000;


function ajaxRC() {
function ajaxRC() {
appTo = $(".firstHeading");
$(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>');
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>');
$('#autoRefreshToggle').click(function() {
$("#autoRefreshToggle").click(function () {
setCookie('ajaxRC', $('#autoRefreshToggle').prop('checked') ? 'on' : 'off', 999);
setCookie("ajaxRC", $("#autoRefreshToggle").prop("checked") ? "on" : "off");
loadRCData();
loadRCData();
});
});
$("#autoRefreshProgress").hide();
$('#autoRefreshProgress').hide();
if (getCookie("ajaxRC") == "on" || ajaxRCOverride) {
if (getCookie('ajaxRC') == 'on' || ajaxRCOverride) {
$("#autoRefreshToggle").prop("checked", true);
$('#autoRefreshToggle').prop('checked', true);
setTimeout(loadRCData, rcRefresh);
setTimeout(loadRCData, rcRefresh);
}
}
Line 42: Line 40:


function loadRCData() {
function loadRCData() {
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();
if ($("#autoRefreshToggle").prop("checked")) setTimeout(loadRCData, rcRefresh);
if ($('#autoRefreshToggle').prop('checked')) setTimeout(loadRCData, rcRefresh);
});
});
}
}


$(function () {
$(function() {
article = "#bodyContent";
if ($('.mw-rcfilters-enabled').length) return;
for (x in ajaxPages) {
appTo = 'h1';
if (mw.config.get('wgPageName') == ajaxPages[x] && $("#autoRefreshToggle").length == 0) ajaxRC();
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://ssb.wiki.gallery/images/4/42/Loading.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('&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() {
		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();
	}
});