Sprint 14: Map-Fixes, City-Prewarm, Dog-Animation, Scan-Flash
Karte: - Frankfurt-Fallback (Zoom 10→14 flyTo) mit _frankfurtTimer-Cancel wenn echter Standort eintrifft - OSM-Tile-Fetch parallelisiert (asyncio.Semaphore(3)) - Bounds-Fix: invalidateSize() + pad(0.15) vor getBounds() - map-pin-slash Icon für gesperrten Standort - Scan-Done-Flash: Statusbar-Pill grün bei 100% - Schnüffelhund: outer div (by-wander X) + inner SVG (by-sniff Y) für natürlichere zweiachsige Bewegung Backend: - City-Prewarm-Job: ~70 deutsche Großstädte beim Start (+90s) und wöchentlich (So 01:00), Fortschritts-Mails alle 5h an ADMIN_EMAIL - ADMIN_EMAIL Env-Var in .env.example dokumentiert Bugfixes: - Profil-Edit: /api/profile → /profile (doppelter Prefix) - Friends: Mobile-Portrait-Layout (flex-wrap, overflow-x:hidden) - Trainingspläne: Pills text-wrap (flex + white-space:normal)
This commit is contained in:
parent
cd3f118113
commit
6fcf841594
10 changed files with 340 additions and 32 deletions
|
|
@ -246,7 +246,7 @@ window.Page_settings = (() => {
|
|||
try {
|
||||
const fd = new FormData();
|
||||
fd.append('file', file);
|
||||
const res = await API.post('/api/profile/avatar', fd);
|
||||
const res = await API.post('/profile/avatar', fd);
|
||||
_appState.user.avatar_url = res.avatar_url;
|
||||
UI.toast.success('Avatar aktualisiert.');
|
||||
_render();
|
||||
|
|
@ -326,7 +326,7 @@ window.Page_settings = (() => {
|
|||
const btn = document.querySelector('[form="profile-form"]');
|
||||
const fd = UI.formData(e.target);
|
||||
await UI.asyncButton(btn, async () => {
|
||||
const updated = await API.patch('/api/profile', {
|
||||
const updated = await API.patch('/profile', {
|
||||
bio: fd.bio || '',
|
||||
wohnort: fd.wohnort || '',
|
||||
erfahrung: fd.erfahrung || '',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue