From b91b742dd8a74df8b786318411451be1fd88451f Mon Sep 17 00:00:00 2001 From: Dicken Date: Fri, 29 May 2026 09:59:12 +0200 Subject: [PATCH] Changelog: build_time fix im Eintrag gespeichert statt dynamisch --- backend/src/db.js | 5 +++++ backend/src/routes/dashboard.js | 6 +++--- frontend/src/App.jsx | 7 +++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/backend/src/db.js b/backend/src/db.js index ee398a5..7fcb899 100644 --- a/backend/src/db.js +++ b/backend/src/db.js @@ -332,10 +332,15 @@ if (!db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='cha version TEXT NOT NULL, title TEXT NOT NULL, body TEXT NOT NULL DEFAULT '', + build_time TEXT DEFAULT NULL, created_at DATETIME DEFAULT NULL ) `); } +// Migration: build_time Spalte +const clCols = db.prepare("PRAGMA table_info(changelog)").all().map(r => r.name); +if (clCols.length && !clCols.includes('build_time')) + db.exec("ALTER TABLE changelog ADD COLUMN build_time TEXT DEFAULT NULL"); // ── Push-Zeitplaner ─────────────────────────────────────────────────────────── if (!db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='push_schedules'").get()) { diff --git a/backend/src/routes/dashboard.js b/backend/src/routes/dashboard.js index 59d40ff..fa97a1a 100644 --- a/backend/src/routes/dashboard.js +++ b/backend/src/routes/dashboard.js @@ -212,10 +212,10 @@ router.get('/changelog', authenticate, (req, res) => { }); router.post('/changelog', authenticate, requireAdmin, (req, res) => { - const { version, title, body } = req.body; + const { version, title, body, build_time } = req.body; if (!version?.trim() || !title?.trim()) return res.status(400).json({ error: 'Version und Titel erforderlich' }); - const r = db.prepare(`INSERT INTO changelog (version, title, body, created_at) VALUES (?,?,?,datetime('now','localtime'))`) - .run(version.trim(), title.trim(), body?.trim() || ''); + const r = db.prepare(`INSERT INTO changelog (version, title, body, build_time, created_at) VALUES (?,?,?,?,datetime('now','localtime'))`) + .run(version.trim(), title.trim(), body?.trim() || '', build_time || null); res.json(db.prepare('SELECT * FROM changelog WHERE id=?').get(r.lastInsertRowid)); }); diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 7c16040..6bbd37c 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1187,7 +1187,10 @@ function ChangelogModal({ user, toast, onClose }) { if (!form.version.trim() || !form.title.trim()) { toast('Version und Titel erforderlich','error'); return; } setBusy(true); try { - const r = await api('/dashboard/changelog',{body:form}); + const r = await api('/dashboard/changelog',{body:{ + ...form, + build_time: typeof __BUILD_TIME__ !== 'undefined' ? __BUILD_TIME__ : null, + }}); setEntries(p=>[r,...p]); setForm({version:'',title:'',body:''}); toast('Eintrag hinzugefügt ✓'); @@ -1259,7 +1262,7 @@ function ChangelogModal({ user, toast, onClose }) {
- {typeof __BUILD_TIME__ !== 'undefined' && __BUILD_TIME__ ? __BUILD_TIME__ : fmtDate(e.created_at)} + {e.build_time || fmtDate(e.created_at)} {isAdmin && (