V 2.0.0. sofue

Vor dem Senden der Email kann noch ein Text eingefügt werden
This commit is contained in:
rxf
2026-03-17 11:36:10 +01:00
parent 33f3795e5b
commit fbce630b52
4 changed files with 88 additions and 15 deletions

View File

@@ -1307,7 +1307,6 @@ try {
IBAN DE18 6007 0070 0122 0383 00 IBAN DE18 6007 0070 0122 0383 00
BIC: DEUTDESSXXX BIC: DEUTDESSXXX
Mit sternfreundlichen Grüßen Mit sternfreundlichen Grüßen
Reinhard X. Fürst Reinhard X. Fürst
Sternwarte Welzheim Sternwarte Welzheim
@@ -1316,6 +1315,8 @@ try {
respond(['success' => $ok]); respond(['success' => $ok]);
case 'SENDMAIL2BEO': case 'SENDMAIL2BEO':
$mailNote = trim((string)($input['mail_note'] ?? ''));
$mailNoteBlock = $mailNote !== '' ? "\n " . $mailNote . "\n" : "\n";
$mail = RepoBeos::email($input['ma']); $mail = RepoBeos::email($input['ma']);
$vor = RepoBeos::vorname($input['ma']); $vor = RepoBeos::vorname($input['ma']);
$dt = date('d.m.Y H:i', strtotime($input['termin'])); $dt = date('d.m.Y H:i', strtotime($input['termin']));
@@ -1333,6 +1334,8 @@ Hallo " . $vor .",
Der Termin wurde in den Sternwartenkalender eingetragen. Der Termin wurde in den Sternwartenkalender eingetragen.
Die Kontaktdaten sind auf der Sonderführungsseite ( https://sternwarte-welzheim.de/intern/sofue/sofue.php ) zu finden. Die Kontaktdaten sind auf der Sonderführungsseite ( https://sternwarte-welzheim.de/intern/sofue/sofue.php ) zu finden.
{$mailNoteBlock}
Viele Grüße Viele Grüße
Reinhard Reinhard
@@ -1345,16 +1348,13 @@ Hallo " . $vor .",
case 'SENDMAIL2LISTE': case 'SENDMAIL2LISTE':
$info = RepoSoFue::getById((int)$input['id']); $info = RepoSoFue::getById((int)$input['id']);
if (!$info) respondError('Führung nicht gefunden', 404); if (!$info) respondError('Führung nicht gefunden', 404);
$mailNote = trim((string)($input['mail_note'] ?? ''));
$to = $input['to'] ?? LISTE_EMAIL; $to = $input['to'] ?? LISTE_EMAIL;
$subject = 'Neue Anfrage Sonderführung am ' . date('d.m.Y', strtotime($info['wtermin'])); $subject = 'Neue Anfrage Sonderführung am ' . date('d.m.Y', strtotime($info['wtermin']));
$body = " $body = "
Liebe BEOs, Liebe BEOs,
wer kann folgende Sonderführung übernehmen? wer kann folgende Sonderführung übernehmen?
Viele Grüße
Reinhard
---------------------------------------------------------------------------------------------------"; ---------------------------------------------------------------------------------------------------";
$body = $body . " $body = $body . "
@@ -1367,6 +1367,10 @@ Weitere Fragen oder Mitteilungen:
" . $info['mitteilung'] . " " . $info['mitteilung'] . "
Spendenbescheinigung: \t" . $info['spende'] . " Spendenbescheinigung: \t" . $info['spende'] . "
---------------------------------------------------------------------------------------------------"; ---------------------------------------------------------------------------------------------------";
if ($mailNote !== '') {
$body .= "\n\n" . $mailNote . "\n";
}
$body .= "\n\nViele Grüße\nReinhard\n";
$ok = Mailer::sendPlain($to, $subject, $body); $ok = Mailer::sendPlain($to, $subject, $body);
respond(['success' => $ok]); respond(['success' => $ok]);

View File

@@ -565,13 +565,31 @@ function saveSettings() {
// 'Content-Type': 'application/json' // 'Content-Type': 'application/json'
// } // }
// }) // })
doAjaxCall_arr(ajaxURL,cmd,showajaxerg); if (status == 1 || status == 2) {
doAjaxCall_arr(ajaxURL, cmd, function() {
openMailNoteDialog(status, id, marb, termin);
});
} else {
doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
}
}
if(status == 1) { // offen -> mail an Liste function openMailNoteDialog(status, id, marb, termin) {
sendmail2liste(id, termin); $('#mailnote_text').val('');
$('#div_mailnote').data({
status: status,
id: id,
marb: marb,
termin: termin
}).dialog('open');
}
function sendStatusMails(status, id, marb, termin, mailNote) {
if (status == 1) { // offen -> mail an Liste
sendmail2liste(id, termin, mailNote);
} }
if (status == 2) { if (status == 2) {
sendmail2beo(id, marb, termin) sendmail2beo(id, marb, termin, mailNote);
sendmailzusage(id, marb, termin); sendmailzusage(id, marb, termin);
} }
} }
@@ -612,9 +630,12 @@ function showdbase(val) {
} }
// Status wurde auf 'offen' gesetzt -> nun eine Mail an die Liste mit der Anfrage senden // Status wurde auf 'offen' gesetzt -> nun eine Mail an die Liste mit der Anfrage senden
function sendmail2liste(id, termin) { function sendmail2liste(id, termin, mailNote) {
const liste = 'sternwarte@planetariumsgesellschaft.de'; const liste = 'sternwarte@planetariumsgesellschaft.de';
let cmd = {cmd: 'SENDMAIL2LISTE', id: id, to: liste} let cmd = {cmd: 'SENDMAIL2LISTE', id: id, to: liste}
if (mailNote) {
cmd.mail_note = mailNote;
}
console.log("Sende mail to Liste"); console.log("Sende mail to Liste");
doAjaxCall_arr(ajaxURL,cmd,showajaxerg); doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
console.log("Mail gesendet"); console.log("Mail gesendet");
@@ -624,8 +645,11 @@ function sendmail2liste(id, termin) {
} }
// Status wurde auf 'zugesgat' gesetzt -> nun eine Mail an den BEO senden // Status wurde auf 'zugesgat' gesetzt -> nun eine Mail an den BEO senden
function sendmail2beo(id, beo, termin) { function sendmail2beo(id, beo, termin, mailNote) {
let cmd = {cmd: 'SENDMAIL2BEO', ma: beo, termin: termin} let cmd = {cmd: 'SENDMAIL2BEO', ma: beo, termin: termin}
if (mailNote) {
cmd.mail_note = mailNote;
}
console.log("Sende mail to " + beo); console.log("Sende mail to " + beo);
doAjaxCall_arr(ajaxURL,cmd,showajaxerg); doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
console.log("Mail gesendet"); console.log("Mail gesendet");
@@ -786,8 +810,44 @@ $(document).ready(function() {
], ],
}); });
// 3. Dialog für optionale Mail-Bemerkung
$('#div_mailnote').dialog({
autoOpen: false,
width: 600,
modal: true,
title: 'Zusätzliche Bemerkung für E-Mail',
buttons: [
{
text: 'Ohne Bemerkung senden',
class: 'btnOK ui-button-left',
click: function() {
var data = $('#div_mailnote').data();
$(this).dialog('close');
sendStatusMails(data.status, data.id, data.marb, data.termin, '');
}
},
{
text: 'Mit Bemerkung senden',
class: 'btnOK ui-button-left',
click: function() {
var data = $('#div_mailnote').data();
var note = $('#mailnote_text').val().trim();
$(this).dialog('close');
sendStatusMails(data.status, data.id, data.marb, data.termin, note);
}
},
{
text: 'Abbrechen',
click: function() {
$(this).dialog('close');
location.reload(true);
}
}
]
});
// 3. Dialog für die Anleitung // 4. Dialog für die Anleitung
// Dieser hat KEINEN Button (wird über das Schließkreuz beendet) und // Dieser hat KEINEN Button (wird über das Schließkreuz beendet) und
// eine etwas kleinere Schrift // eine etwas kleinere Schrift
$("#anleitung").dialog({ $("#anleitung").dialog({
@@ -812,7 +872,7 @@ $(document).ready(function() {
}); });
// 4. Dialog für die Wartungs-Meldung // 5. Dialog für die Wartungs-Meldung
// Wird nur aufgerufen, wenn das Flag WARTUNG gesetzt ist // Wird nur aufgerufen, wenn das Flag WARTUNG gesetzt ist
// Kann NICHT beendet werden // Kann NICHT beendet werden
$('#maint').dialog({ $('#maint').dialog({

View File

@@ -1,11 +1,16 @@
// VersiosNummern und -Geschichte // VersiosNummern und -Geschichte
var VERSION="1.95"; var VERSION="2.0.0";
var VDATE="2026-01-19"; var VDATE="2026-03-17";
/* History /* History
Rev. Datum Entwickler Rev. Datum Entwickler
2.0.0 2026-03-17
- Semantische Versionierung eiungeführt
- Vor dem Senden der Mail bei 'offen' und 'zugesagt' erscheint ein Popup,
in welches man einen Text eingeben kann, der in der Mail mit gesendet wird.
1.95 2026-01-19 1.95 2026-01-19
- Eintrag in den Kalender auch bei 'offen' - Eintrag in den Kalender auch bei 'offen'

View File

@@ -66,6 +66,10 @@ if ((isset($_GET['fuehrung'])) && ($_GET['fuehrung'] == "TFC7364gf:l@vtr")) {
<div id="div_loesch"> <div id="div_loesch">
<p>Diesen Eintrag wirklich aus der Datenbank löschen ?</p> <p>Diesen Eintrag wirklich aus der Datenbank löschen ?</p>
</div> </div>
<div id="div_mailnote" style="display:none;">
<p>Optional: Zusätzliche Bemerkung für die ausgehende E-Mail.</p>
<textarea id="mailnote_text" rows="6" style="width:98%;"></textarea>
</div>
<div id="anleitung"></div> <div id="anleitung"></div>
<div id="maint"></div> <div id="maint"></div>