MediaWiki:Gadget-LightToggle.js: Difference between revisions

(Created page with "// Toggle a light theme for supported dark skins function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie = c_name + '=' + escape(value) + ';path=/' + ((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.leng...")
 
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 26: Line 26:
$('#themeToggle').click(function() {
$('#themeToggle').click(function() {
if (isLight)
if (isLight)
setCookie('darkTheme', '', -1);
else
setCookie('darkTheme', 'off', 999);
setCookie('darkTheme', 'off', 999);
if (mw.config.get('wgUserId') || location.href.includes('?'))
location.reload();
else
else
setCookie('darkTheme', '', -1);
location = location.href + '?toggle';
location.reload();
});
});
});
});

Latest revision as of 17:24, October 9, 2023

// Toggle a light theme for supported dark skins

function setCookie(c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + '=' + escape(value) + ';path=/' + ((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() {
	var isLight = false;
	if (getCookie('darkTheme') == 'off')
		isLight = true;
	$('#onyx-footerLinks-places').append('<li id="toggleContainer"><a id="themeToggle" href="javascript:;">Toggle night theme</a></li>');
	$('#themeToggle').click(function() {
		if (isLight)
			setCookie('darkTheme', '', -1);
		else
			setCookie('darkTheme', 'off', 999);
		if (mw.config.get('wgUserId') || location.href.includes('?'))
			location.reload();
		else
			location = location.href + '?toggle';
	});
});