Merge branch 'SoFue-mit-Vanilla-javascript' into main
This commit is contained in:
@@ -824,10 +824,7 @@ class RepoStatistikJahre
|
|||||||
{
|
{
|
||||||
$sql = "SELECT YEAR(datum) as jahr FROM " . self::TBL . " GROUP BY YEAR(datum) ORDER BY YEAR(datum) DESC";
|
$sql = "SELECT YEAR(datum) as jahr FROM " . self::TBL . " GROUP BY YEAR(datum) ORDER BY YEAR(datum) DESC";
|
||||||
$rows = DB::all($sql);
|
$rows = DB::all($sql);
|
||||||
// return array_map(fn($r) => (int)$r['jahr'], $rows);
|
return array_map(function($r) { return (int)$r['jahr']; }, $rows);
|
||||||
return array_map(function ($r) {
|
|
||||||
return (int)$r['jahr'];
|
|
||||||
}, $rows);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -950,20 +947,9 @@ class Mailer
|
|||||||
require_once __DIR__ . '/phpmailer/dosendmail.php';
|
require_once __DIR__ . '/phpmailer/dosendmail.php';
|
||||||
|
|
||||||
// sanitize lists
|
// sanitize lists
|
||||||
$toList = array_values(array_filter($toList, function ($v) {
|
$toList = array_values(array_filter($toList, function($v) { return is_string($v) && trim($v) !== ''; }));
|
||||||
return is_string($v) && trim($v) !== '';
|
$ccList = array_values(array_filter($ccList, function($v) { return is_string($v) && trim($v) !== ''; }));
|
||||||
}));
|
$bccList = array_values(array_filter($bccList, function($v) { return is_string($v) && trim($v) !== ''; }));
|
||||||
|
|
||||||
$ccList = array_values(array_filter($ccList, function ($v) {
|
|
||||||
return is_string($v) && trim($v) !== '';
|
|
||||||
}));
|
|
||||||
|
|
||||||
$bccList = array_values(array_filter($bccList, function ($v) {
|
|
||||||
return is_string($v) && trim($v) !== '';
|
|
||||||
}));
|
|
||||||
// $toList = array_values(array_filter($toList, fn($v) => is_string($v) && trim($v) !== ''));
|
|
||||||
// $ccList = array_values(array_filter($ccList, fn($v) => is_string($v) && trim($v) !== ''));
|
|
||||||
// $bccList = array_values(array_filter($bccList, fn($v) => is_string($v) && trim($v) !== ''));
|
|
||||||
|
|
||||||
if (empty($toList)) {
|
if (empty($toList)) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1221,26 +1207,91 @@ try {
|
|||||||
case 'SENDMAILZUSAGE':
|
case 'SENDMAILZUSAGE':
|
||||||
$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);
|
||||||
$subject = 'Ihre Sonderführung am ' . date('d.m.Y', strtotime($input['termin']));
|
$ma = RepoBeos::getByName($input['mitarbeiter']);
|
||||||
$body = "Hallo {$info['name']}, Ihre Sonderführung am " . $input['termin'] . " findet mit Mitarbeiter " . $input['mitarbeiter'] . " statt.";
|
$ma_name = $ma['name'];
|
||||||
|
$ma_vorname = $ma['vorname'];
|
||||||
|
$gender = $ma['gender'] == 'm';
|
||||||
|
$ma_mail = $ma['email_1'];
|
||||||
|
$ge1 = $gender ? "unser ehrenamtlicher Mitarbeiter, Herr" : "unsere ehrenamtliche Mitarbeiterin, Frau";
|
||||||
|
$ge2 = $gender ? "ihn" : "sie";
|
||||||
|
$ge3 = $gender ? "Herrn" : "Frau";
|
||||||
|
$dt = date('d.m.Y H:i', strtotime($input['termin']));
|
||||||
|
$subject = 'ZUSAGE - Sternführung am ' . $dt . ' Uhr';
|
||||||
|
$body = "
|
||||||
|
Guten Tag,
|
||||||
|
|
||||||
|
für Ihren Wunschtermin, {$dt} Uhr, hat sich {$ge1} {$ma_vorname} {$ma_name} bereit erklärt,
|
||||||
|
die Sonderführung zu übernehmen. Sie erreichen {$ge2} über die e-mail-Adresse: {$ma_mail}
|
||||||
|
|
||||||
|
Um nähere Besuchsmodalitäten zu klären, bitten wir Sie, mit {$ge3} {$ma_name} Kontakt aufzunehmen.
|
||||||
|
|
||||||
|
Wir bitten Sie, die Spende in Höhe von €50.00 auf unten aufgeführtes Konto zu überweisen oder in bar zur Führung mitzubringen.
|
||||||
|
|
||||||
|
Gesellschaft zur Förderung des Planetariums Stuttgart und der Sternwarte Welzheim e.V.
|
||||||
|
BANKVERBINDUNG: Deutsche Bank AG Stuttgart
|
||||||
|
IBAN DE18 6007 0070 0122 0383 00
|
||||||
|
BIC: DEUTDESSXXX
|
||||||
|
|
||||||
|
|
||||||
|
Mit sternfreundlichen Grüßen
|
||||||
|
Reinhard X. Fürst
|
||||||
|
Sternwarte Welzheim
|
||||||
|
";
|
||||||
$ok = Mailer::sendPlain($info['email'], $subject, $body, 'info@sternwarte-welzheim.de');
|
$ok = Mailer::sendPlain($info['email'], $subject, $body, 'info@sternwarte-welzheim.de');
|
||||||
respond(['success' => $ok]);
|
respond(['success' => $ok]);
|
||||||
|
|
||||||
case 'SENDMAIL2BEO':
|
case 'SENDMAIL2BEO':
|
||||||
$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']));
|
||||||
if (!$mail) respondError('Mitarbeiter nicht gefunden', 404);
|
if (!$mail) respondError('Mitarbeiter nicht gefunden', 404);
|
||||||
$info = RepoSoFue::getByTermin($input['termin']);
|
$info = RepoSoFue::getByTermin($input['termin']);
|
||||||
if (!$info) respondError('Führung nicht gefunden', 404);
|
if (!$info) respondError('Führung nicht gefunden', 404);
|
||||||
$subject = 'Sonderführung am ' . date('d.m.Y', strtotime($input['termin']));
|
$subject = 'Vereinbarte Sonderführung am ' . date('d.m.Y', strtotime($input['termin']));
|
||||||
$body = "Hallo $vor, du hast eine Sonderführung am {$input['termin']}. Teilnehmer: " . ($info['anzahl'] ?? '-');
|
$body = "
|
||||||
$ok = Mailer::sendPlain($mail, $subject, $body, 'info@sternwarte-welzheim.de');
|
Hallo " . $vor .",
|
||||||
|
|
||||||
|
vielen Dank für die Bereitschaft, die Sonderführung am {$dt} zu übernehmen.
|
||||||
|
Bitte den Termin nicht vergessen und bitte ggf. auch das Teammitglied, das die
|
||||||
|
Führung mitmacht, informieren.
|
||||||
|
|
||||||
|
Der Termin wurde in den Sternwartenkalender eingetragen.
|
||||||
|
|
||||||
|
Die Kontaktdaten sind auf der Sonderführungsseite ( https://sternwarte-welzheim.de/intern/sofue/sofue.php ) zu finden.
|
||||||
|
|
||||||
|
Viele Grüße
|
||||||
|
Reinhard
|
||||||
|
|
||||||
|
Diese Meldung wurde automatisch erzeugt. Es kann nicht geantwortet werden.";
|
||||||
|
|
||||||
|
|
||||||
|
$ok = Mailer::sendPlain($mail, $subject, $body, 'rexfue@gmail.com');
|
||||||
respond(['success' => $ok]);
|
respond(['success' => $ok]);
|
||||||
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);
|
||||||
$to = $input['to'] ?? LISTE_EMAIL;
|
$to = $input['to'] ?? LISTE_EMAIL;
|
||||||
$subject = 'Neue Anfrage Sonderführung ' . date('d.m.Y', strtotime($info['wtermin']));
|
$subject = 'Neue Anfrage Sonderführung am ' . date('d.m.Y', strtotime($info['wtermin']));
|
||||||
$body = 'Neue Anfrage: ' . $info['name'] . ' Personen: ' . ($info['anzahl'] ?? '-');
|
$body = "
|
||||||
|
Liebe BEOs,
|
||||||
|
|
||||||
|
wer kann folgende Sonderführung übernehmen?
|
||||||
|
|
||||||
|
Viele Grüße
|
||||||
|
Reinhard
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------";
|
||||||
|
|
||||||
|
$body = $body . "
|
||||||
|
Name, Vorname: " . $info['name'] . " " . $info['vorname'] . "
|
||||||
|
Verein / Organisation : " . $info['verein'] . "
|
||||||
|
Wunsch - Termin: " . $info['wtermin'] . "
|
||||||
|
Teilnehmerzahl ca.: " . $info['anzahl'] . "
|
||||||
|
|
||||||
|
Weitere Fragen oder Mitteilungen:
|
||||||
|
" . $info['mitteilung'] . "
|
||||||
|
Spendenbescheinigung: \t" . $info['spende'] . "
|
||||||
|
---------------------------------------------------------------------------------------------------";
|
||||||
$ok = Mailer::sendPlain($to, $subject, $body);
|
$ok = Mailer::sendPlain($to, $subject, $body);
|
||||||
respond(['success' => $ok]);
|
respond(['success' => $ok]);
|
||||||
|
|
||||||
|
|||||||
21
sternwarte/intern/sofue/js/sofue.js
Executable file → Normal file
21
sternwarte/intern/sofue/js/sofue.js
Executable file → Normal file
@@ -284,6 +284,7 @@ function addEditbox(detail) {
|
|||||||
|
|
||||||
//bei der Eingabe der BEOs eine Autovervollständigung durchführen
|
//bei der Eingabe der BEOs eine Autovervollständigung durchführen
|
||||||
function buildBeosComplete() {
|
function buildBeosComplete() {
|
||||||
|
|
||||||
function split( val ) {
|
function split( val ) {
|
||||||
return val.split( /,\s*/ );
|
return val.split( /,\s*/ );
|
||||||
}
|
}
|
||||||
@@ -291,6 +292,19 @@ function buildBeosComplete() {
|
|||||||
return split( term ).pop();
|
return split( term ).pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Konvertiere beos Array: wenn Objekte, extrahiere die Namen
|
||||||
|
var beosNames = beos.map(function(item) {
|
||||||
|
if (typeof item === 'string') {
|
||||||
|
return item;
|
||||||
|
} else if (item && item.name) {
|
||||||
|
return item.name;
|
||||||
|
} else {
|
||||||
|
return String(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log("buildBeosComplete - Original beos:", beos);
|
||||||
|
console.log("buildBeosComplete - Converted names:", beosNames);
|
||||||
|
|
||||||
$( "#curmar" )
|
$( "#curmar" )
|
||||||
// don't navigate away from the field on tab when selecting an item
|
// don't navigate away from the field on tab when selecting an item
|
||||||
@@ -304,8 +318,11 @@ function buildBeosComplete() {
|
|||||||
minLength: 0,
|
minLength: 0,
|
||||||
source: function( request, response ) {
|
source: function( request, response ) {
|
||||||
// delegate back to autocomplete, but extract the last term
|
// delegate back to autocomplete, but extract the last term
|
||||||
response( $.ui.autocomplete.filter(
|
var term = extractLast( request.term );
|
||||||
beos, extractLast( request.term ) ) );
|
console.log("Searching for:", term);
|
||||||
|
var filtered = $.ui.autocomplete.filter(beosNames, term);
|
||||||
|
console.log("Filtered results:", filtered);
|
||||||
|
response( filtered );
|
||||||
},
|
},
|
||||||
focus: function() {
|
focus: function() {
|
||||||
// prevent value inserted on focus
|
// prevent value inserted on focus
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
// VersiosNummern und -Geschichte
|
// VersiosNummern und -Geschichte
|
||||||
|
|
||||||
var VERSION="1.94";
|
var VERSION="1.94";
|
||||||
var VDATE="2025-12-14";
|
var VDATE="2025-12-23";
|
||||||
|
|
||||||
/* History
|
/* History
|
||||||
|
|
||||||
R1ev. Datum Entwickler
|
Rev. Datum Entwickler
|
||||||
1.94 2025-12-14 rxf
|
1.94 2025-12-22 rxf
|
||||||
|
- Autocomplete repariert
|
||||||
|
|
||||||
|
1.93 2025-12-20 rxf
|
||||||
|
- Texte in DB4js_all angepasst, so dass sie wie im alten sofue.js erscheinen
|
||||||
- DB4js_all.php nun verwenden
|
- DB4js_all.php nun verwenden
|
||||||
- prüfen auf 'termin === null' ich check1900()
|
- prüfen auf 'termin === null' ich check1900()
|
||||||
|
|
||||||
1.93 2025-05-12 rxf
|
|
||||||
- Kalender-Eintrag nun auch mit Beo
|
|
||||||
|
|
||||||
1.92 2024-09-20 rxf
|
1.92 2024-09-20 rxf
|
||||||
- Probleme mit 'Zusgae sende' behoben
|
- Probleme mit 'Zusgae sende' behoben
|
||||||
- auch bei mehreren BEOs geht nun die Mail richtig
|
- auch bei mehreren BEOs geht nun die Mail richtig
|
||||||
|
|||||||
Reference in New Issue
Block a user