hardlounge/client/js/socket-events/configuration.js

56 lines
1.5 KiB
JavaScript
Raw Normal View History

"use strict";
const $ = require("jquery");
const socket = require("../socket");
2017-11-07 20:22:16 +00:00
const webpush = require("../webpush");
const upload = require("../upload");
const store = require("../store").default;
const router = require("../router");
window.addEventListener("beforeinstallprompt", (installPromptEvent) => {
$("#webapp-install-button")
.on("click", function() {
if (installPromptEvent && installPromptEvent.prompt) {
installPromptEvent.prompt();
}
$(this).prop("hidden", true);
})
.prop("hidden", false);
$("#native-app").prop("hidden", false);
});
socket.once("configuration", function(data) {
store.commit("serverConfiguration", data);
// 'theme' setting depends on serverConfiguration.themes so
// settings cannot be applied before this point
store.dispatch("settings/applyAll");
2019-11-12 11:09:12 +00:00
socket.emit("setting:get");
if (data.fileUpload) {
2019-11-12 11:09:12 +00:00
upload.initialize();
}
2017-11-07 20:22:16 +00:00
webpush.initialize();
router.initialize();
2017-11-07 20:22:16 +00:00
// If localStorage contains a theme that does not exist on this server, switch
// back to its default theme.
const currentTheme = data.themes.find((t) => t.name === store.state.settings.theme);
2019-07-22 16:50:04 +00:00
if (currentTheme === undefined) {
store.commit("settings/update", {name: "theme", value: data.defaultTheme, sync: true});
2019-07-22 16:50:04 +00:00
} else if (currentTheme.themeColor) {
document.querySelector('meta[name="theme-color"]').content = currentTheme.themeColor;
}
2019-11-12 11:09:12 +00:00
if (document.body.classList.contains("public")) {
window.addEventListener(
"beforeunload",
() => "Are you sure you want to navigate away from this page?"
);
2018-06-19 15:00:07 +00:00
}
});