From 20290359e881f65d1cb3cf72aef7fd17b3e4069d Mon Sep 17 00:00:00 2001
From: Jakob Moser <moser@cl.uni-heidelberg.de>
Date: Sun, 2 Jun 2024 16:12:31 +0200
Subject: [PATCH] Move frontend code (= all current code) into
 portal/{static,template} dirs

---
 index.html                                        |  14 --------------
 {css => portal/static/css}/main.css               |   6 +++---
 {img => portal/static/img}/portal.svg             |   0
 .../static/js}/components/pages/AllServices.mjs   |   0
 .../static/js}/components/pages/Base.mjs          |   0
 .../static/js}/components/pages/Start.mjs         |   0
 .../static/js}/components/pages/Unlock.mjs        |   0
 .../js}/components/pieces/AccountRequired.mjs     |   0
 .../static/js}/components/pieces/Agenda.mjs       |   0
 .../static/js}/components/pieces/BoxedButton.mjs  |   0
 .../static/js}/components/pieces/Nav.mjs          |   0
 .../static/js}/components/pieces/NavPageLink.mjs  |   0
 .../js}/components/pieces/PasswordInVault.mjs     |   0
 .../static/js}/components/pieces/ServiceLink.mjs  |   0
 .../js}/components/pieces/UnlockRequired.mjs      |   0
 {js => portal/static/js}/model/Service.mjs        |   0
 {js => portal/static/js}/model/services.mjs       |   0
 {js => portal/static/js}/portal.mjs               |   4 +++-
 .../lib}/fontawesome-free-6.5.2-web/LICENSE.txt   |   0
 .../fontawesome-free-6.5.2-web/css/all.min.css    |   0
 .../webfonts/fa-brands-400.ttf                    | Bin
 .../webfonts/fa-brands-400.woff2                  | Bin
 .../webfonts/fa-regular-400.ttf                   | Bin
 .../webfonts/fa-regular-400.woff2                 | Bin
 .../webfonts/fa-solid-900.ttf                     | Bin
 .../webfonts/fa-solid-900.woff2                   | Bin
 .../webfonts/fa-v4compatibility.ttf               | Bin
 .../webfonts/fa-v4compatibility.woff2             | Bin
 {lib => portal/static/lib}/mithril/LICENSE        |   0
 {lib => portal/static/lib}/mithril/mithril.min.js |   0
 .../static/lib}/nautilus/nautilus_blue.svg        |   0
 .../static/lib}/nautilus/nautilus_green.svg       |   0
 portal/templates/index.html                       |  14 ++++++++++++++
 33 files changed, 20 insertions(+), 18 deletions(-)
 delete mode 100644 index.html
 rename {css => portal/static/css}/main.css (95%)
 rename {img => portal/static/img}/portal.svg (100%)
 rename {js => portal/static/js}/components/pages/AllServices.mjs (100%)
 rename {js => portal/static/js}/components/pages/Base.mjs (100%)
 rename {js => portal/static/js}/components/pages/Start.mjs (100%)
 rename {js => portal/static/js}/components/pages/Unlock.mjs (100%)
 rename {js => portal/static/js}/components/pieces/AccountRequired.mjs (100%)
 rename {js => portal/static/js}/components/pieces/Agenda.mjs (100%)
 rename {js => portal/static/js}/components/pieces/BoxedButton.mjs (100%)
 rename {js => portal/static/js}/components/pieces/Nav.mjs (100%)
 rename {js => portal/static/js}/components/pieces/NavPageLink.mjs (100%)
 rename {js => portal/static/js}/components/pieces/PasswordInVault.mjs (100%)
 rename {js => portal/static/js}/components/pieces/ServiceLink.mjs (100%)
 rename {js => portal/static/js}/components/pieces/UnlockRequired.mjs (100%)
 rename {js => portal/static/js}/model/Service.mjs (100%)
 rename {js => portal/static/js}/model/services.mjs (100%)
 rename {js => portal/static/js}/portal.mjs (68%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/LICENSE.txt (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/css/all.min.css (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.ttf (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.woff2 (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.ttf (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.woff2 (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.ttf (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.woff2 (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.ttf (100%)
 rename {lib => portal/static/lib}/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.woff2 (100%)
 rename {lib => portal/static/lib}/mithril/LICENSE (100%)
 rename {lib => portal/static/lib}/mithril/mithril.min.js (100%)
 rename {lib => portal/static/lib}/nautilus/nautilus_blue.svg (100%)
 rename {lib => portal/static/lib}/nautilus/nautilus_green.svg (100%)
 create mode 100644 portal/templates/index.html

diff --git a/index.html b/index.html
deleted file mode 100644
index 423e5d0..0000000
--- a/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html>
-<html lang="de">
-    <head>
-        <meta charset="utf-8" />
-        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-        <title>Start · FS Coli Portal</title>
-        <link rel="stylesheet" href="/css/main.css" />
-        <link rel="icon" href="/img/portal.svg" />
-    </head>
-
-    <body class="blue"></body>
-
-    <script type="module" src="/js/portal.mjs"></script>
-</html>
diff --git a/css/main.css b/portal/static/css/main.css
similarity index 95%
rename from css/main.css
rename to portal/static/css/main.css
index 969a429..f9e71be 100644
--- a/css/main.css
+++ b/portal/static/css/main.css
@@ -1,4 +1,4 @@
-@import url("/lib/fontawesome-free-6.5.2-web/css/all.min.css");
+@import url("/static/lib/fontawesome-free-6.5.2-web/css/all.min.css");
 
 /* ----------------------- Variables ----------------------- */
 
@@ -35,11 +35,11 @@ body {
 }
 
 body.blue {
-    background-image: url("/lib/nautilus/nautilus_blue.svg");
+    background-image: url("/static/lib/nautilus/nautilus_blue.svg");
 }
 
 body.green {
-    background-image: url("/lib/nautilus/nautilus_green.svg");
+    background-image: url("/static/lib/nautilus/nautilus_green.svg");
 }
 
 header {
diff --git a/img/portal.svg b/portal/static/img/portal.svg
similarity index 100%
rename from img/portal.svg
rename to portal/static/img/portal.svg
diff --git a/js/components/pages/AllServices.mjs b/portal/static/js/components/pages/AllServices.mjs
similarity index 100%
rename from js/components/pages/AllServices.mjs
rename to portal/static/js/components/pages/AllServices.mjs
diff --git a/js/components/pages/Base.mjs b/portal/static/js/components/pages/Base.mjs
similarity index 100%
rename from js/components/pages/Base.mjs
rename to portal/static/js/components/pages/Base.mjs
diff --git a/js/components/pages/Start.mjs b/portal/static/js/components/pages/Start.mjs
similarity index 100%
rename from js/components/pages/Start.mjs
rename to portal/static/js/components/pages/Start.mjs
diff --git a/js/components/pages/Unlock.mjs b/portal/static/js/components/pages/Unlock.mjs
similarity index 100%
rename from js/components/pages/Unlock.mjs
rename to portal/static/js/components/pages/Unlock.mjs
diff --git a/js/components/pieces/AccountRequired.mjs b/portal/static/js/components/pieces/AccountRequired.mjs
similarity index 100%
rename from js/components/pieces/AccountRequired.mjs
rename to portal/static/js/components/pieces/AccountRequired.mjs
diff --git a/js/components/pieces/Agenda.mjs b/portal/static/js/components/pieces/Agenda.mjs
similarity index 100%
rename from js/components/pieces/Agenda.mjs
rename to portal/static/js/components/pieces/Agenda.mjs
diff --git a/js/components/pieces/BoxedButton.mjs b/portal/static/js/components/pieces/BoxedButton.mjs
similarity index 100%
rename from js/components/pieces/BoxedButton.mjs
rename to portal/static/js/components/pieces/BoxedButton.mjs
diff --git a/js/components/pieces/Nav.mjs b/portal/static/js/components/pieces/Nav.mjs
similarity index 100%
rename from js/components/pieces/Nav.mjs
rename to portal/static/js/components/pieces/Nav.mjs
diff --git a/js/components/pieces/NavPageLink.mjs b/portal/static/js/components/pieces/NavPageLink.mjs
similarity index 100%
rename from js/components/pieces/NavPageLink.mjs
rename to portal/static/js/components/pieces/NavPageLink.mjs
diff --git a/js/components/pieces/PasswordInVault.mjs b/portal/static/js/components/pieces/PasswordInVault.mjs
similarity index 100%
rename from js/components/pieces/PasswordInVault.mjs
rename to portal/static/js/components/pieces/PasswordInVault.mjs
diff --git a/js/components/pieces/ServiceLink.mjs b/portal/static/js/components/pieces/ServiceLink.mjs
similarity index 100%
rename from js/components/pieces/ServiceLink.mjs
rename to portal/static/js/components/pieces/ServiceLink.mjs
diff --git a/js/components/pieces/UnlockRequired.mjs b/portal/static/js/components/pieces/UnlockRequired.mjs
similarity index 100%
rename from js/components/pieces/UnlockRequired.mjs
rename to portal/static/js/components/pieces/UnlockRequired.mjs
diff --git a/js/model/Service.mjs b/portal/static/js/model/Service.mjs
similarity index 100%
rename from js/model/Service.mjs
rename to portal/static/js/model/Service.mjs
diff --git a/js/model/services.mjs b/portal/static/js/model/services.mjs
similarity index 100%
rename from js/model/services.mjs
rename to portal/static/js/model/services.mjs
diff --git a/js/portal.mjs b/portal/static/js/portal.mjs
similarity index 68%
rename from js/portal.mjs
rename to portal/static/js/portal.mjs
index bf269de..c60f9a8 100644
--- a/js/portal.mjs
+++ b/portal/static/js/portal.mjs
@@ -1,8 +1,10 @@
 import { All } from "./components/pages/AllServices.mjs"
 import { Start } from "./components/pages/Start.mjs"
 import { Unlock } from "./components/pages/Unlock.mjs"
-import "/lib/mithril/mithril.min.js"
+import "/static/lib/mithril/mithril.min.js"
 
+// See https://mithril.js.org/route.html#routing-strategies
+m.route.prefix = ""
 m.route(document.body, "/", {
     "/": Start,
     "/all-services": All,
diff --git a/lib/fontawesome-free-6.5.2-web/LICENSE.txt b/portal/static/lib/fontawesome-free-6.5.2-web/LICENSE.txt
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/LICENSE.txt
rename to portal/static/lib/fontawesome-free-6.5.2-web/LICENSE.txt
diff --git a/lib/fontawesome-free-6.5.2-web/css/all.min.css b/portal/static/lib/fontawesome-free-6.5.2-web/css/all.min.css
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/css/all.min.css
rename to portal/static/lib/fontawesome-free-6.5.2-web/css/all.min.css
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.ttf b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.ttf
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.ttf
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.ttf
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.woff2 b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.woff2
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.woff2
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-brands-400.woff2
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.ttf b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.ttf
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.ttf
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.ttf
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.woff2 b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.woff2
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.woff2
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-regular-400.woff2
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.ttf b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.ttf
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.ttf
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.ttf
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.woff2 b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.woff2
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.woff2
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-solid-900.woff2
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.ttf b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.ttf
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.ttf
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.ttf
diff --git a/lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.woff2 b/portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.woff2
similarity index 100%
rename from lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.woff2
rename to portal/static/lib/fontawesome-free-6.5.2-web/webfonts/fa-v4compatibility.woff2
diff --git a/lib/mithril/LICENSE b/portal/static/lib/mithril/LICENSE
similarity index 100%
rename from lib/mithril/LICENSE
rename to portal/static/lib/mithril/LICENSE
diff --git a/lib/mithril/mithril.min.js b/portal/static/lib/mithril/mithril.min.js
similarity index 100%
rename from lib/mithril/mithril.min.js
rename to portal/static/lib/mithril/mithril.min.js
diff --git a/lib/nautilus/nautilus_blue.svg b/portal/static/lib/nautilus/nautilus_blue.svg
similarity index 100%
rename from lib/nautilus/nautilus_blue.svg
rename to portal/static/lib/nautilus/nautilus_blue.svg
diff --git a/lib/nautilus/nautilus_green.svg b/portal/static/lib/nautilus/nautilus_green.svg
similarity index 100%
rename from lib/nautilus/nautilus_green.svg
rename to portal/static/lib/nautilus/nautilus_green.svg
diff --git a/portal/templates/index.html b/portal/templates/index.html
new file mode 100644
index 0000000..641b9ae
--- /dev/null
+++ b/portal/templates/index.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<html lang="de">
+    <head>
+        <meta charset="utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <title>Start · FS Coli Portal</title>
+        <link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}" />
+        <link rel="icon" href="{{ url_for('static', filename='img/portal.svg') }}" />
+    </head>
+
+    <body class="blue"></body>
+
+    <script type="module" src="{{ url_for('static', filename='js/portal.mjs') }}"></script>
+</html>
-- 
GitLab