From cc15a4b29f9bae6f37c6b40a1e39b3c97daca200 Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Mon, 3 Feb 2025 01:01:53 +0100 Subject: [PATCH] CSP and other stuff --- static/crossroad.html | 8 +++----- static/crossroad.mts | 35 +++++++++++++++++------------------ static/main.css | 1 + 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/static/crossroad.html b/static/crossroad.html index 04b0a4a..2274d20 100644 --- a/static/crossroad.html +++ b/static/crossroad.html @@ -6,13 +6,11 @@ FeDirect + - +
@@ -31,7 +29,7 @@

You currently don't have any instances. You should add one!


- +
diff --git a/static/crossroad.mts b/static/crossroad.mts index d3c6295..5cccef9 100644 --- a/static/crossroad.mts +++ b/static/crossroad.mts @@ -5,11 +5,16 @@ import storageManager from "./storage_manager.mjs"; const radioButtonName = "instanceSelect"; +const mainDialog = findDialogOrFail(document.body, "#mainDialog"); +const showAddInstanceDialogButton = findButtonOrFail(document.body, "#showAddInstanceDialog"); const detailsDialog = findDialogOrFail(document.body, "#instanceDetails"); const addDialog = findDialogOrFail(document.body, "#addInstance"); const instanceSelectForm = findFormOrFail(document.body, "#instanceSelectForm"); const redirectButton = findButtonOrFail(document.body, "#redirect"); const redirectAlwaysButton = findButtonOrFail(document.body, "#redirectAlways"); +const pathText = findPreOrFail(document.body, "#path"); + +showAddInstanceDialogButton.addEventListener("click", e => showAddInstanceDialog()); redirectButton.addEventListener("click", e => { // Can be assumed to not fail because the button is disabled if there are no options and the first one is selected by default @@ -23,29 +28,25 @@ redirectAlwaysButton.addEventListener("click", e => { redirect(option); }); -export const getMainDialog = () => findDialogOrFail(document.body, "#mainDialog"); +let showAddInstanceDialog = () => { }; +let hideAddInstanceDialog = () => { }; -export const { - showAddInstanceDialog, - hideAddInstanceDialog -} = ((): { - showAddInstanceDialog: () => void, - hideAddInstanceDialog: () => void -} => { - // Don't bother initializing if we're performing autoredirect - if (autoRedirect()) return { - showAddInstanceDialog: () => { }, - hideAddInstanceDialog: () => { } - } +// Don't bother initializing if we're performing autoredirect +if (!autoRedirect()) { createInstanceSelectOptions(); storageManager.addSaveCallback(createInstanceSelectOptions); updateNoInstanceHint(); storageManager.addSaveCallback(updateNoInstanceHint); - findPreOrFail(document.body, "#path").innerText = getTargetPath(); + pathText.innerText = getTargetPath(); - return initializeAddInstanceFlow(detailsDialog, addDialog); -})(); + ({ + showAddInstanceDialog, + hideAddInstanceDialog + } = initializeAddInstanceFlow(detailsDialog, addDialog)); + + mainDialog.show(); +}; function updateNoInstanceHint() { findParagraphOrFail(document.body, "#no-instance").style.display = @@ -140,5 +141,3 @@ function redirect(to: string) { url.pathname = getTargetPath(); location.href = url.toString(); } - -export { storageManager }; \ No newline at end of file diff --git a/static/main.css b/static/main.css index 917dc43..91ef307 100644 --- a/static/main.css +++ b/static/main.css @@ -11,6 +11,7 @@ html, body { background: linear-gradient(300deg, var(--red), var(--blue)); background-size: 100vw 100vh; + background-attachment: fixed; margin: 0; min-height: 100vh; height: 100vh;