Absage-Datum checken
This commit is contained in:
@@ -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,13 +312,29 @@ 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];
|
||||||
|
|
||||||
|
// Versuche das Absagedatum zu speichern, aber breche nicht ab wenn es fehlschlägt
|
||||||
|
let datumGespeichert = false;
|
||||||
|
try {
|
||||||
await storeAbsage(liste.ids);
|
await storeAbsage(liste.ids);
|
||||||
|
datumGespeichert = true;
|
||||||
if (query.typ !== 'sonnen') {
|
} catch (error) {
|
||||||
await fetch('https://laufschrift.rexfue.de/switch/switch_on')
|
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);
|
||||||
|
try {
|
||||||
const mailRet = await fetchFromDbase({
|
const mailRet = await fetchFromDbase({
|
||||||
cmd: 'SENDMYMAIL',
|
cmd: 'SENDMYMAIL',
|
||||||
to: ['rexfue@gmail.com'],
|
to: ['rexfue@gmail.com'],
|
||||||
@@ -318,15 +342,33 @@ Beobachtergruppe Sternwarte Welzheim`
|
|||||||
body: bodyText,
|
body: bodyText,
|
||||||
bcc: liste.emails
|
bcc: liste.emails
|
||||||
});
|
});
|
||||||
|
|
||||||
if (mailRet.error) {
|
if (mailRet.error) {
|
||||||
$('#errortext').innerHTML = mailRet.errortext
|
$('#errortext').innerHTML = mailRet.errortext
|
||||||
$('#errordialog-ok').addEventListener('click', () => $('#errordialog').close())
|
$('#errordialog-ok').addEventListener('click', () => $('#errordialog').close())
|
||||||
$('#errordialog').showModal();
|
$('#errordialog').showModal();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Mailret: ", mailRet, "Gesendet an: ", liste.emails)
|
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)
|
$('#absagen').innerHTML = TEXTE.absagebutton(abgesagt)
|
||||||
$('#absagedialog').close();
|
$('#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').showModal();
|
||||||
|
$('#absagedialog').close();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#absagedialog-cancel').addEventListener('click', () => {
|
$('#absagedialog-cancel').addEventListener('click', () => {
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
// 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
|
||||||
|
|||||||
Reference in New Issue
Block a user