MediaWiki:Gadget-RecentChangesRefresh.js: Difference between revisions

From SmashWiki, the Super Smash Bros. wiki
Jump to navigationJump to search
No edit summary
mNo edit summary
 
(25 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").is(":checked") ? "on" : "off")
loadRCData();
loadRCData()
});
});
$("#autoRefreshProgress").hide();
$('#autoRefreshProgress').hide();
if (getCookie("ajaxRC") == "on" || ajaxRCOverride) {
if (getCookie('ajaxRC') == 'on' || ajaxRCOverride) {
$("#autoRefreshToggle").attr("checked", "checked");
$('#autoRefreshToggle').prop('checked', true);
setTimeout(loadRCData, rcRefresh);
setTimeout(loadRCData, rcRefresh);
}
}
Line 42: Line 40:


function loadRCData() {
function loadRCData() {
if (!$("#autoRefreshToggle").is(":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").is(":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();
	}
});