From c6542128f960952ab7545619ad3747f0228083d1 Mon Sep 17 00:00:00 2001 From: Dicken Date: Thu, 28 May 2026 12:20:28 +0200 Subject: [PATCH] Fix: Speicheranzeige Dateien - sinnvolle Werte statt falscher Disk-Info --- backend/src/tools/dateien/routes.js | 16 ++++------------ frontend/src/tools/dateien.jsx | 24 +++++++++++------------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/backend/src/tools/dateien/routes.js b/backend/src/tools/dateien/routes.js index bfd2f43..c1b6205 100644 --- a/backend/src/tools/dateien/routes.js +++ b/backend/src/tools/dateien/routes.js @@ -199,18 +199,10 @@ router.post('/', authenticate, (req, res) => { router.get('/storage', authenticate, (req, res) => { const uid = req.user.id; const used = db.prepare('SELECT COALESCE(SUM(size),0) AS s FROM files WHERE user_id=?').get(uid).s; - const maxMb = parseInt(getSetting('file_max_size_mb') || '50'); - const maxCount = parseInt(getSetting('file_max_count') || '20'); - const max = maxMb * maxCount * 1024 * 1024; - let diskFree = null; - try { - const { execSync } = require('child_process'); - const out = execSync(`df -k "${process.env.UPLOAD_DIR || '/data/uploads'}"`, { timeout:3000 }).toString(); - const line = out.trim().split('\n').pop(); - const parts = line.trim().split(/\s+/); - if (parts[3]) diskFree = parseInt(parts[3]) * 1024; - } catch {} - res.json({ used, max, diskFree }); + const count = db.prepare('SELECT COUNT(*) AS c FROM files WHERE user_id=?').get(uid).c; + const maxSizeMb = parseInt(getSetting('file_max_size_mb') || '50'); + const maxCount = parseInt(getSetting('file_max_count') || '20'); + res.json({ used, count, maxSizeMb, maxCount }); }); router.get('/:id/download', authenticate, async (req, res) => { diff --git a/frontend/src/tools/dateien.jsx b/frontend/src/tools/dateien.jsx index f66b232..c5a709a 100644 --- a/frontend/src/tools/dateien.jsx +++ b/frontend/src/tools/dateien.jsx @@ -280,24 +280,22 @@ export default function Dateien({ toast, mobile }) { {/* ── Speicherplatz ─────────────────────────────────────────────────── */} {storage && ( -
-
- {fmtSize(storage.used)} belegt - {storage.diskFree!=null ? `${fmtSize(storage.diskFree)} frei auf Disk` : ''} +
+
+ {fmtSize(storage.used)} belegt · {storage.count}/{storage.maxCount} Dateien + max. {storage.maxSizeMb} MB pro Datei
-
+
0.85 ? '#ff6b9d' : - storage.used/storage.max > 0.6 ? '#ffe66d' : '#4ecdc4', + height:'100%', borderRadius:3, + width:`${Math.min(100,(storage.count/storage.maxCount)*100)}%`, + background: storage.count/storage.maxCount > 0.85 ? '#ff6b9d' : + storage.count/storage.maxCount > 0.6 ? '#ffe66d' : '#4ecdc4', transition:'width 0.4s', }}/>
-
- Limit: {fmtSize(storage.max)} -
)} {shareItem && {setShareItem(null);load();}} toast={toast}/>}