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