yxcyxc
All checks were successful
Deploy / deploy (push) Successful in 1m3s

This commit is contained in:
2026-08-03 23:27:35 +02:00
parent faf614010d
commit fc34e87622
17 changed files with 326 additions and 294 deletions

View File

@@ -203,7 +203,7 @@ $sectionLinks = [
<section class="account-panel" id="events">
<div class="account-panel__head">
<h2>Deine Events</h2>
<p class="muted">Erstelle, bearbeite und verwalte deine eigenen Events und finde passende Termine fuer gemeinsame Treffen.</p>
<p class="muted">Erstelle, bearbeite und verwalte deine eigenen Events und finde passende Termine für gemeinsame Treffen.</p>
</div>
<div class="account-panel__body">
<div class="flex gap-12" style="margin:0 0 16px 0; flex-wrap: wrap;">
@@ -509,7 +509,7 @@ $sectionLinks = [
<input type="hidden" id="pRegion" name="region" value="<?= htmlspecialchars((string)($profile['region'] ?? ''), ENT_QUOTES) ?>">
<input type="hidden" id="pLat" name="lat" value="<?= htmlspecialchars((string)($profile['lat'] ?? ''), ENT_QUOTES) ?>">
<input type="hidden" id="pLng" name="lng" value="<?= htmlspecialchars((string)($profile['lng'] ?? ''), ENT_QUOTES) ?>">
<p class="muted small" style="margin:0;">Persoenliche Angaben werden app-seitig verschluesselt gespeichert. Nur fuer Login und Kontofunktionen wird die E-Mail intern ueber einen separaten Lookup-Hash adressiert.</p>
<p class="muted small" style="margin:0;">Persönliche Angaben werden app-seitig verschlüsselt gespeichert. Nur für Login und Kontofunktionen wird die E-Mail intern über einen separaten Lookup-Hash adressiert.</p>
<details class="profile-edit-section" open>
<summary>Basisdaten</summary>
<div class="profile-edit-section__body">
@@ -571,11 +571,11 @@ $sectionLinks = [
<div id="profileAddressStatus" class="muted small" style="margin:0;"></div>
<div id="profileAddressSelectedLabel" class="muted small" style="margin:0;<?= empty($profile['street']) && empty($profile['city']) ? ' display:none;' : '' ?>">
<?php if (!empty($profile['street']) || !empty($profile['city'])): ?>
Gewaehlte Adresse: <?= htmlspecialchars(trim(implode(', ', array_filter([(string)($profile['street'] ?? ''), trim((string)$profile['zip'] . ' ' . (string)$profile['city']), (string)($profile['region'] ?? '')]))), ENT_QUOTES) ?>
Gewählte Adresse: <?= htmlspecialchars(trim(implode(', ', array_filter([(string)($profile['street'] ?? ''), trim((string)$profile['zip'] . ' ' . (string)$profile['city']), (string)($profile['region'] ?? '')]))), ENT_QUOTES) ?>
<?php endif; ?>
</div>
<div id="profileAddressNeedsValidation" class="muted small" style="margin:0; display:none;">
Die Adresse wurde manuell geaendert. Vor dem Speichern bitte erneut suchen oder die Browser-Adresse uebernehmen.
Die Adresse wurde manuell geändert. Vor dem Speichern bitte erneut suchen oder die Browser-Adresse übernehmen.
</div>
</div>
</details>
@@ -596,7 +596,7 @@ $sectionLinks = [
</label>
<?php endforeach; ?>
</div>
<label class="label" for="pLangCustom">Weitere Sprachen (Kommagetrennt)</label>
<label class="label" for="pLangCustom">Weitere Sprachen (kommagetrennt)</label>
<input id="pLangCustom" name="languages[]" class="input" placeholder="z. B. Italienisch, Niederländisch">
</div>
<div class="stack gap-6">
@@ -630,8 +630,8 @@ $sectionLinks = [
</div>
<div class="stack gap-12">
<p class="muted" style="margin:0;">Deine Adresse hilft uns, dir passende Events, Termine und Treffen in deiner Umgebung gezielter anzuzeigen.</p>
<p class="muted" style="margin:0;">Wenn keine Adresse hinterlegt ist, koennen wir lokale Bedarfe und passende Angebote deutlich schlechter einschaetzen.</p>
<p class="muted small" style="margin:0;">Die Adresse wird nur fuer diese Plattform-Funktionen genutzt. Strasse und Hausnummer werden verschluesselt gespeichert.</p>
<p class="muted" style="margin:0;">Wenn keine Adresse hinterlegt ist, können wir lokale Bedarfe und passende Angebote deutlich schlechter einschätzen.</p>
<p class="muted small" style="margin:0;">Die Adresse wird nur für diese Plattform-Funktionen genutzt. Straße und Hausnummer werden verschlüsselt gespeichert.</p>
<div class="flex gap-12">
<button class="btn" type="button" data-modal-close>Verstanden</button>
</div>
@@ -646,7 +646,7 @@ $sectionLinks = [
<button class="btn ghost" type="button" data-modal-close>✕</button>
</div>
<div class="stack gap-12">
<p class="muted small" style="margin:0;">Waehle den passenden Treffer fuer dein Profil.</p>
<p class="muted small" style="margin:0;">Wähle den passenden Treffer für dein Profil.</p>
<div id="profileAddressResults" class="stack gap-12"></div>
<div class="flex gap-12">
<button class="btn ghost" type="button" data-modal-close>Abbrechen</button>
@@ -689,7 +689,7 @@ $sectionLinks = [
<div class="stack gap-6">
<label class="label" for="cAge">Alter (Jahre)</label>
<input id="cAge" name="age_years" class="input" type="number" min="0" max="18" value="<?= htmlspecialchars((string)($editChild['age_years'] ?? ''), ENT_QUOTES) ?>">
<p class="muted small" style="margin:0;">Mit Geburtsdatum wird das Alter automatisch berechnet und jaehrlich aktualisiert. Ohne Geburtsdatum gilt der manuelle Wert.</p>
<p class="muted small" style="margin:0;">Mit Geburtsdatum wird das Alter automatisch berechnet und jährlich aktualisiert. Ohne Geburtsdatum gilt der manuelle Wert.</p>
</div>
</div>
<div class="stack gap-6">
@@ -1044,7 +1044,7 @@ $sectionLinks = [
profileAddressSelectedLabel.style.display = 'none';
return;
}
profileAddressSelectedLabel.textContent = `Gewaehlte Adresse: ${label}`;
profileAddressSelectedLabel.textContent = `Gewählte Adresse: ${label}`;
profileAddressSelectedLabel.style.display = '';
};
@@ -1084,13 +1084,13 @@ $sectionLinks = [
renderSelectedAddress(normalized.label || [normalized.street, `${normalized.zip} ${normalized.city}`.trim(), normalized.region].filter(Boolean).join(', '));
setNeedsValidation(false);
setProfileStatus('Adresse uebernommen.');
setProfileStatus('Adresse übernommen.');
};
const openProfileResultsModal = (results) => {
if (!profileAddressResults || !profileAddressResultsModal) return;
profileAddressResults.innerHTML = '';
setProfileStatus('Bitte waehle den passenden Adress-Treffer aus.');
setProfileStatus('Bitte wähle den passenden Adress-Treffer aus.');
results.forEach((result) => {
const normalized = normalizeResult(result);
@@ -1158,7 +1158,7 @@ $sectionLinks = [
return;
}
if (!navigator.geolocation) {
alert('Dieser Browser unterstuetzt keine Geolokalisierung.');
alert('Dieser Browser unterstützt keine Geolokalisierung.');
return;
}
@@ -1168,7 +1168,7 @@ $sectionLinks = [
const lng = position.coords.longitude;
reverseGeocodeProfileAddress(lat, lng, (result) => {
applyProfileAddress(result);
setProfileStatus('Adresse aus dem Browser-Standort uebernommen.');
setProfileStatus('Adresse aus dem Browser-Standort übernommen.');
});
}, () => {
setProfileStatus('');