diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 95630a0..bfb29f3 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '528'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '530'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.1.1'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; diff --git a/backend/static/js/pages/admin.js b/backend/static/js/pages/admin.js index 106b7c5..61ba198 100644 --- a/backend/static/js/pages/admin.js +++ b/backend/static/js/pages/admin.js @@ -2000,9 +2000,10 @@ window.Page_admin = (() => { is_founder: isFounder, is_partner: isPartner, }); + if (!result) throw new Error('Keine Antwort vom Server.'); UI.toast.success(`Status für ${result.name} gesetzt.`); grantResult.innerHTML = `
✓ Gründer: ${result.is_founder ? 'Ja' : 'Nein'} | Partner: ${result.is_partner ? 'Ja' : 'Nein'}
`; - }); + }).catch(e => UI.toast.error(e.message || 'Fehler beim Speichern.')); }); } diff --git a/backend/static/js/pages/gruender.js b/backend/static/js/pages/gruender.js index e82fc3e..100891e 100644 --- a/backend/static/js/pages/gruender.js +++ b/backend/static/js/pages/gruender.js @@ -39,7 +39,7 @@ window.Page_gruender = (() => { async function _load() { const el = _container.querySelector('#grnd-content'); try { - const d = await API.get('/api/partner/founders/stats'); + const d = await API.get('/partner/founders/stats'); if (!d || typeof d.total === 'undefined') throw new Error('Ungültige Antwort vom Server.'); el.innerHTML = _renderStats(d); } catch (e) { diff --git a/backend/static/js/pages/settings.js b/backend/static/js/pages/settings.js index 7c5c80e..941cf3f 100644 --- a/backend/static/js/pages/settings.js +++ b/backend/static/js/pages/settings.js @@ -1450,7 +1450,7 @@ window.Page_settings = (() => { if (code.length < 3) return; _debounce = setTimeout(async () => { try { - const info = await API.get(`/api/partner/codes/${encodeURIComponent(code)}/info`); + const info = await API.get(`/partner/codes/${encodeURIComponent(code)}/info`); if (info.redeemable) { partnerHint.textContent = info.grants_founder ? `✓ Gültiger Code von "${info.label}" — du erhältst eine lebenslange Gründer-Lizenz!` diff --git a/backend/static/sw.js b/backend/static/sw.js index fe10589..97d2020 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v551'; +const CACHE_VERSION = 'by-v553'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache