66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
(function() {
|
|
Ripple(['#navbar .logo', '#navbar .items > *', 'button']);
|
|
|
|
var themes = {
|
|
light: '/static/css/light.css',
|
|
dark: '/static/css/dark.css'
|
|
};
|
|
var defaultTheme = 'light';
|
|
|
|
var themeSwitcher = new ThemeSwitcher({
|
|
target: document.querySelector('#theme-target'),
|
|
default: defaultTheme,
|
|
themes: themes
|
|
});
|
|
|
|
function setTheme(requestElement, newTheme) {
|
|
themeSwitcher.set(newTheme);
|
|
requestElement.innerHTML = toTitleCase(newTheme) + " theme";
|
|
|
|
createElement('i', {
|
|
parent: requestElement,
|
|
class: 'mdi mdi-chevron-down'
|
|
});
|
|
}
|
|
var themeMenuElement = document.querySelector('#theme-menu');
|
|
var themeMenuItems = Object.keys(themes).map(function(i) {
|
|
return {
|
|
value: i,
|
|
text: i
|
|
};
|
|
});
|
|
var themeMenu = new ContextMenu({
|
|
selector: themeMenuElement,
|
|
trigger: 'click',
|
|
callback: setTheme,
|
|
items: themeMenuItems
|
|
});
|
|
setTheme(themeMenuElement, themeSwitcher.get());
|
|
|
|
var footer = document.querySelector('#footer');
|
|
function padBodyforFooter() {
|
|
var height = footer.offsetHeight;
|
|
document.body.style.paddingBottom = height + 'px';
|
|
}
|
|
window.addEventListener('load', padBodyforFooter);
|
|
window.addEventListener('resize', padBodyforFooter);
|
|
|
|
function ajaxFailMessage(element) {
|
|
var message = 'Something went wrong with the request!'
|
|
if (element.access.error) {
|
|
element.access.error.innerHTML = message;
|
|
} else {
|
|
element.innerHTML = message;
|
|
}
|
|
}
|
|
window.ajaxFailMessage = ajaxFailMessage;
|
|
|
|
$(document).ajaxError(function(event, jqxhr, settings, thrownError) {
|
|
if (jqxhr && jqxhr.responseJSON) {
|
|
var data = jqxhr.responseJSON;
|
|
if (data.exception) {
|
|
console.log(data.exception);
|
|
}
|
|
}
|
|
});
|
|
})();
|