Override theme with url theme query param

This commit is contained in:
Jeremy Zhang 2017-05-25 23:17:22 +00:00
parent fe153ed6d2
commit a87eaa2bda

View File

@ -6,6 +6,8 @@
/* global moment */ /* global moment */
(function () { (function () {
const theme_options = ["DiscordDark"]; // All the avaliable theming names
var has_already_been_focused = false; // keep track of if the embed has initially been focused. var has_already_been_focused = false; // keep track of if the embed has initially been focused.
var logintimer; // timer to keep track of user inactivity after hitting login var logintimer; // timer to keep track of user inactivity after hitting login
var fetchtimeout; // fetch routine timer var fetchtimeout; // fetch routine timer
@ -121,8 +123,19 @@
}); });
$( "#theme-selector" ).change(function() { $( "#theme-selector" ).change(function() {
const theme_options = ["DiscordDark"];
var theme = $("#theme-selector option:selected").val(); var theme = $("#theme-selector option:selected").val();
changeTheme(theme);
});
var themeparam = getParameterByName('theme');
if (themeparam && $.inArray(themeparam, theme_options) != -1) {
changeTheme(themeparam);
$("#theme-selector option").removeAttr('selected');
$("#theme-selector option[value=" + themeparam + "]").attr('selected', 'selected');
}
});
function changeTheme(theme) {
if (theme == "") { if (theme == "") {
$("#css-theme").attr("href", ""); $("#css-theme").attr("href", "");
disable_userdef_css(false); disable_userdef_css(false);
@ -130,8 +143,18 @@
disable_userdef_css(true); disable_userdef_css(true);
$("#css-theme").attr("href", "/static/themes/" + theme + "/css/style.css"); $("#css-theme").attr("href", "/static/themes/" + theme + "/css/style.css");
} }
}); }
});
/* https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript */
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function disable_userdef_css(boolean) { function disable_userdef_css(boolean) {
var usrcss = $("#user-defined-css").text(); var usrcss = $("#user-defined-css").text();