From 3f70e1f7f912e7c3f44250f7f566e1f75ea6320c Mon Sep 17 00:00:00 2001 From: Cay Date: Wed, 28 Jan 2026 18:02:43 -0100 Subject: [PATCH] =?UTF-8?q?Weitere=20=C3=9Cbersetzung=20deutsch=20Spanisch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/dashboard.controller.js | 1 + controllers/medication.controller.js | 7 +- locales/de.json | 40 ++++- locales/es.json | 41 ++++- mysql-apt-config_0.8.30-1_all.deb | Bin 0 -> 18200 bytes services/auth.service.js | 5 +- views/admin/database.ejs | 16 +- views/dashboard.ejs | 4 +- views/medications.ejs | 243 +++++++++++++-------------- views/partials/admin-sidebar.ejs | 5 + views/partials/page-header.ejs | 2 +- views/patient_edit.ejs | 2 +- views/patients.ejs | 56 +++--- 13 files changed, 252 insertions(+), 170 deletions(-) create mode 100644 mysql-apt-config_0.8.30-1_all.deb diff --git a/controllers/dashboard.controller.js b/controllers/dashboard.controller.js index aef143e..ee8df9b 100644 --- a/controllers/dashboard.controller.js +++ b/controllers/dashboard.controller.js @@ -8,6 +8,7 @@ async function showDashboard(req, res) { const waitingPatients = await getWaitingPatients(db); res.render("dashboard", { + user: req.session.user, waitingPatients }); diff --git a/controllers/medication.controller.js b/controllers/medication.controller.js index 8c844ea..69926ab 100644 --- a/controllers/medication.controller.js +++ b/controllers/medication.controller.js @@ -5,7 +5,7 @@ function listMedications(req, res, next) { const { q, onlyActive } = req.query; let sql = ` - SELECT + SELECT v.id, m.id AS medication_id, m.name AS medication, @@ -44,8 +44,9 @@ function listMedications(req, res, next) { res.render("medications", { title: "Medikamentenübersicht", - sidebarPartial: "partials/sidebar-empty", // ✅ schwarzer Balken links - active: "medications", + + // ✅ IMMER patient-sidebar verwenden + sidebarPartial: "partials/patient-sidebar", rows, query: { q, onlyActive }, diff --git a/locales/de.json b/locales/de.json index 23dc9b1..8fb2d82 100644 --- a/locales/de.json +++ b/locales/de.json @@ -26,7 +26,34 @@ "nodata":"keine Daten", "month":"Monat", "patientcash":"Umsatz pro Patient", - "patient":"Patient" + "patient":"Patient", + "systeminfo":"Systeminformationen", + "table":"Tabelle", + "lines":"Zeilen", + "size":"Grösse", + "errordatabase":"Fehler beim Auslesen der Datenbankinfos:", + "welcome":"Willkommen", + "waitingroomtext":"Wartezimmer-Monitor", + "waitingroomtextnopatient":"Keine Patienten im Wartezimmer.", + "gender":"Geschlecht", + "birthday":"Geburtstag", + "email":"E-Mail", + "phone":"Telefon", + "address":"Adresse", + "country":"Land", + "notice":"Notizen", + "create":"Erstellt", + "change":"Geändert", + "reset2":"Zurücksetzen", + "edit":"Bearbeiten", + "selection":"Auswahl", + "waiting":"Wartet bereits", + "towaitingroom":"Ins Wartezimmer", + "overview":"Übersicht", + "upload":"Hochladen", + "lock":"Sperren", + "unlock":"Enrsperren", + "name":"Name" }, "sidebar": { "patients": "Patienten", @@ -75,6 +102,15 @@ "port":"Port", "database":"Datenbank", "password":"Password", - "connectiontest":"Verbindung testen" + "connectiontest":"Verbindung testen", + "tablecount":"Anzahl Tabellen", + "databasesize":"Datenbankgrösse", + "tableoverview":"Tabellenübersicht" + }, + + "patienteoverview": { + "patienttitle": "Patientenübersicht", + "newpatient":"Neuer Patient", + "nopatientfound":"Keine Patienten gefunden" } } diff --git a/locales/es.json b/locales/es.json index 6fb5da9..f9b5db4 100644 --- a/locales/es.json +++ b/locales/es.json @@ -26,8 +26,36 @@ "nodata":"sin datos", "month":"mes", "patientcash":"Ingresos por paciente", - "patient":"paciente" + "patient":"paciente", + "systeminfo":"Información del sistema", + "table":"tablas", + "lines":"líneas", + "size":"Tamaño", + "errordatabase":"Error al leer la información de la base de datos:", + "welcome":"Bienvenido", + "waitingroomtext":"Monitor de sala de espera", + "waitingroomtextnopatient":"No hay pacientes en la sala de espera.", + "gender":"Sexo", + "birthday":"Fecha de nacimiento", + "email":"Correo electrónico", + "phone":"Teléfono", + "address":"AdreDirecciónsse", + "country":"País", + "notice":"Notas", + "create":"Creado", + "change":"Modificado", + "reset2":"Restablecer", + "edit":"editar", + "selection":"Selección", + "waiting":"Ya está esperando", + "towaitingroom":"A la sala de espera", + "overview":"Resumen", + "upload":"Cargar", + "lock":"bloquear", + "unlock":"desbloquear", + "name":"Nombre" }, + "sidebar": { "patients": "Pacientes", "medications": "Medicamentos", @@ -75,6 +103,15 @@ "database":"Base de datos", "password":"Contraseña", "connectiontest":"Probar conexión", - "text":"Aquí puedes probar y guardar la conexión a la base de datos. " + "text":"Aquí puedes probar y guardar la conexión a la base de datos. ", + "tablecount":"Número de tablas", + "databasesize":"Tamaño de la base de datos", + "tableoverview":"Resumen de tablas" + }, + + "patienteoverview": { + "patienttitle": "Resumen de pacientes", + "newpatient":"Paciente nuevo", + "nopatientfound":"No se han encontrado pacientes." } } diff --git a/mysql-apt-config_0.8.30-1_all.deb b/mysql-apt-config_0.8.30-1_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..083f2568fa6f3b5bea3d909a54dab2276c412985 GIT binary patch literal 18200 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 FSz4J=JmvrZ literal 0 HcmV?d00001 diff --git a/services/auth.service.js b/services/auth.service.js index 43a596b..14a63cc 100644 --- a/services/auth.service.js +++ b/services/auth.service.js @@ -40,7 +40,10 @@ async function loginUser(db, username, password, lockTimeMinutes) { resolve({ id: user.id, username: user.username, - role: user.role + role: user.role, + title: user.title, + firstname: user.first_name, + lastname: user.last_name }); } ); diff --git a/views/admin/database.ejs b/views/admin/database.ejs index 5a5650b..c728073 100644 --- a/views/admin/database.ejs +++ b/views/admin/database.ejs @@ -132,13 +132,13 @@

- Systeminformationen + <%=t.global.systeminfo%>

<% if (typeof systemInfo !== "undefined" && systemInfo && systemInfo.error) { %>
- ❌ Fehler beim Auslesen der Datenbankinfos: + ❌ <%=t.global.errordatabase%>
<%= systemInfo.error %>
@@ -154,14 +154,14 @@
-
Anzahl Tabellen
+
<%=t.databaseoverview.tablecount%>
<%= systemInfo.tableCount %>
-
Datenbankgröße
+
<%=t.databaseoverview.databasesize%>
<%= systemInfo.dbSizeMB %> MB
@@ -170,15 +170,15 @@ <% if (systemInfo.tables && systemInfo.tables.length > 0) { %>
-
Tabellenübersicht
+
<%=t.databaseoverview.tableoverview%>
- - - + + + diff --git a/views/dashboard.ejs b/views/dashboard.ejs index f3cd375..5708ea5 100644 --- a/views/dashboard.ejs +++ b/views/dashboard.ejs @@ -24,7 +24,7 @@ WARTEZIMMER MONITOR ========================= -->
-
🪑 Wartezimmer-Monitor
+
🪑 <%=t.global.waitingroomtext%>
<% if (waitingPatients && waitingPatients.length > 0) { %> @@ -56,7 +56,7 @@ <% }) %> <% } else { %> -
Keine Patienten im Wartezimmer.
+
<%=t.global.waitingroomtextnopatient%>
<% } %>
diff --git a/views/medications.ejs b/views/medications.ejs index 116e47c..9a85617 100644 --- a/views/medications.ejs +++ b/views/medications.ejs @@ -1,141 +1,140 @@ <%- include("partials/page-header", { user, - title: "Medikamentenübersicht", + title: t.patienteoverview.patienttitle, subtitle: "", showUserName: true }) %> -
+
- <%- include("partials/flash") %> + <%- include("partials/flash") %> -
+
-
-
+
+
- -
+ + -
- -
+
+ +
-
- - Reset -
+
+ + Reset +
-
-
- - > - +
+
+ + > + +
+
+ + + + + + ➕ Neues Medikament + + +
+
TabelleZeilenGröße (MB)<%=t.global.table%><%=t.global.lines%><%=t.global.size%> (MB)
+ + + + + + + + + + + + + + <% rows.forEach(r => { %> + + + + + + + + + + + + + + + + + + + <% }) %> + + +
MedikamentDarreichungsformDosierungPackungStatusAktionen
<%= r.medication %><%= r.form %> + + + + + <%= r.active ? "Aktiv" : "Inaktiv" %> + + + + + + + + + +
+ +
+ +
+
- - - - - - ➕ Neues Medikament - - -
- - - - - - - - - - - - - - - <% rows.forEach(r => { %> - - - - - - - - - - - - - - - - - - - <% }) %> - - -
MedikamentDarreichungsformDosierungPackungStatusAktionen
<%= r.medication %><%= r.form %> - - - - - <%= r.active ? "Aktiv" : "Inaktiv" %> - - - - - - - - - -
- -
- -
- - - - - - + + diff --git a/views/partials/admin-sidebar.ejs b/views/partials/admin-sidebar.ejs index 65ea731..0403678 100644 --- a/views/partials/admin-sidebar.ejs +++ b/views/partials/admin-sidebar.ejs @@ -75,5 +75,10 @@ <% } %> + + + <%= t.sidebar.logout %> + + diff --git a/views/partials/page-header.ejs b/views/partials/page-header.ejs index e2c145e..6e2f99c 100644 --- a/views/partials/page-header.ejs +++ b/views/partials/page-header.ejs @@ -18,7 +18,7 @@
<% if (showUser && user?.username) { %>
- Willkommen, <%= user.username %> + <%=t.global.welcome%>, <%= user.title + " " + user.firstname + " " + user.lastname %>
<% } %> diff --git a/views/patient_edit.ejs b/views/patient_edit.ejs index db00eaf..10bac58 100644 --- a/views/patient_edit.ejs +++ b/views/patient_edit.ejs @@ -1,7 +1,7 @@
- +
diff --git a/views/patients.ejs b/views/patients.ejs index 2c4061a..6cafc55 100644 --- a/views/patients.ejs +++ b/views/patients.ejs @@ -1,6 +1,6 @@ <%- include("partials/page-header", { user, - title: "Patientenübersicht", + title: t.patienteoverview.patienttitle, subtitle: "", showUserName: true }) %> @@ -12,7 +12,7 @@ @@ -26,7 +26,7 @@ type="text" name="firstname" class="form-control" - placeholder="Vorname" + placeholder=<%=t.global.firstname%> value="<%= query?.firstname || '' %>" />
@@ -36,7 +36,7 @@ type="text" name="lastname" class="form-control" - placeholder="Nachname" + placeholder=<%=t.global.lastname%> value="<%= query?.lastname || '' %>" />
@@ -51,9 +51,9 @@
- + - Zurücksetzen + <%=t.global.reset2%>
@@ -65,19 +65,19 @@ ID - Name + <%=t.global.name%> N.I.E. / DNI - Geschlecht - Geburtstag - E-Mail - Telefon - Adresse - Land - Status - Notizen - Erstellt - Geändert - Aktionen + <%=t.global.gender%> + <%=t.global.birthday%> + <%=t.global.email%> + <%=t.global.phone%> + <%=t.global.address%> + <%=t.global.country%> + <%=t.global.status%> + <%=t.global.notice%> + <%=t.global.create%> + <%=t.global.change%> + <%=t.global.action%> @@ -85,7 +85,7 @@ <% if (patients.length === 0) { %> - Keine Patienten gefunden + <%=t.patientoverview.nopatientfound%> <% } %> @@ -161,14 +161,14 @@