diff --git a/Dockerfile b/Dockerfile index 661bc92..dfbbf45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,5 +23,8 @@ RUN pip3 install --no-cache-dir -r requirements.txt --break-system-packages # Öffne den Port des Web-Servers EXPOSE 3000 +# Setze die Umgebungsvariablen +ENV ONLY_SHOW_AVAILABLE true + # Starte den Web-Server CMD ["node", "server.js"] \ No newline at end of file diff --git a/README.md b/README.md index a49c3b7..053d49b 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ services: ports: - 3000:3000 environment: + - 'ONLY_SHOW_AVAILABLE=true' # Optional, default: true (only show available reports in the UI) - 'CALDAV_URL=https://example.com/calendars/' # URL to the caldav server - 'CALDAV_USER=USERNAME' # Username for the caldav server - 'CALDAV_PASSWORD=PASSWORD' # Password for the caldav server diff --git a/src/server.js b/src/server.js index ffa1396..0ec4734 100644 --- a/src/server.js +++ b/src/server.js @@ -141,6 +141,25 @@ app.get('/newweekavailable', (req, res) => { } }); +app.get('/show', (req, res) => { + let showCalendar = true; + let showUntis = true; + + if (process.env.ONLY_SHOW_AVAILABLE == "true") { + if (process.env.CALDAV_URL == undefined || process.env.CALDAV_USER == undefined || process.env.CALDAV_PASSWORD == undefined || process.env.CALDAV_CALENDAR == undefined) { + showCalendar = false; + } + if (process.env.UNTIS_SCHOOLS == undefined || process.env.UNTIS_USERNAMES == undefined || process.env.UNTIS_PASSWORDS == undefined || process.env.UNTIS_SERVERS == undefined) { + showUntis = false; + } + } + + res.send({ + calendar: showCalendar, + untis: showUntis + }); +}); + // Definiere eine Route für die Ausgabe der Daten app.get('/getreport', async (req, res) => { const weekDate = last50Weeks[req.query.week]; diff --git a/src/static/index.html b/src/static/index.html index 29388fb..60dc74f 100644 --- a/src/static/index.html +++ b/src/static/index.html @@ -14,17 +14,21 @@ -
-

Kalendereinträge

- +
+
+

Kalendereinträge

+ +
+
- -
-

Untis Einträge

- +
+
+

Untis Einträge

+ +
+
- diff --git a/src/static/index.js b/src/static/index.js index cb90453..e50f321 100644 --- a/src/static/index.js +++ b/src/static/index.js @@ -7,6 +7,27 @@ const untisCopyButton = document.getElementById('untis-copy-button'); const weekList = document.getElementById('week-list'); const exportButton = document.getElementById('export-button'); +const calendarDiv = document.getElementById('calendar-div'); +const untisDiv = document.getElementById('untis-div'); + +fetch('/show') + .then(response => { + if (response.ok) { + return response.json(); + } else { + throw new Error('Error während des Abrufs'); + } + }).then(json => { + if (json.calendar == false) { + calendarDiv.style.display = 'none'; + } + if (json.untis == false) { + untisDiv.style.display = 'none'; + } + }).catch(error => { + console.error(error); + }); + function loadWeeks() { fetch('/newweekavailable?week=' + weekList.options[0].innerHTML) .then(response => {