Mitglieder edit-Admin ansicht

This commit is contained in:
Klaas 2024-05-27 22:14:35 +02:00
parent f65c07c52b
commit 7eab4884c8
2 changed files with 77 additions and 26 deletions

29
app.js
View File

@ -167,13 +167,14 @@ ORDER BY weeks_since_last DESC;
const putInRiege = async (riege, teilnehmerID) => { const putInRiege = async (riege, teilnehmerID) => {
try { try {
const resultRiege = await pool.query('SELECT * FROM riegen WHERE fremdid_teilnehmende = $1', [teilnehmerID]); const resultRiege = await pool.query('SELECT * FROM riegen WHERE fremdid_teilnehmende = $1;', [teilnehmerID]);
if (resultRiege.rows > 0) {
if (resultRiege.rows.length > 0) {
const resultRiege = await pool.query('UPDATE riegen SET riegennummer = $1 WHERE fremdid_teilnehmende = $2', [riege, teilnehmerID]); 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]); console.log("Mitglied ist jetzt in Riege $1", [riege]);
} else { } else {
const resultRiege = await pool.query('INSERT INTO riegen (fremdid_teilnehmende, riegennummer) VALUES ($1, $2)', [teilnehmerID, riege]); 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) { } catch (error) {
console.error('Error adding new spiel:', error); console.error('Error adding new spiel:', error);
@ -531,7 +532,9 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => {
const { id } = req.params; const { id } = req.params;
try { try {
const userResult = await pool.query('SELECT * FROM teilnehmende WHERE id = $1', [id]); 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 const numbers = numberResult.rows
if (userResult.rows.length > 0) { if (userResult.rows.length > 0) {
const mitglied = userResult.rows.map(t => ({ const mitglied = userResult.rows.map(t => ({
@ -542,6 +545,7 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => {
id, id,
mitglied: mitglied[0], mitglied: mitglied[0],
numbers, numbers,
riege,
session: req.session session: req.session
}); });
} else { } else {
@ -560,12 +564,19 @@ app.post('/set-riege', requireAuth, async (req, res) => {
}) })
app.post('/update-mitglied', 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{ try{
console.log('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [mitgliedId, name, verbindung, nummer, moment().toDate()]); if (type=="tel"){
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('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [id, name, verbindung, nummer, moment().toDate()]);
console.log('/mitglied/' + mitgliedId); await pool.query('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [id, name, verbindung, nummer, moment().toDate()]);
res.redirect('/mitglied/' + mitgliedId); } 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) { } catch (err) {
console.error(err); console.error(err);
res.send("Error " + err); res.send("Error " + err);

View File

@ -1,24 +1,12 @@
<%- include('partials/header') %> <%- include('partials/header') %>
<% birthday = new Date(mitglied.geburtsdatum) %> <% birthday = new Date(mitglied.geburtsdatum) %>
<h1> <%= mitglied.name %> </h1> <h1> <%= mitglied.name %> </h1>
<form method="POST" action="/set-Riege"> <div id="view" class="mt-5">
<input type="hidden" name="id" value="<%= id %>">
<select name="riege">
<option value=1> Riege 1</option>
<option value=2> Riege 2</option>
<option value=3> Riege 3</option>
<option value=4> Riege 4</option>
<option value=5> Riege 5</option>
</select></br>
<button type="submit">Speichern</button>
</form>
<strong> Geburtsdatum: </strong> <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)</br> <strong> Geburtsdatum: </strong> <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)</br>
<strong> Adresse: </strong> <%= mitglied.adresse %> </br> <strong> Adresse: </strong> <%= mitglied.adresse %> </br>
<strong> Riege: </strong> <%= riege %> </br>
<% numbers.forEach(number => { %> <% numbers.forEach(number => { %>
<% if (number.verbindung === 4) { %> <% if (number.verbindung === 4) { %>
<strong> Telefonnummer: </strong> <%= number.nummer %> </br> <strong> Telefonnummer: </strong> <%= number.nummer %> </br>
@ -28,12 +16,55 @@
<p> <p>
<% numbers.forEach(number => { %> <% numbers.forEach(number => { %>
<% if (number.verbindung != 4) { %> <% if (number.verbindung != 4) { %>
<strong><%= number.bezeichnung %> - <%= number.name %>: </strong> <%= number.nummer %> (stand: <%= number.stand.getDate() %>.<%= number.stand.getMonth() %>.<%= number.stand.getFullYear() %>) </br> <strong><%= number.bezeichnung %> - <%= number.name %>: </strong> <%= number.nummer %> <% if (number.stand) { %>(stand: <%= number.stand.getDate() %>.<%= number.stand.getMonth() %>.<%= number.stand.getFullYear() %>) <% } %></br>
<% }}) %> <% }}) %>
</p> </p>
<% if (session && session.role === 'admin') { %>
<button class="btn btn-primary" onclick="toggleDivs()">Zum Edit-Modus wechseln</button>
<% } %>
</div>
<% if (session && session.role === 'admin') { %>
<div id="edit" class="mt-5 d-none">
<strong> Geburtsdatum: </strong> <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>)</br>
<form method="POST" action="/update-mitglied"> <form method="POST" action="/update-mitglied">
<input type="hidden" name="mitgliedId" value="<%= id %>"> <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 %>">
<button type="submit">Speichern</button>
</form>
<form method="POST" action="/set-Riege">
<input type="hidden" name="id" value="<%= id %>">
<strong>Riege: </strong><select name="riege">
<option value=1 <% if ( riege === 1) { %> selected <% } %>> Riege 1</option>
<option value=2 <% if ( riege === 2) { %> selected <% } %>> Riege 2</option>
<option value=3 <% if ( riege === 3) { %> selected <% } %>> Riege 3</option>
<option value=4 <% if ( riege === 4) { %> selected <% } %>> Riege 4</option>
<option value=5 <% if ( riege === 5) { %> selected <% } %>> Riege 5</option>
</select>
<button type="submit">Speichern</button>
</form>
<p>
<% numbers.forEach(number => { %>
<form method="POST" action="/update-mitglied">
<input type="hidden" name="telid" value="<%= number.id %>">
<input type="hidden" name="type" value="tel-delete">
<input type="hidden" name="id" value="<%= id %>">
<strong><%= number.bezeichnung %> - <%= number.name %>: </strong> <%= number.nummer %>
<button type="submit">löschen</button>
</form>
<% }) %>
</p>
<h2>Telefonnummer hinzufügen</h2>
<form method="POST" action="/update-mitglied">
<input type="hidden" name="id" value="<%= id %>">
<input type="hidden" name="type" value="tel">
<select name="verbindung"> <select name="verbindung">
<option value=1>Mutter</option> <option value=1>Mutter</option>
<option value=2>Vater</option> <option value=2>Vater</option>
@ -46,7 +77,16 @@
<input name="nummer" placeholder="+49 123 456 789" type="text"> <input name="nummer" placeholder="+49 123 456 789" type="text">
<button type="submit">Speichern</button> <button type="submit">Speichern</button>
</form> </form>
<button class="btn btn-secondary" onclick="toggleDivs()">Zum View-Modus wechseln</button>
</div>
<% } %>
<script>
function toggleDivs() {
$('#view').toggleClass('d-none d-block');
$('#edit').toggleClass('d-none d-block');
}
</script>
<%- include('partials/footer') %> <%- include('partials/footer') %>