diff --git a/controllers/companySettings.controller.js b/controllers/companySettings.controller.js index d1b0887..3bc22c7 100644 --- a/controllers/companySettings.controller.js +++ b/controllers/companySettings.controller.js @@ -13,14 +13,27 @@ const safe = (v) => { * GET: Firmendaten anzeigen */ async function getCompanySettings(req, res) { - const [[company]] = await db.promise().query( - "SELECT * FROM company_settings LIMIT 1" - ); + try { + const [[company]] = await db + .promise() + .query("SELECT * FROM company_settings LIMIT 1"); - res.render("admin/company-settings", { - user: req.user, - company: company || {} - }); + res.render("admin/company-settings", { + layout: "layout", // 🔥 wichtig + title: "Firmendaten", // 🔥 DAS FEHLTE + active: "companySettings", // 🔥 Sidebar aktiv + sidebarPartial: "partials/admin-sidebar", + + company: company || {}, + + user: req.session.user, // 🔥 konsistent + lang: req.session.lang || "de" + // t kommt aus res.locals + }); + } catch (err) { + console.error(err); + res.status(500).send("Datenbankfehler"); + } } /** diff --git a/controllers/dashboard.controller.js b/controllers/dashboard.controller.js index ee8df9b..bab83ca 100644 --- a/controllers/dashboard.controller.js +++ b/controllers/dashboard.controller.js @@ -8,9 +8,15 @@ async function showDashboard(req, res) { const waitingPatients = await getWaitingPatients(db); res.render("dashboard", { - + layout: "layout", // 🔥 DAS FEHLTE + + title: "Dashboard", + active: "dashboard", + sidebarPartial: "partials/sidebar", + + waitingPatients, user: req.session.user, - waitingPatients + lang: req.session.lang || "de" }); } catch (err) { console.error(err); diff --git a/locales/de.json b/locales/de.json index 8fb2d82..9be11da 100644 --- a/locales/de.json +++ b/locales/de.json @@ -66,7 +66,8 @@ "dashboard": { "welcome": "Willkommen", "waitingRoom": "Wartezimmer-Monitor", - "noWaitingPatients": "Keine Patienten im Wartezimmer." + "noWaitingPatients": "Keine Patienten im Wartezimmer.", + "title":"Dashboard" }, "adminSidebar": { @@ -75,7 +76,8 @@ "user":"Benutzer", "invocieoverview":"Rechnungsübersicht", "seriennumber":"Seriennummer", - "databasetable":"Datenbank" + "databasetable":"Datenbank", + "companysettings":"Firmendaten" }, "adminuseroverview": { diff --git a/locales/es.json b/locales/es.json index f9b5db4..2062297 100644 --- a/locales/es.json +++ b/locales/es.json @@ -39,7 +39,7 @@ "birthday":"Fecha de nacimiento", "email":"Correo electrónico", "phone":"Teléfono", - "address":"AdreDirecciónsse", + "address":"Dirección", "country":"País", "notice":"Notas", "create":"Creado", @@ -67,7 +67,8 @@ "dashboard": { "welcome": "Bienvenido", "waitingRoom": "Monitor sala de espera", - "noWaitingPatients": "No hay pacientes en la sala de espera." + "noWaitingPatients": "No hay pacientes en la sala de espera.", + "title":"Dashboard" }, "adminSidebar": { @@ -76,7 +77,8 @@ "user":"usuario", "invocieoverview":"Resumen de facturas", "seriennumber":"número de serie", - "databasetable":"base de datos" + "databasetable":"base de datos", + "companysettings":"Datos de la empresa" }, "adminuseroverview": { diff --git a/routes/admin.routes.js b/routes/admin.routes.js index 442b1cb..b152c6f 100644 --- a/routes/admin.routes.js +++ b/routes/admin.routes.js @@ -6,6 +6,7 @@ const path = require("path"); const { exec } = require("child_process"); const multer = require("multer"); const { NodeSSH } = require("node-ssh"); +const uploadLogo = require("../middleware/uploadLogo"); // ✅ Upload Ordner für Restore Dumps @@ -31,6 +32,13 @@ const { loadConfig, saveConfig } = require("../config-manager"); // ✅ DB (für resetPool) const db = require("../db"); +// ✅ Firmendaten +const { + getCompanySettings, + saveCompanySettings +} = require("../controllers/companySettings.controller"); + + /* ========================== ✅ VERWALTUNG (NUR ADMIN) ========================== */ @@ -485,4 +493,20 @@ router.post("/database/restore", requireAdmin, async (req, res) => { ========================== */ router.get("/invoices", requireAdmin, showInvoiceOverview); +/* ========================== + ✅ Firmendaten +========================== */ +router.get( + "/company-settings", + requireAdmin, + getCompanySettings +); + +router.post( + "/company-settings", + requireAdmin, + uploadLogo.single("logo"), + saveCompanySettings +); + module.exports = router; diff --git a/routes/companySettings.routes.js b/routes/companySettings.routes.js index 1d36b6a..0d7aae3 100644 --- a/routes/companySettings.routes.js +++ b/routes/companySettings.routes.js @@ -1,19 +1,21 @@ const express = require("express"); const router = express.Router(); -const { requireArzt } = require("../middleware/auth.middleware"); +const { requireAdmin } = require("../middleware/auth.middleware"); const uploadLogo = require("../middleware/uploadLogo"); const { getCompanySettings, saveCompanySettings, } = require("../controllers/companySettings.controller"); -router.get("/admin/company-settings", requireArzt, getCompanySettings); +// ✅ NUR der relative Pfad +router.get("/company-settings", requireAdmin, getCompanySettings); router.post( - "/admin/company-settings", - requireArzt, - uploadLogo.single("logo"), // 🔑 MUSS VOR DEM CONTROLLER KOMMEN - saveCompanySettings, + "/company-settings", + requireAdmin, + uploadLogo.single("logo"), + saveCompanySettings ); module.exports = router; + diff --git a/views/admin/company-settings.ejs b/views/admin/company-settings.ejs index 57c9394..f252a13 100644 --- a/views/admin/company-settings.ejs +++ b/views/admin/company-settings.ejs @@ -1,132 +1,196 @@ - - -
- -