diff --git a/app.js b/app.js index 144dba4..5347bf8 100644 --- a/app.js +++ b/app.js @@ -167,13 +167,14 @@ ORDER BY weeks_since_last DESC; const putInRiege = async (riege, teilnehmerID) => { try { - const resultRiege = await pool.query('SELECT * FROM riegen WHERE fremdid_teilnehmende = $1', [teilnehmerID]); - if (resultRiege.rows > 0) { + const resultRiege = await pool.query('SELECT * FROM riegen WHERE fremdid_teilnehmende = $1;', [teilnehmerID]); + + if (resultRiege.rows.length > 0) { const resultRiege = await pool.query('UPDATE riegen SET riegennummer = $1 WHERE fremdid_teilnehmende = $2', [riege, teilnehmerID]); console.log("Mitglied ist jetzt in Riege $1", [riege]); } else { const resultRiege = await pool.query('INSERT INTO riegen (fremdid_teilnehmende, riegennummer) VALUES ($1, $2)', [teilnehmerID, riege]); - console.log("Mitglied neu in Riegen eingefügt."); + console.log("Mitglied neu in Riege $1 eingefügt.", [riege]); } } catch (error) { console.error('Error adding new spiel:', error); @@ -531,7 +532,9 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => { const { id } = req.params; try { const userResult = await pool.query('SELECT * FROM teilnehmende WHERE id = $1', [id]); - const numberResult = await pool.query('SELECT * FROM telefonnummern JOIN telverbindung ON telefonnummern.verbindung = telverbindung.id WHERE telefonnummern.fid_teilnehmer = $1', [id]); + const riegeResult = await pool.query('SELECT * FROM riegen WHERE fremdid_teilnehmende = $1', [id]); + const riege = riegeResult.rows[0].riegennummer; + const numberResult = await pool.query('SELECT telefonnummern.*, telverbindung.bezeichnung FROM telefonnummern JOIN telverbindung ON telefonnummern.verbindung = telverbindung.id WHERE telefonnummern.fid_teilnehmer = $1', [id]); const numbers = numberResult.rows if (userResult.rows.length > 0) { const mitglied = userResult.rows.map(t => ({ @@ -542,6 +545,7 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => { id, mitglied: mitglied[0], numbers, + riege, session: req.session }); } else { @@ -560,12 +564,19 @@ app.post('/set-riege', requireAuth, async (req, res) => { }) app.post('/update-mitglied', async (req, res) => { - const { mitgliedId, name, verbindung, nummer } = req.body; + const { type, id, telid, adresse, name, verbindung, nummer } = req.body; try{ - console.log('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [mitgliedId, name, verbindung, nummer, moment().toDate()]); - await pool.query('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [mitgliedId, name, verbindung, nummer, moment().toDate()]); - console.log('/mitglied/' + mitgliedId); - res.redirect('/mitglied/' + mitgliedId); + if (type=="tel"){ + console.log('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [id, name, verbindung, nummer, moment().toDate()]); + await pool.query('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [id, name, verbindung, nummer, moment().toDate()]); + } else if (type=="tel-delete"){ + await pool.query('DELETE FROM telefonnummern WHERE id = $1', [telid]); + console.log('delete numer $1', [telid]); + } else if (type=="adresse"){ + await pool.query('UPDATE teilnehmende SET adresse = $1 WHERE id = $2', [adresse, id]); + } + + res.redirect('/mitglied/' + id); } catch (err) { console.error(err); res.send("Error " + err); diff --git a/views/mitglied.ejs b/views/mitglied.ejs index 151f749..e03a56c 100644 --- a/views/mitglied.ejs +++ b/views/mitglied.ejs @@ -1,24 +1,12 @@ <%- include('partials/header') %> <% birthday = new Date(mitglied.geburtsdatum) %> -

<%= mitglied.name %>

-
- -
- -
- - - Geburtsdatum: <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)
+
+ Geburtsdatum: <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)
Adresse: <%= mitglied.adresse %>
+ Riege: <%= riege %>
<% numbers.forEach(number => { %> <% if (number.verbindung === 4) { %> Telefonnummer: <%= number.nummer %>
@@ -28,12 +16,55 @@

<% numbers.forEach(number => { %> <% if (number.verbindung != 4) { %> -<%= number.bezeichnung %> - <%= number.name %>: <%= number.nummer %> (stand: <%= number.stand.getDate() %>.<%= number.stand.getMonth() %>.<%= number.stand.getFullYear() %>)
+<%= number.bezeichnung %> - <%= number.name %>: <%= number.nummer %> <% if (number.stand) { %>(stand: <%= number.stand.getDate() %>.<%= number.stand.getMonth() %>.<%= number.stand.getFullYear() %>) <% } %>
<% }}) %>

+<% if (session && session.role === 'admin') { %> + + <% } %> +
+ +<% if (session && session.role === 'admin') { %> +
+ Geburtsdatum: <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)
+
+ + + Adresse: + +
+ + +
+ + Riege: + +
+ +

+ <% numbers.forEach(number => { %> +

+ + + + <%= number.bezeichnung %> - <%= number.name %>: <%= number.nummer %> + +
+ <% }) %> +

+ + +

Telefonnummer hinzufügen

- + +
+ +
+<% } %> + <%- include('partials/footer') %>