User:PetraMagna/server-toggle.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
PetraMagna (talk | contribs) localStorage is better for this use case |
PetraMagna (talk | contribs) more adjustments |
||
Line 30: | Line 30: | ||
function main() { |
function main() { |
||
const |
const STORAGE_KEY = 'default-server-' + mw.config.get('wgTitle'); |
||
let server = localStorage.getItem( |
let server = localStorage.getItem(STORAGE_KEY); |
||
if (server) { |
if (server) { |
||
if (server === "jp" || server === "gl") { |
if (server === "jp" || server === "gl") { |
||
Line 40: | 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 |
||
localStorage.removeItem( |
localStorage.removeItem(STORAGE_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.") |
||
localStorage.setItem( |
localStorage.setItem(STORAGE_KEY, 'jp'); |
||
} |
} |
||
// add event listener on all buttons so that we can |
// add event listener on all buttons so that we can |
||
Line 63: | 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..."); |
||
localStorage.setItem( |
localStorage.setItem(STORAGE_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) { |
||
Line 74: | Line 74: | ||
} |
} |
||
main(); |
|||
function addScript( src, callback ) { |
|||
var s = document.createElement( 'script' ); |
|||
s.setAttribute( 'src', src ); |
|||
s.onload=callback; |
|||
document.body.appendChild( s ); |
|||
} |
|||
addScript("https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js", main); |
|||
})(); |
})(); |