Absage-Datum checken

This commit is contained in:
rxf
2025-12-24 16:47:37 +01:00
parent 0e0263abbb
commit 01a51a8ed1
2 changed files with 65 additions and 19 deletions

View File

@@ -55,7 +55,7 @@ Beobachtergruppe Sternwarte Welzheim`
let abgesagt = null let abgesagt = null
let actualdate; let actualdate;
let isSmallScreen = false let isSmallScreen = false
let DateTime = luxon.DateTime const DateTime = luxon.DateTime
function $(selector) { function $(selector) {
@@ -99,8 +99,16 @@ Beobachtergruppe Sternwarte Welzheim`
} }
async function storeAbsage(ids) { 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 dt = DateTime.now()
const jetzt = dt.toFormat('yyyy-LL-dd HH:mm') 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}"`] }; const update = { cmd: 'UPDATE_TLN_BULK', field: 'abgesagt', ids: ids, values: [`"${jetzt}"`] };
await putToDbase(update); await putToDbase(update);
abgesagt = jetzt abgesagt = jetzt
@@ -304,29 +312,63 @@ Beobachtergruppe Sternwarte Welzheim`
const grundIndex = Array.from($all('input[name=grund]')).find(el => el.checked)?.value || 0; const grundIndex = Array.from($all('input[name=grund]')).find(el => el.checked)?.value || 0;
absagegrund = absagegrundListe[grundIndex]; absagegrund = absagegrundListe[grundIndex];
await storeAbsage(liste.ids); // Versuche das Absagedatum zu speichern, aber breche nicht ab wenn es fehlschlägt
let datumGespeichert = false;
if (query.typ !== 'sonnen') { try {
await fetch('https://laufschrift.rexfue.de/switch/switch_on') 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') {
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); bodyText = bodytext.replace("{absagegrund}", absagegrund);
const mailRet = await fetchFromDbase({ try {
cmd: 'SENDMYMAIL', const mailRet = await fetchFromDbase({
to: ['rexfue@gmail.com'], cmd: 'SENDMYMAIL',
betreff: betreff, to: ['rexfue@gmail.com'],
body: bodyText, betreff: betreff,
bcc: liste.emails body: bodyText,
}); bcc: liste.emails
if (mailRet.error) { });
$('#errortext').innerHTML = mailRet.errortext
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 = `<strong>Hinweis:</strong><br>Die Absage-Mail wurde erfolgreich versendet.<br><br>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 = `<strong>Fehler beim Versenden der Absage-Mail:</strong><br>${error.message}`;
$('#errordialog-ok').addEventListener('click', () => $('#errordialog').close()) $('#errordialog-ok').addEventListener('click', () => $('#errordialog').close())
$('#errordialog').showModal(); $('#errordialog').showModal();
$('#absagedialog').close();
} }
console.log("Mailret: ", mailRet, "Gesendet an: ", liste.emails)
$('#absagen').innerHTML = TEXTE.absagebutton(abgesagt)
$('#absagedialog').close();
}); });
$('#absagedialog-cancel').addEventListener('click', () => { $('#absagedialog-cancel').addEventListener('click', () => {

View File

@@ -1,17 +1,21 @@
// VersiosNummern und -Geschichte // VersiosNummern und -Geschichte
const VERSION="1.10.0"; const VERSION="1.11.0";
const VDATE="2025-11-17"; const VDATE="2025-12-24";
/* History /* History
Rev. Datum Entwickler 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 1.10.0 2025-11-17 rxf
- als PHP-Interface nun das DB4js_all.php verwendet - als PHP-Interface nun das DB4js_all.php verwendet
- unter Tabelle noch die Namen der Führenden anzeigen - 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. - Datum der Absge mit in der DB (abgesagt). Wird angezeigt, wenn abgesagt wurde.
1.8.1 2025-10-19 rxf 1.8.1 2025-10-19 rxf