diff --git a/sternwarte/intern/anmeld/js/anmeld.js b/sternwarte/intern/anmeld/js/anmeld.js index 1066d53..b51d66f 100644 --- a/sternwarte/intern/anmeld/js/anmeld.js +++ b/sternwarte/intern/anmeld/js/anmeld.js @@ -55,7 +55,7 @@ Beobachtergruppe Sternwarte Welzheim` let abgesagt = null let actualdate; let isSmallScreen = false - let DateTime = luxon.DateTime + const DateTime = luxon.DateTime function $(selector) { @@ -99,8 +99,16 @@ Beobachtergruppe Sternwarte Welzheim` } async function storeAbsage(ids) { + if (!DateTime || typeof DateTime.now !== 'function') { + console.error('Luxon DateTime ist nicht verfügbar'); + throw new Error('Datum kann nicht erstellt werden - Luxon nicht geladen'); + } const dt = DateTime.now() const jetzt = dt.toFormat('yyyy-LL-dd HH:mm') + if (!jetzt || jetzt === 'undefined' || jetzt.includes('undefined')) { + console.error('Ungültiges Datum generiert:', jetzt); + throw new Error('Ungültiges Datum erstellt'); + } const update = { cmd: 'UPDATE_TLN_BULK', field: 'abgesagt', ids: ids, values: [`"${jetzt}"`] }; await putToDbase(update); abgesagt = jetzt @@ -304,29 +312,63 @@ Beobachtergruppe Sternwarte Welzheim` const grundIndex = Array.from($all('input[name=grund]')).find(el => el.checked)?.value || 0; absagegrund = absagegrundListe[grundIndex]; - await storeAbsage(liste.ids); + // Versuche das Absagedatum zu speichern, aber breche nicht ab wenn es fehlschlägt + let datumGespeichert = false; + try { + await storeAbsage(liste.ids); + datumGespeichert = true; + } catch (error) { + console.error('Fehler beim Speichern des Absagedatums:', error); + // Warnung anzeigen, aber weitermachen + console.warn('Absagedatum konnte nicht gespeichert werden, aber Mail wird trotzdem versendet'); + } + // Laufschrift einschalten (falls regular) if (query.typ !== 'sonnen') { - await fetch('https://laufschrift.rexfue.de/switch/switch_on') + try { + await fetch('https://laufschrift.rexfue.de/switch/switch_on') + } catch (error) { + console.error('Laufschrift konnte nicht eingeschaltet werden:', error); + } } + // Mail senden (wichtigster Teil!) bodyText = bodytext.replace("{absagegrund}", absagegrund); - const mailRet = await fetchFromDbase({ - cmd: 'SENDMYMAIL', - to: ['rexfue@gmail.com'], - betreff: betreff, - body: bodyText, - bcc: liste.emails - }); - if (mailRet.error) { - $('#errortext').innerHTML = mailRet.errortext + try { + const mailRet = await fetchFromDbase({ + cmd: 'SENDMYMAIL', + to: ['rexfue@gmail.com'], + betreff: betreff, + body: bodyText, + bcc: liste.emails + }); + + if (mailRet.error) { + $('#errortext').innerHTML = mailRet.errortext + $('#errordialog-ok').addEventListener('click', () => $('#errordialog').close()) + $('#errordialog').showModal(); + return; + } + + console.log("Mailret: ", mailRet, "Gesendet an: ", liste.emails) + + // Zeige Warnung an, wenn Datum nicht gespeichert werden konnte + if (!datumGespeichert) { + $('#errortext').innerHTML = `Hinweis:
Die Absage-Mail wurde erfolgreich versendet.

Das Absagedatum konnte jedoch nicht in der Datenbank gespeichert werden. Bitte notieren Sie manuell, dass die Absage gesendet wurde.`; + $('#errordialog-ok').addEventListener('click', () => $('#errordialog').close()) + $('#errordialog').showModal(); + } + + $('#absagen').innerHTML = TEXTE.absagebutton(abgesagt) + $('#absagedialog').close(); + + } catch (error) { + console.error('Fehler beim Mail-Versand:', error); + $('#errortext').innerHTML = `Fehler beim Versenden der Absage-Mail:
${error.message}`; $('#errordialog-ok').addEventListener('click', () => $('#errordialog').close()) $('#errordialog').showModal(); - + $('#absagedialog').close(); } - console.log("Mailret: ", mailRet, "Gesendet an: ", liste.emails) - $('#absagen').innerHTML = TEXTE.absagebutton(abgesagt) - $('#absagedialog').close(); }); $('#absagedialog-cancel').addEventListener('click', () => { diff --git a/sternwarte/intern/anmeld/js/version.js b/sternwarte/intern/anmeld/js/version.js index f1492a7..f0bf902 100644 --- a/sternwarte/intern/anmeld/js/version.js +++ b/sternwarte/intern/anmeld/js/version.js @@ -1,17 +1,21 @@ // VersiosNummern und -Geschichte -const VERSION="1.10.0"; -const VDATE="2025-11-17"; +const VERSION="1.11.0"; +const VDATE="2025-12-24"; /* History Rev. Datum Entwickler + 1.11.0 2025-12-24 rxf + - Wenn das Absagedatum ungültig ist, eine Fehlermeldung + erzeugen, aber die Mails trotzdem versenden + 1.10.0 2025-11-17 rxf - als PHP-Interface nun das DB4js_all.php verwendet - unter Tabelle noch die Namen der Führenden anzeigen - 1.9.0 2025-11-07 rxf + 1.9.0 2025-11-07 rxf - Datum der Absge mit in der DB (abgesagt). Wird angezeigt, wenn abgesagt wurde. 1.8.1 2025-10-19 rxf