filestash/public/index.frontoffice.html
2025-02-04 01:43:04 +11:00

190 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<base href="{{ .base }}">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="application-name" content="Filestash">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="icon" href="favicon.ico">
<title></title>
<script>{{ if eq .license "agpl" }}{{ template "loader-cat" }}{{ else }}{{ template "loader-basic" }}{{ end }}</script>
</head>
<body>
<div role="main" id="app">
<component-bootscreen></component-bootscreen>
</div>
<template id="head">
<link rel="stylesheet" href="custom.css">
<link rel="stylesheet" href="./assets/{{ .version }}/css/designsystem.css">
</template>
<template id="body">
<script type="module" src="./assets/{{ .version }}/components/loader.js"></script>
<script type="module">
import main from "./assets/{{ .version }}/lib/skeleton/index.js";
import routes from "./assets/{{ .version }}/boot/router_frontoffice.js";
main(document.getElementById("app"), routes, {
spinner: `<component-loader></component-loader>`,
beforeStart: import("{{ .base }}assets/{{ .version }}/boot/ctrl_boot_frontoffice.js"),
});
</script>
<component-modal></component-modal>
<script type="module" src="./assets/{{ .version }}/components/modal.js" defer></script>
<component-notification></component-notification>
<script type="module" src="./assets/{{ .version }}/components/notification.js" defer></script>
</template>
<script type="module">
function boot() {
document.head.appendChild(document.querySelector("template#head").content);
document.body.appendChild(document.querySelector("template#body").content);
}
const URLS = [
[
"/assets/{{ .version }}/lib/vendor/rxjs/rxjs.min.js",
"/assets/{{ .version }}/lib/vendor/rxjs/rxjs-ajax.min.js",
"/assets/{{ .version }}/lib/vendor/rxjs/rxjs-shared.min.js",
],
[
"/assets/{{ .version }}/boot/ctrl_boot_frontoffice.js",
"/assets/{{ .version }}/locales/index.js",
"/assets/{{ .version }}/css/designsystem.css",
"/assets/{{ .version }}/css/designsystem_input.css",
"/assets/{{ .version }}/css/designsystem_textarea.css",
"/assets/{{ .version }}/css/designsystem_inputgroup.css",
"/assets/{{ .version }}/css/designsystem_checkbox.css",
"/assets/{{ .version }}/css/designsystem_formbuilder.css",
"/assets/{{ .version }}/css/designsystem_button.css",
"/assets/{{ .version }}/css/designsystem_icon.css",
"/assets/{{ .version }}/css/designsystem_dropdown.css",
"/assets/{{ .version }}/css/designsystem_container.css",
"/assets/{{ .version }}/css/designsystem_box.css",
"/assets/{{ .version }}/css/designsystem_darkmode.css",
"/assets/{{ .version }}/css/designsystem_skeleton.css",
"/assets/{{ .version }}/css/designsystem_utils.css",
"/assets/{{ .version }}/css/designsystem_alert.css",
"/assets/{{ .version }}/components/loader.js",
"/assets/{{ .version }}/components/modal.js",
"/assets/{{ .version }}/components/modal.css",
"/assets/{{ .version }}/components/notification.js",
"/assets/{{ .version }}/components/notification.css",
"/assets/{{ .version }}/boot/router_frontoffice.js",
"/assets/{{ .version }}/helpers/loader.js",
"/assets/{{ .version }}/lib/skeleton/index.js",
"/assets/{{ .version }}/lib/rx.js",
"/assets/{{ .version }}/lib/ajax.js",
"/assets/{{ .version }}/lib/animate.js",
"/assets/{{ .version }}/lib/assert.js",
"/assets/{{ .version }}/lib/dom.js",
"/assets/{{ .version }}/lib/skeleton/router.js",
"/assets/{{ .version }}/lib/skeleton/lifecycle.js",
"/assets/{{ .version }}/lib/error.js",
"/assets/{{ .version }}/model/config.js",
"/assets/{{ .version }}/model/plugin.js",
"/assets/{{ .version }}/model/chromecast.js",
"/assets/{{ .version }}/model/session.js",
"/assets/{{ .version }}/helpers/log.js",
"/assets/{{ .version }}/boot/common.js",
"/assets/{{ .version }}/helpers/sdk.js",
"/assets/{{ .version }}/components/breadcrumb.js",
"/assets/{{ .version }}/components/breadcrumb.css",
"/assets/{{ .version }}/components/form.js",
"/assets/{{ .version }}/components/sidebar.js",
"/assets/{{ .version }}/components/sidebar.css",
"/assets/{{ .version }}/components/dropdown.js",
"/assets/{{ .version }}/components/icon.js",
"/assets/{{ .version }}/lib/store.js",
"/assets/{{ .version }}/lib/random.js",
"/assets/{{ .version }}/lib/form.js",
"/assets/{{ .version }}/lib/path.js",
"/assets/{{ .version }}/components/decorator_shell_filemanager.js",
"/assets/{{ .version }}/components/decorator_shell_filemanager.css",
"/assets/{{ .version }}/pages/ctrl_error.js",
],
[
"/assets/{{ .version }}/pages/ctrl_connectpage.js",
"/assets/{{ .version }}/pages/connectpage/ctrl_form.js",
"/assets/{{ .version }}/pages/connectpage/ctrl_forkme.js",
"/assets/{{ .version }}/pages/connectpage/ctrl_poweredby.js",
"/assets/{{ .version }}/lib/path.js",
"/assets/{{ .version }}/lib/form.js",
"/assets/{{ .version }}/lib/settings.js",
"/assets/{{ .version }}/components/form.js",
"/assets/{{ .version }}/model/session.js",
"/assets/{{ .version }}/pages/ctrl_error.js",
"/assets/{{ .version }}/pages/connectpage/model_backend.js",
"/assets/{{ .version }}/pages/connectpage/model_config.js",
"/assets/{{ .version }}/pages/connectpage/ctrl_form_state.js",
"/assets/{{ .version }}/lib/random.js",
"/assets/{{ .version }}/components/icon.js",
"/assets/{{ .version }}/pages/ctrl_connectpage.css",
"/assets/{{ .version }}/pages/connectpage/ctrl_form.css",
],
[
"/assets/{{ .version }}/pages/ctrl_filespage.js",
"/assets/{{ .version }}/pages/ctrl_filespage.css",
"/assets/{{ .version }}/pages/filespage/ctrl_filesystem.js",
"/assets/{{ .version }}/pages/filespage/ctrl_submenu.js",
"/assets/{{ .version }}/pages/filespage/ctrl_newitem.js",
"/assets/{{ .version }}/pages/filespage/ctrl_upload.js",
"/assets/{{ .version }}/pages/filespage/cache.js",
"/assets/{{ .version }}/pages/filespage/state_config.js",
"/assets/{{ .version }}/pages/filespage/thing.js",
"/assets/{{ .version }}/pages/filespage/state_newthing.js",
"/assets/{{ .version }}/pages/filespage/helper.js",
"/assets/{{ .version }}/pages/filespage/model_files.js",
"/assets/{{ .version }}/pages/filespage/model_virtual_layer.js",
"/assets/{{ .version }}/pages/filespage/modal_share.js",
"/assets/{{ .version }}/pages/filespage/modal_tag.js",
"/assets/{{ .version }}/pages/filespage/modal_rename.js",
"/assets/{{ .version }}/pages/filespage/modal_delete.js",
"/assets/{{ .version }}/pages/filespage/state_selection.js",
"/assets/{{ .version }}/pages/filespage/model_acl.js",
"/assets/{{ .version }}/pages/filespage/ctrl_filesystem.css",
"/assets/{{ .version }}/pages/filespage/thing.css",
"/assets/{{ .version }}/pages/filespage/modal.css",
"/assets/{{ .version }}/pages/filespage/ctrl_submenu.css",
"/assets/{{ .version }}/pages/filespage/modal_share.css",
"/assets/{{ .version }}/pages/filespage/modal_tag.css",
"/assets/{{ .version }}/pages/filespage/ctrl_newitem.css",
"/assets/{{ .version }}/pages/filespage/ctrl_upload.css",
],
];
if ("serviceWorker" in navigator) {
const register = await navigator.serviceWorker.register("sw.js");
await new Promise((resolve) => {
register.active ?
resolve() :
navigator.serviceWorker.addEventListener("controllerchange", () => {
resolve();
});
});
register.active.postMessage({ "type": "preload", "payload": URLS });
await new Promise((resolve, reject) => navigator.serviceWorker.addEventListener("message", (event) => {
if (event.data && event.data.type === "preload") {
if (event.data.status !== "ok") console.log(`turboload failure data=${JSON.stringify(event.data)}`);
resolve();
}
}));
}
boot();
</script>
<noscript>
<div style="text-align:center;font-family:monospace;margin-top:5%;font-size:15px;">
<h2>Error: Javascript is off</h2>
<p>You need to enable Javascript to run this application</p>
</div>
</noscript>
</body>
</html>