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
+
-
+
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;