User:Slate/common.js

From Inkipedia, the Splatoon wiki
< User:Slate
Revision as of 21:00, 23 August 2015 by Slate (talk | contribs) (changed RC refresh to 2 mins)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Directly from http://wow.gamepedia.com/MediaWiki:Common.js */
function setStoredValue(key, value, expiredays) {
	if (typeof(localStorage) == "undefined") {
		var exdate = new Date();
		exdate.setDate(exdate.getDate() + (expiredays ? expiredays : 30));
		document.cookie = key + "=" + escape(value) + ";expires=" + exdate.toGMTString();
	} else {
		try {
			localStorage[key] = value;
		} catch (e) {
			// Usually QUOTA_EXCEEDED_ERR
		}
	}
}

function getStoredValue(key, defaultValue) {
	if (typeof(localStorage) == "undefined") {
		if (document.cookie && document.cookie.length) {
			var varr = document.cookie.match("(?:^|;)\\s*" + key + "=([^;]*)");
			if (varr.length == 2) return varr[1];
		}
		return defaultValue;
	}
	return localStorage[key] == null ? defaultValue : localStorage[key];
}

// AJAX RC
var ajaxPages = {"Special:RecentChanges" : 1};
var ajaxRCOverride = false;
var rcRefresh = 120000;

function ajaxRC() {
	appTo = $(".firstHeading");
	appTo.append('&nbsp;<span style="font-size: xx-small; border-bottom: 1px dotted; 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; top:5px; left:5px;" id="autoRefreshProgress"><img src="http://hydra-media.cursecdn.com/wow.gamepedia.com/0/0e/Progressbar.gif" border="0" alt="AJAX operation in progress" /></span>');
	$("#autoRefreshToggle").click(function() {
		setStoredValue("ajaxRC", $("#autoRefreshToggle").is(":checked") ? "on" : "off")
		loadRCData()
	});
	$("#autoRefreshProgress").hide();
	if (getStoredValue("ajaxRC") == "on" || ajaxRCOverride) {
		$("#autoRefreshToggle").attr("checked", "checked");
		setTimeout("loadRCData();", rcRefresh);
	}
}
function handleAutocollapse(root) {
	var $ct = root.find(".mw-collapsible");
	var $es = $ct.filter(".mw-autocollapse").not($ct.first()).not(".mw-collapsed, .mw-uncollapsed, .mw-expanded");
	$es.filter(function() {
		var link = $(this).find(".mw-collapsible-toggle a");
		if (link.length) link.first().click();
		return !link.length;
	}).toggleClass("mw-collapsed mw-autocollapse");
}
function loadRCData() {
	if (!$("#autoRefreshToggle").is(":checked")) return;
	$('#autoRefreshProgress').show()
	$(article).load(location.href + " "+article+" > *", function (data) {
		handleAutocollapse($(article));
		$(article + " .mw-collapsible").makeCollapsible();
		$('#autoRefreshProgress').hide()
		if ($("#autoRefreshToggle").is(":checked")) setTimeout("loadRCData();", rcRefresh);
	});
}

$(function() {
	article = "#bodyContent";
	if (wgPageName && ajaxPages.hasOwnProperty(wgPageName) && !$("#autoRefreshToggle").length) ajaxRC();
});