From 25fc52252027c75d72be3f03ef32fdb5a8a811db Mon Sep 17 00:00:00 2001
From: Jakob Moser <moser@cl.uni-heidelberg.de>
Date: Wed, 26 Jun 2024 10:19:44 +0200
Subject: [PATCH] Add link to mensa menu

---
 .../js/components/pages/UniServices.mjs       | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/portal/static/js/components/pages/UniServices.mjs b/portal/static/js/components/pages/UniServices.mjs
index 757a029..c0d26d8 100644
--- a/portal/static/js/components/pages/UniServices.mjs
+++ b/portal/static/js/components/pages/UniServices.mjs
@@ -2,6 +2,22 @@ import { Service } from "../../model/Service.mjs"
 import { ServiceLink } from "../pieces/ServiceLink.mjs"
 import { Base } from "./Base.mjs"
 
+const germanDateFormatter = new Intl.DateTimeFormat("de-DE", {
+    month: "2-digit",
+    day: "2-digit",
+    year: "numeric",
+})
+
+function getMensaLink() {
+    const dayToShow = new Date()
+    if (dayToShow.getHours() >= 15) {
+        // If it is 15:00 or later, show tomorrow's menu
+        dayToShow.setDate(dayToShow.getDate() + 1)
+    }
+
+    return `https://www.stw.uni-heidelberg.de/external-tools/speiseplan/speiseplan.php?lang=de&mode=Mensa+Im+Neuenheimer+Feld+304&date=${germanDateFormatter.format(dayToShow)}`
+}
+
 export const UniServices = {
     oncreate() {
         document.title = "Uni-Dienste · FS Coli Portal"
@@ -46,6 +62,14 @@ export const UniServices = {
                         "Uni-ID",
                     ),
                 ),
+                m(
+                    ServiceLink,
+                    new Service(
+                        "Mensa INF",
+                        getMensaLink(),
+                        "fa-solid fa-utensils",
+                    ),
+                ),
             ]),
         )
     },
-- 
GitLab