Hotfix auf dem Server
This commit is contained in:
klaas 2024-09-28 12:40:48 +02:00
commit 71bd4ba9bf
5 changed files with 110 additions and 25 deletions

63
app.js
View File

@ -675,10 +675,20 @@ app.get("/training", requireAuth, async (req, res) => {
// Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung
const result = await pool.query(`
SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer
FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
ORDER BY r.riegennummer, t.geburtsdatum ASC
SELECT r.riegennummer,
t.id,
t.name,
t.vorname,
t.nachname,
t.geburtsdatum,
t.probe,
r.helfer,
COUNT(a.fid_teilnehmer) AS anwesenheit
FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
LEFT JOIN anwesend a ON t.id = a.fid_teilnehmer
GROUP BY r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer
ORDER BY r.riegennummer, t.geburtsdatum ASC;
`);
// Gruppieren der Riegenteilnehmer nach Riegennummer
@ -696,6 +706,8 @@ app.get("/training", requireAuth, async (req, res) => {
nachname: row.nachname,
age: age,
helfer: row.helfer,
probe: row.probe,
anwesenheit: row.anwesenheit,
anwesend: tnAnwesend,
anzahl,
});
@ -737,12 +749,22 @@ app.get("/riege", requireAuth, async (req, res) => {
try {
// Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung
const result = await pool.query(`
SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer
FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
ORDER BY r.riegennummer, t.geburtsdatum ASC
`);
SELECT r.riegennummer,
t.id,
t.name,
t.vorname,
t.nachname,
t.geburtsdatum,
t.probe,
r.helfer,
COUNT(a.fid_teilnehmer) AS anwesenheit
FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
LEFT JOIN anwesend a ON t.id = a.fid_teilnehmer
GROUP BY r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer
ORDER BY r.riegennummer, t.geburtsdatum ASC;
`);
// Gruppieren der Riegenteilnehmer nach Riegennummer
const riegen = {};
result.rows.forEach((row) => {
@ -757,6 +779,8 @@ app.get("/riege", requireAuth, async (req, res) => {
nachname: row.nachname,
age: age,
helfer: row.helfer,
probe: row.probe,
anwesenheit: row.anwesenheit,
});
});
@ -771,7 +795,7 @@ app.get("/riege", requireAuth, async (req, res) => {
app.get("/teilnehmer", requireAuth, requireAdmin, async (req, res) => {
try {
const teilnehmendeResult = await pool.query(
"SELECT * FROM teilnehmende ORDER BY helfer DESC, vorname ASC"
"SELECT m.*, COUNT(a.fid_teilnehmer) AS anwesenheit FROM teilnehmende m LEFT JOIN anwesend a ON m.id = a.fid_teilnehmer GROUP BY m.id ORDER BY helfer DESC, vorname ASC"
);
const teilnehmende = teilnehmendeResult.rows.map((t) => ({
@ -844,8 +868,19 @@ app.post("/set-riege", requireAuth, async (req, res) => {
});
app.post("/update-mitglied", requireAdmin, async (req, res) => {
const { type, id, geburt, telid, adresse, name, verbindung, nummer, probe } =
req.body;
const {
type,
id,
geburt,
telid,
adresse,
name,
verbindung,
nummer,
vorname,
nachname,
probe,
} = req.body;
try {
if (type == "tel") {
console.log(
@ -861,8 +896,8 @@ app.post("/update-mitglied", requireAdmin, async (req, res) => {
console.log("delete numer $1", [telid]);
} else if (type == "adresse") {
await pool.query(
"UPDATE teilnehmende SET geburtsdatum = $1, adresse = $2, probe = $3 WHERE id = $4",
[geburt, adresse, probe ? true : false, id]
"UPDATE teilnehmende SET vorname = $1, nachname = $2, geburtsdatum = $3, adresse = $4, probe = $5 WHERE id = $6",
[vorname, nachname, geburt, adresse, probe ? true : false, id]
);
}

View File

@ -31,19 +31,46 @@
<% if (session && session.role === 'admin') { %>
<div id="edit" class="mt-5 d-none">
<form method="POST" action="/update-mitglied">
Geburtsdatum: <input type="date" id="geburt" name="geburt" value="<%= birthday.getFullYear() %>-<%= ('00' + (birthday.getMonth() + 1)).slice(-2) %>-<%= ('00' + birthday.getDate()).slice(-2) %>"></br>
<input type="hidden" name="id" value="<%= id %>">
<input type="hidden" name="type" value="adresse">
<strong> Adresse: </strong> <input name="adresse" type="text" value="<%= mitglied.adresse %>"></br>
<strong> Probetraining: </strong> <input type="checkbox" name="probe" value="true" <%= mitglied.probe ? 'checked' : '' %>></br>
<button type="submit">Speichern</button>
<form method="POST" action="/update-mitglied">
<fieldset class="scheduler-border">
<legend >Stammdaten</legend>
<div class="form-row">
<div class="form-group col-md-3">
<label for="vorname">Vorname:</label>
<input class="form-control" name="vorname" type="text" value="<%= mitglied.vorname %>">
</div>
<div class="form-group col-md-3">
<label for="nachname">Nachname:</label>
<input class="form-control" name="nachname" type="text" value="<%= mitglied.nachname %>"></br>
</div>
</div>
<div class="form-group col-md-6">
<label for="geburt">Geburtsdatum:</label>
<input type="date" id="geburt" name="geburt" value="<%= birthday.getFullYear() %>-<%= ('00' + (birthday.getMonth() + 1)).slice(-2) %>-<%= ('00' + birthday.getDate()).slice(-2) %>"></br>
</div>
<input type="hidden" name="id" value="<%= id %>">
<input type="hidden" name="type" value="adresse">
<div class="form-group col-md-3">
<label for="adresse"> Adresse: </label>
<input class="form-control" name="adresse" type="text" value="<%= mitglied.adresse %>"></br>
</div>
<label for="probe"> Probetraining: </label>
<input class="form-check-input" type="checkbox" name="probe" value="true" <%= mitglied.probe ? 'checked' : '' %>></br>
<button class="btn btn-success" type="submit">Speichern</button>
</fieldset>
</form>
<form method="POST" action="/set-Riege">
<fieldset>
<legend>Riege</legend>
<input type="hidden" name="id" value="<%= id %>">
<strong>Riege: </strong><select name="riege">
<strong>Riege: </strong><select class="custom-select" name="riege">
<option value=0 <% if ( riege === 0) { %> selected <% } %>> keine</option>
<option value=1 <% if ( riege === 1) { %> selected <% } %>> Riege 1</option>
<option value=2 <% if ( riege === 2) { %> selected <% } %>> Riege 2</option>
@ -52,8 +79,11 @@
<option value=5 <% if ( riege === 5) { %> selected <% } %>> Riege 5</option>
</select>
<button type="submit">Speichern</button>
</fieldset>
</form>
<fieldset>
<legend>Notfallnummern</legend>
<p>
<% numbers.forEach(number => { %>
<form method="POST" action="/update-mitglied">
@ -65,7 +95,7 @@
</form>
<% }) %>
</p>
</fieldset>
<h2>Telefonnummer hinzufügen</h2>
<form method="POST" action="/update-mitglied">

View File

@ -64,6 +64,12 @@
<a href="/mitglied/<%= teilnehmer.id %>"
><%= teilnehmer.nachname %></a
>
<% } %> <% if (teilnehmer.probe) { %>
<span
style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;"
>
(<%= teilnehmer.anwesenheit %>)
</span>
<% } %>
</td>
<td><%= teilnehmer.age %> Jahre</td>

View File

@ -27,6 +27,13 @@
<% } else { %>
<a href="/mitglied/<%= teilnehmer.id %>"><%= teilnehmer.nachname %></a>
<% } %>
<% if (teilnehmer.probe) { %>
<span style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;">
(<%= teilnehmer.anwesenheit %>)
</span>
<% } %>
</td>
<td><%= teilnehmer.age %> Jahre</td>
</tr>

View File

@ -303,6 +303,13 @@
</td>
<td>
<%= teilnehmer.nachname %>
<% if (teilnehmer.probe) { %>
<span
style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;"
>
(<%= teilnehmer.anwesenheit %>)
</span>
<% } %>
</td>
<td>
<%= teilnehmer.age %>