User:PetraMagna/server-toggle.js: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
mNo edit summary
localStorage is better for this use case
Line 31: Line 31:
function main() {
function main() {
const COOKIE_KEY = 'default-server-' + mw.config.get('wgTitle').replace(/[=;, ]/g, '');
const COOKIE_KEY = 'default-server-' + mw.config.get('wgTitle').replace(/[=;, ]/g, '');
let server = localStorage.getItem(COOKIE_KEY);
const EXPIRY_TIME = 365;
let server = Cookies.get(COOKIE_KEY);
if (server) {
if (server) {
if (server === "jp" || server === "gl") {
if (server === "jp" || server === "gl") {
Line 41: Line 40:
} else {
} else {
// invalid value; purge it just in case something bad broke it
// invalid value; purge it just in case something bad broke it
Cookies.remove(COOKIE_KEY);
localStorage.removeItem(COOKIE_KEY);
console.log("server-toggle: Remove invalid cookie value " + server);
console.log("server-toggle: Remove invalid cookie value " + server);
}
}
} else {
} else {
console.log("server-toggle: No cookie detected. Defaulting to jp.")
console.log("server-toggle: No cookie detected. Defaulting to jp.")
Cookies.set(COOKIE_KEY, 'jp', {expires: EXPIRY_TIME});
localStorage.setItem(COOKIE_KEY, 'jp');
}
}
// add event listener on all buttons so that we can
// add event listener on all buttons so that we can
Line 64: Line 63:
no_recurse = true;
no_recurse = true;
console.log("server-toggle: " + current_server + " button clicked. Switching...");
console.log("server-toggle: " + current_server + " button clicked. Switching...");
Cookies.set(COOKIE_KEY, current_server, {expires: EXPIRY_TIME});
localStorage.setItem(COOKIE_KEY, current_server);
// switch to this server everywhere else
// switch to this server everywhere else
$(".server-toggle-" + current_server + "-button").each(function(i, button) {
$(".server-toggle-" + current_server + "-button").each(function(i, button) {