diff --git a/backend/src/tools/kalkulator3d/routes.js b/backend/src/tools/kalkulator3d/routes.js index 1466324..fc6eb1f 100644 --- a/backend/src/tools/kalkulator3d/routes.js +++ b/backend/src/tools/kalkulator3d/routes.js @@ -5,7 +5,27 @@ const { authenticate } = require('../../middleware/auth'); const router = express.Router(); router.get('/', authenticate, (req, res) => { - res.json(db.prepare('SELECT * FROM calculations WHERE user_id=? ORDER BY created_at DESC').all(req.user.id)); + const uid = req.user.id; + const items = db.prepare('SELECT * FROM calculations WHERE user_id=? ORDER BY created_at DESC').all(uid); + + // Prüfen welche Modelle Dateien haben: Unterordner von "3D-Modelle" mit Dateien + const baseFolder = db.prepare( + "SELECT id FROM folders WHERE user_id=? AND name='3D-Modelle' AND parent_id IS NULL" + ).get(uid); + + let filesMap = {}; + if (baseFolder) { + const rows = db.prepare(` + SELECT f.name, COUNT(fi.id) AS cnt + FROM folders f + LEFT JOIN files fi ON fi.folder_id = f.id + WHERE f.parent_id = ? AND f.user_id = ? + GROUP BY f.id + `).all(baseFolder.id, uid); + for (const r of rows) filesMap[r.name] = r.cnt > 0; + } + + res.json(items.map(i => ({ ...i, has_files: !!filesMap[i.name] }))); }); router.post('/', authenticate, (req, res) => { diff --git a/frontend/src/tools/bestellungen.jsx b/frontend/src/tools/bestellungen.jsx index 50f1aec..13c1d0a 100644 --- a/frontend/src/tools/bestellungen.jsx +++ b/frontend/src/tools/bestellungen.jsx @@ -375,15 +375,25 @@ function BestellungDetail({ id, toast, onBack }) {