From 8561cffc80be4e13a18af3af8adf58d3a8a3a89a Mon Sep 17 00:00:00 2001 From: rene Date: Fri, 1 May 2026 09:34:12 +0200 Subject: [PATCH 1/5] Fix: page-jobs Section in index.html + SW by-v580 --- backend/static/index.html | 4 ++++ backend/static/js/app.js | 2 +- backend/static/sw.js | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/static/index.html b/backend/static/index.html index 21afd73..310c6da 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -452,6 +452,10 @@
+
+
+
+ diff --git a/backend/static/js/app.js b/backend/static/js/app.js index b75494f..a179d0e 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 = '554'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '580'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.2.1'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; diff --git a/backend/static/sw.js b/backend/static/sw.js index d3afae4..f72df43 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-v577'; +const CACHE_VERSION = 'by-v580'; 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 From d5e408528b0e2bc7b6f9d857433780d416b56910 Mon Sep 17 00:00:00 2001 From: rene Date: Fri, 1 May 2026 09:37:51 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Fix:=20UI.esc=20=E2=86=92=20UI.escape=20in?= =?UTF-8?q?=20jobs.js,=20SW=20by-v581?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/static/js/app.js | 2 +- backend/static/js/pages/jobs.js | 8 +++++--- backend/static/sw.js | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/static/js/app.js b/backend/static/js/app.js index a179d0e..25a949c 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 = '580'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '581'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.2.1'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; diff --git a/backend/static/js/pages/jobs.js b/backend/static/js/pages/jobs.js index 7ad5e68..c8dd539 100644 --- a/backend/static/js/pages/jobs.js +++ b/backend/static/js/pages/jobs.js @@ -7,6 +7,8 @@ window.Page_jobs = (() => { let _container = null; let _appState = null; + const _esc = s => UI.escape(s ?? ''); + async function init(container, appState) { _container = container; _appState = appState; @@ -122,7 +124,7 @@ window.Page_jobs = (() => { ${app.admin_note ? `
${UI.esc(app.admin_note)}
` : ''} + color:var(--c-text-secondary);text-align:left">${_esc(app.admin_note)}` : ''} `; } @@ -139,13 +141,13 @@ window.Page_jobs = (() => {
+ value="${u ? _esc(u.name) : ''}" placeholder="Vorname oder Nickname" required>
+ value="${u ? _esc(u.email || '') : ''}" placeholder="deine@email.de" required>
diff --git a/backend/static/sw.js b/backend/static/sw.js index f72df43..34c48e3 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-v580'; +const CACHE_VERSION = 'by-v581'; 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 From b3bd34c76aa693794dd5ae047f543dbe13cb896a Mon Sep 17 00:00:00 2001 From: rene Date: Fri, 1 May 2026 09:44:51 +0200 Subject: [PATCH 3/5] =?UTF-8?q?UI:=20Phosphor-Icons=20f=C3=BCr=20Jobs,=20F?= =?UTF-8?q?ilme,=20Admin-Bewerbungen=20+=20Jobs-Link=20in=20Entdecken,=20S?= =?UTF-8?q?W=20by-v582?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/static/index.html | 3 +++ backend/static/js/app.js | 2 +- backend/static/js/pages/admin.js | 6 ++++- backend/static/js/pages/jobs.js | 39 ++++++++++++++++++------------- backend/static/js/pages/movies.js | 13 +++++++---- backend/static/sw.js | 2 +- 6 files changed, 42 insertions(+), 23 deletions(-) diff --git a/backend/static/index.html b/backend/static/index.html index 310c6da..7b8b567 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -169,6 +169,9 @@ + @@ -58,8 +60,9 @@ window.Page_jobs = (() => {
-
- 🤖 Luna 14 Tage kostenlos testen +
+ + Luna 14 Tage kostenlos testen

Mit deiner Bewerbung schalten wir dir sofort den vollen Zugang zu Luna frei — @@ -68,7 +71,8 @@ window.Page_jobs = (() => {

${trialStatus?.active ? `
- ✅ Dein Probezugang läuft noch ${trialStatus.remaining_days} Tage
` : ''} + + Dein Probezugang läuft noch ${trialStatus.remaining_days} Tage
` : ''}
@@ -99,7 +103,7 @@ window.Page_jobs = (() => { function _infoRow(icon, label, text) { return `
- ${icon} +
${icon}
${label}
${text}
@@ -109,15 +113,17 @@ window.Page_jobs = (() => { function _renderStatus(app) { const statusMap = { - pending: { icon: '⏳', text: 'Deine Bewerbung ist eingegangen — wir melden uns bald!', color: 'var(--c-text-secondary)' }, - reviewing: { icon: '🔍', text: 'Wir schauen uns deine Bewerbung gerade genauer an.', color: '#0284c7' }, - accepted: { icon: '🎉', text: 'Herzlichen Glückwunsch — du bist dabei!', color: 'var(--c-success)' }, - rejected: { icon: '😔', text: 'Es hat diesmal leider nicht geklappt.', color: 'var(--c-danger)' }, + pending: { icon: 'clock', text: 'Deine Bewerbung ist eingegangen — wir melden uns bald!', color: 'var(--c-text-secondary)' }, + reviewing: { icon: 'magnifying-glass', text: 'Wir schauen uns deine Bewerbung gerade genauer an.', color: '#0284c7' }, + accepted: { icon: 'check-circle', text: 'Herzlichen Glückwunsch — du bist dabei!', color: 'var(--c-success)' }, + rejected: { icon: 'x', text: 'Es hat diesmal leider nicht geklappt.', color: 'var(--c-danger)' }, }; const s = statusMap[app.status] || statusMap.pending; return `
-
${s.icon}
+
+ +
${s.text}
Bewerbung eingereicht: ${app.created_at?.slice(0,10)} @@ -203,8 +209,9 @@ window.Page_jobs = (() => { bekommst du sofort den 14-tägigen Luna-Probezugang.
` : ''} - diff --git a/backend/static/js/pages/movies.js b/backend/static/js/pages/movies.js index 5f872cb..65275d1 100644 --- a/backend/static/js/pages/movies.js +++ b/backend/static/js/pages/movies.js @@ -95,11 +95,11 @@ window.Page_movies = (() => {
- - + +
- +