Added function to hide unused reports
This commit is contained in:
@@ -23,5 +23,8 @@ RUN pip3 install --no-cache-dir -r requirements.txt --break-system-packages
|
|||||||
# Öffne den Port des Web-Servers
|
# Öffne den Port des Web-Servers
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Setze die Umgebungsvariablen
|
||||||
|
ENV ONLY_SHOW_AVAILABLE true
|
||||||
|
|
||||||
# Starte den Web-Server
|
# Starte den Web-Server
|
||||||
CMD ["node", "server.js"]
|
CMD ["node", "server.js"]
|
||||||
@@ -16,6 +16,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 3000:3000
|
- 3000:3000
|
||||||
environment:
|
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_URL=https://example.com/calendars/' # URL to the caldav server
|
||||||
- 'CALDAV_USER=USERNAME' # Username for the caldav server
|
- 'CALDAV_USER=USERNAME' # Username for the caldav server
|
||||||
- 'CALDAV_PASSWORD=PASSWORD' # Password for the caldav server
|
- 'CALDAV_PASSWORD=PASSWORD' # Password for the caldav server
|
||||||
|
|||||||
@@ -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
|
// Definiere eine Route für die Ausgabe der Daten
|
||||||
app.get('/getreport', async (req, res) => {
|
app.get('/getreport', async (req, res) => {
|
||||||
const weekDate = last50Weeks[req.query.week];
|
const weekDate = last50Weeks[req.query.week];
|
||||||
|
|||||||
@@ -14,17 +14,21 @@
|
|||||||
</select>
|
</select>
|
||||||
<button id="export-button" onclick="exportReport()">Exportieren</button>
|
<button id="export-button" onclick="exportReport()">Exportieren</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="ueberschrift">
|
<div id="calendar-div">
|
||||||
<h4>Kalendereinträge</h4>
|
<div class="ueberschrift">
|
||||||
<button id="calendar-copy-button" onclick="copyToClipboard(calendarcalendarCopyButton, calendarTextarea)">Kopieren</button>
|
<h4>Kalendereinträge</h4>
|
||||||
|
<button id="calendar-copy-button" onclick="copyToClipboard(calendarcalendarCopyButton, calendarTextarea)">Kopieren</button>
|
||||||
|
</div>
|
||||||
|
<textarea id="calendar-textarea"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<textarea id="calendar-textarea"></textarea>
|
|
||||||
|
|
||||||
<div class="ueberschrift">
|
<div id="untis-div">
|
||||||
<h4>Untis Einträge</h4>
|
<div class="ueberschrift">
|
||||||
<button id="untis-copy-button" onclick="copyToClipboard(untisCopyButton, untisTextarea)">Kopieren</button>
|
<h4>Untis Einträge</h4>
|
||||||
|
<button id="untis-copy-button" onclick="copyToClipboard(untisCopyButton, untisTextarea)">Kopieren</button>
|
||||||
|
</div>
|
||||||
|
<textarea id="untis-textarea"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<textarea id="untis-textarea"></textarea>
|
|
||||||
|
|
||||||
<script src="index.js"></script>
|
<script src="index.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -7,6 +7,27 @@ const untisCopyButton = document.getElementById('untis-copy-button');
|
|||||||
const weekList = document.getElementById('week-list');
|
const weekList = document.getElementById('week-list');
|
||||||
const exportButton = document.getElementById('export-button');
|
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() {
|
function loadWeeks() {
|
||||||
fetch('/newweekavailable?week=' + weekList.options[0].innerHTML)
|
fetch('/newweekavailable?week=' + weekList.options[0].innerHTML)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|||||||
Reference in New Issue
Block a user