Spanisch Deutsch eingefügt Admin_userr,Umsatzübersicht, Seriennummer
This commit is contained in:
parent
7e5896bc90
commit
114f429429
@ -4,7 +4,29 @@
|
||||
"cancel": "Abbrechen",
|
||||
"search": "Suchen",
|
||||
"reset": "Reset",
|
||||
"dashboard": "Dashboard"
|
||||
"dashboard": "Dashboard",
|
||||
"logout": "Logout",
|
||||
"title":"Titel",
|
||||
"firstname":"Vorname",
|
||||
"lastname":"Nachname",
|
||||
"username":"Username",
|
||||
"role":"Rolle",
|
||||
"action":"Aktionen",
|
||||
"status":"Status",
|
||||
"you":"Du Selbst",
|
||||
"newuser":"Neuer benutzer",
|
||||
"inactive":"inaktive",
|
||||
"active":"aktive",
|
||||
"closed":"gesperrt",
|
||||
"filter":"Filtern",
|
||||
"yearcash":"Jahresumsatz",
|
||||
"monthcash":"Monatsumsatz",
|
||||
"quartalcash":"Quartalsumsatz",
|
||||
"year":"Jahr",
|
||||
"nodata":"keine Daten",
|
||||
"month":"Monat",
|
||||
"patientcash":"Umsatz pro Patient",
|
||||
"patient":"Patient"
|
||||
},
|
||||
"sidebar": {
|
||||
"patients": "Patienten",
|
||||
@ -19,8 +41,40 @@
|
||||
"waitingRoom": "Wartezimmer-Monitor",
|
||||
"noWaitingPatients": "Keine Patienten im Wartezimmer."
|
||||
},
|
||||
|
||||
"adminSidebar": {
|
||||
"users": "Userverwaltung",
|
||||
"database": "Datenbankverwaltung"
|
||||
"database": "Datenbankverwaltung",
|
||||
"user":"Benutzer",
|
||||
"invocieoverview":"Rechnungsübersicht",
|
||||
"seriennumber":"Seriennummer",
|
||||
"databasetable":"Datenbank"
|
||||
},
|
||||
|
||||
"adminuseroverview": {
|
||||
"useroverview": "Benutzerübersicht",
|
||||
"usermanagement": "Benutzer Verwaltung",
|
||||
"user":"Benutzer",
|
||||
"invocieoverview":"Rechnungsübersicht",
|
||||
"seriennumber":"Seriennummer",
|
||||
"databasetable":"Datenbank"
|
||||
},
|
||||
|
||||
"seriennumber": {
|
||||
"seriennumbertitle": "Seriennummer eingeben",
|
||||
"seriennumbertext": "Bitte gib deine Lizenz-Seriennummer ein um die Software dauerhaft freizuschalten.",
|
||||
"seriennumbershort":"Seriennummer (AAAAA-AAAAA-AAAAA-AAAAA)",
|
||||
"seriennumberdeclaration":"Nur Buchstaben + Zahlen. Format: 4×5 Zeichen, getrennt mit „-“. ",
|
||||
"saveseriennumber":"Seriennummer Speichern"
|
||||
},
|
||||
|
||||
"databaseoverview": {
|
||||
"title": "Datenbank Konfiguration",
|
||||
"text":"Hier kannst du die DB-Verbindung testen und speichern. ",
|
||||
"host": "Host",
|
||||
"port":"Port",
|
||||
"database":"Datenbank",
|
||||
"password":"Password",
|
||||
"connectiontest":"Verbindung testen"
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,29 @@
|
||||
"cancel": "Cancelar",
|
||||
"search": "Buscar",
|
||||
"reset": "Resetear",
|
||||
"dashboard": "Panel"
|
||||
"dashboard": "Panel",
|
||||
"logout": "cerrar sesión",
|
||||
"title":"Título",
|
||||
"firstname":"Nombre",
|
||||
"lastname":"apellido",
|
||||
"username":"Nombre de usuario",
|
||||
"role":"desempeñar",
|
||||
"action":"acción",
|
||||
"status":"Estado",
|
||||
"you":"su mismo",
|
||||
"newuser":"Nuevo usuario",
|
||||
"inactive":"inactivo",
|
||||
"active":"activo",
|
||||
"closed":"bloqueado",
|
||||
"filter":"Filtro",
|
||||
"yearcash":"volumen de negocios anual",
|
||||
"monthcash":"volumen de negocios mensual",
|
||||
"quartalcash":"volumen de negocios trimestral",
|
||||
"year":"ano",
|
||||
"nodata":"sin datos",
|
||||
"month":"mes",
|
||||
"patientcash":"Ingresos por paciente",
|
||||
"patient":"paciente"
|
||||
},
|
||||
"sidebar": {
|
||||
"patients": "Pacientes",
|
||||
@ -22,6 +44,37 @@
|
||||
|
||||
"adminSidebar": {
|
||||
"users": "Administración de usuarios",
|
||||
"database": "Administración de base de datos"
|
||||
"database": "Administración de base de datos",
|
||||
"user":"usuario",
|
||||
"invocieoverview":"Resumen de facturas",
|
||||
"seriennumber":"número de serie",
|
||||
"databasetable":"base de datos"
|
||||
},
|
||||
|
||||
"adminuseroverview": {
|
||||
"useroverview": "Resumen de usuarios",
|
||||
"usermanagement": "Administración de usuarios",
|
||||
"user":"usuario",
|
||||
"invocieoverview":"Resumen de facturas",
|
||||
"seriennumber":"número de serie",
|
||||
"databasetable":"base de datos"
|
||||
},
|
||||
|
||||
"seriennumber": {
|
||||
"seriennumbertitle": "Introduce el número de serie",
|
||||
"seriennumbertext": "Introduce el número de serie de tu licencia para activar el software de forma permanente.",
|
||||
"seriennumbershort":"Número de serie (AAAAA-AAAAA-AAAAA-AAAAA)",
|
||||
"seriennumberdeclaration":"Solo letras y números. Formato: 4×5 caracteres, separados por «-». ",
|
||||
"saveseriennumber":"Guardar número de serie"
|
||||
},
|
||||
|
||||
"databaseoverview": {
|
||||
"title": "Configuración de la base de datos",
|
||||
"host": "Host",
|
||||
"port":"Puerto",
|
||||
"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. "
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!-- ✅ Header -->
|
||||
<%- include("../partials/page-header", {
|
||||
user,
|
||||
title: "Rechnungsübersicht",
|
||||
title: t.adminSidebar.invocieoverview,
|
||||
subtitle: "",
|
||||
showUserName: true
|
||||
}) %>
|
||||
@ -33,7 +33,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-auto">
|
||||
<button class="btn btn-outline-secondary">Filtern</button>
|
||||
<button class="btn btn-outline-secondary"><%= t.global.filter %></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@ -43,12 +43,12 @@
|
||||
<!-- JAHRESUMSATZ -->
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header fw-semibold">Jahresumsatz</div>
|
||||
<div class="card-header fw-semibold"><%= t.global.yearcash%></div>
|
||||
<div class="card-body p-0">
|
||||
<table class="table table-sm table-striped mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Jahr</th>
|
||||
<th><%= t.global.year%></th>
|
||||
<th class="text-end">€</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -56,7 +56,7 @@
|
||||
<% if (!yearly || yearly.length === 0) { %>
|
||||
<tr>
|
||||
<td colspan="2" class="text-center text-muted">
|
||||
Keine Daten
|
||||
<%= t.global.nodata%>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
@ -78,12 +78,12 @@
|
||||
<!-- QUARTALSUMSATZ -->
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header fw-semibold">Quartalsumsatz</div>
|
||||
<div class="card-header fw-semibold"><%= t.global.quartalcash%></div>
|
||||
<div class="card-body p-0">
|
||||
<table class="table table-sm table-striped mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Jahr</th>
|
||||
<th><%= t.global.year%></th>
|
||||
<th>Q</th>
|
||||
<th class="text-end">€</th>
|
||||
</tr>
|
||||
@ -92,7 +92,7 @@
|
||||
<% if (!quarterly || quarterly.length === 0) { %>
|
||||
<tr>
|
||||
<td colspan="3" class="text-center text-muted">
|
||||
Keine Daten
|
||||
<%= t.global.nodata%>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
@ -115,12 +115,12 @@
|
||||
<!-- MONATSUMSATZ -->
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header fw-semibold">Monatsumsatz</div>
|
||||
<div class="card-header fw-semibold"><%= t.global.monthcash%></div>
|
||||
<div class="card-body p-0">
|
||||
<table class="table table-sm table-striped mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Monat</th>
|
||||
<th><%= t.global.month%></th>
|
||||
<th class="text-end">€</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -128,7 +128,7 @@
|
||||
<% if (!monthly || monthly.length === 0) { %>
|
||||
<tr>
|
||||
<td colspan="2" class="text-center text-muted">
|
||||
Keine Daten
|
||||
<%= t.global.nodata%>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
@ -150,7 +150,7 @@
|
||||
<!-- UMSATZ PRO PATIENT -->
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header fw-semibold">Umsatz pro Patient</div>
|
||||
<div class="card-header fw-semibold"><%= t.global.patientcash%></div>
|
||||
<div class="card-body p-2">
|
||||
|
||||
<!-- Suche -->
|
||||
@ -166,20 +166,20 @@
|
||||
placeholder="Patient suchen..."
|
||||
/>
|
||||
|
||||
<button class="btn btn-sm btn-outline-primary">Suchen</button>
|
||||
<button class="btn btn-sm btn-outline-primary"><%= t.global.search%></button>
|
||||
|
||||
<a
|
||||
href="/admin/invoices?fromYear=<%= fromYear %>&toYear=<%= toYear %>"
|
||||
class="btn btn-sm btn-outline-secondary"
|
||||
>
|
||||
Reset
|
||||
<%= t.global.reset%>
|
||||
</a>
|
||||
</form>
|
||||
|
||||
<table class="table table-sm table-striped mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Patient</th>
|
||||
<th><%= t.global.patient%></th>
|
||||
<th class="text-end">€</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -187,7 +187,7 @@
|
||||
<% if (!patients || patients.length === 0) { %>
|
||||
<tr>
|
||||
<td colspan="2" class="text-center text-muted">
|
||||
Keine Daten
|
||||
<%= t.global.nodata%>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<!-- ✅ HEADER (wie Dashboard) -->
|
||||
<%- include("../partials/page-header", {
|
||||
user,
|
||||
title: "Datenbankverwaltung",
|
||||
title: t.adminSidebar.database,
|
||||
subtitle: "",
|
||||
showUserName: true,
|
||||
hideDashboardButton: true
|
||||
@ -29,18 +29,18 @@
|
||||
<div class="card-body">
|
||||
|
||||
<h4 class="mb-3">
|
||||
<i class="bi bi-sliders"></i> Datenbank Konfiguration
|
||||
<i class="bi bi-sliders"></i> <%= t.databaseoverview.title%>
|
||||
</h4>
|
||||
|
||||
<p class="text-muted mb-4">
|
||||
Hier kannst du die DB-Verbindung testen und speichern.
|
||||
<%= t.databaseoverview.tittexte%>
|
||||
</p>
|
||||
|
||||
<!-- ✅ TEST + SPEICHERN -->
|
||||
<form method="POST" action="/admin/database/test" class="row g-3 mb-3" autocomplete="off">
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Host / IP</label>
|
||||
<label class="form-label"><%= t.databaseoverview.host%> / IP</label>
|
||||
<input
|
||||
type="text"
|
||||
name="host"
|
||||
@ -52,7 +52,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Port</label>
|
||||
<label class="form-label"><%= t.databaseoverview.port%></label>
|
||||
<input
|
||||
type="number"
|
||||
name="port"
|
||||
@ -64,7 +64,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="form-label">Datenbank</label>
|
||||
<label class="form-label"><%= t.databaseoverview.database%></label>
|
||||
<input
|
||||
type="text"
|
||||
name="name"
|
||||
@ -76,7 +76,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Benutzer</label>
|
||||
<label class="form-label"><%= t.global.user%></label>
|
||||
<input
|
||||
type="text"
|
||||
name="user"
|
||||
@ -88,7 +88,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Passwort</label>
|
||||
<label class="form-label"><%= t.databaseoverview.password%></label>
|
||||
<input
|
||||
type="password"
|
||||
name="password"
|
||||
@ -102,7 +102,7 @@
|
||||
<div class="col-12 d-flex flex-wrap gap-2">
|
||||
|
||||
<button type="submit" class="btn btn-outline-primary">
|
||||
<i class="bi bi-plug"></i> Verbindung testen
|
||||
<i class="bi bi-plug"></i> <%= t.databaseoverview.connectiontest%>
|
||||
</button>
|
||||
|
||||
<button
|
||||
@ -110,7 +110,7 @@
|
||||
class="btn btn-success"
|
||||
formaction="/admin/database"
|
||||
>
|
||||
<i class="bi bi-save"></i> Speichern
|
||||
<i class="bi bi-save"></i> <%= t.global.save%>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<!-- ✅ HEADER -->
|
||||
<%- include("partials/page-header", {
|
||||
user,
|
||||
title: "User Verwaltung",
|
||||
title: t.adminuseroverview.usermanagement,
|
||||
subtitle: "",
|
||||
showUserName: true
|
||||
}) %>
|
||||
@ -20,11 +20,11 @@
|
||||
<div class="card-body">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between mb-3">
|
||||
<h4 class="mb-0">Benutzerübersicht</h4>
|
||||
<h4 class="mb-0"><%= t.adminuseroverview.useroverview %></h4>
|
||||
|
||||
<a href="/admin/create-user" class="btn btn-primary">
|
||||
<i class="bi bi-plus-circle"></i>
|
||||
Neuer Benutzer
|
||||
<%= t.global.newuser %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -34,13 +34,13 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Titel</th>
|
||||
<th>Vorname</th>
|
||||
<th>Nachname</th>
|
||||
<th>Username</th>
|
||||
<th>Rolle</th>
|
||||
<th class="text-center">Status</th>
|
||||
<th>Aktionen</th>
|
||||
<th><%= t.global.title %></th>
|
||||
<th><%= t.global.firstname %></th>
|
||||
<th><%= t.global.lastname %></th>
|
||||
<th><%= t.global.username %></th>
|
||||
<th><%= t.global.role %></th>
|
||||
<th class="text-center"><%= t.global.status %></th>
|
||||
<th><%= t.global.action %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@ -79,11 +79,11 @@
|
||||
|
||||
<td class="text-center">
|
||||
<% if (u.active === 0) { %>
|
||||
<span class="badge bg-secondary">Inaktiv</span>
|
||||
<span class="badge bg-secondary"><%= t.global.inactive %></span>
|
||||
<% } else if (u.lock_until && new Date(u.lock_until) > new Date()) { %>
|
||||
<span class="badge bg-danger">Gesperrt</span>
|
||||
<span class="badge bg-danger"><%= t.global.closed %></span>
|
||||
<% } else { %>
|
||||
<span class="badge bg-success">Aktiv</span>
|
||||
<span class="badge bg-success"><%= t.global.active %></span>
|
||||
<% } %>
|
||||
</td>
|
||||
|
||||
@ -109,7 +109,7 @@
|
||||
</button>
|
||||
</form>
|
||||
<% } else { %>
|
||||
<span class="badge bg-light text-dark border">👤 Du selbst</span>
|
||||
<span class="badge bg-light text-dark border">👤 <%= t.global.you %></span>
|
||||
<% } %>
|
||||
|
||||
</td>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
class="nav-item <%= active === 'users' ? 'active' : '' %> <%= lockClass(isAdmin) %>"
|
||||
title="<%= isAdmin ? '' : 'Nur Admin' %>"
|
||||
>
|
||||
<i class="bi bi-people"></i> Benutzer
|
||||
<i class="bi bi-people"></i> <%= t.adminSidebar.user %>
|
||||
<% if (!isAdmin) { %>
|
||||
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
||||
<% } %>
|
||||
@ -44,7 +44,7 @@
|
||||
class="nav-item <%= active === 'invoice_overview' ? 'active' : '' %> <%= lockClass(isAdmin) %>"
|
||||
title="<%= isAdmin ? '' : 'Nur Admin' %>"
|
||||
>
|
||||
<i class="bi bi-calculator"></i> Rechnungsübersicht
|
||||
<i class="bi bi-calculator"></i> <%= t.adminSidebar.invocieoverview %>
|
||||
<% if (!isAdmin) { %>
|
||||
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
||||
<% } %>
|
||||
@ -57,7 +57,7 @@
|
||||
class="nav-item <%= active === 'serialnumber' ? 'active' : '' %> <%= lockClass(isAdmin) %>"
|
||||
title="<%= isAdmin ? '' : 'Nur Admin' %>"
|
||||
>
|
||||
<i class="bi bi-key"></i> Seriennummer
|
||||
<i class="bi bi-key"></i> <%= t.adminSidebar.seriennumber %>
|
||||
<% if (!isAdmin) { %>
|
||||
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
||||
<% } %>
|
||||
@ -69,7 +69,7 @@
|
||||
class="nav-item <%= active === 'database' ? 'active' : '' %> <%= lockClass(isAdmin) %>"
|
||||
title="<%= isAdmin ? '' : 'Nur Admin' %>"
|
||||
>
|
||||
<i class="bi bi-hdd-stack"></i> Datenbank
|
||||
<i class="bi bi-hdd-stack"></i> <%= t.adminSidebar.databasetable %>
|
||||
<% if (!isAdmin) { %>
|
||||
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
||||
<% } %>
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
class="nav-item <%= active === 'patients' ? 'active' : '' %> <%= lockClass(canDoctorAndStaff) %>"
|
||||
title="<%= canDoctorAndStaff ? '' : 'Nur Arzt + Mitarbeiter' %>"
|
||||
>
|
||||
<i class="bi bi-people"></i> <%= t.sidebar.patients %>
|
||||
<i class="bi bi-people"></i> <%= t.sidebar.patients %>
|
||||
<% if (!canDoctorAndStaff) { %>
|
||||
<span style="margin-left:auto;"><i class="bi bi-lock-fill"></i></span>
|
||||
<% } %>
|
||||
@ -116,7 +116,7 @@
|
||||
|
||||
<!-- ✅ Logout -->
|
||||
<a href="/logout" class="nav-item">
|
||||
<i class="bi bi-box-arrow-right"></i> Logout
|
||||
<i class="bi bi-box-arrow-right"></i> <%= t.sidebar.logout %>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
@ -15,10 +15,10 @@
|
||||
|
||||
<div class="content" style="max-width:650px; margin:30px auto;">
|
||||
|
||||
<h2>🔑 Seriennummer eingeben</h2>
|
||||
<h2>🔑 <%= t.seriennumber.seriennumbertitle %></h2>
|
||||
|
||||
<p style="color:#777;">
|
||||
Bitte gib deine Lizenz-Seriennummer ein um die Software dauerhaft freizuschalten.
|
||||
<%= t.seriennumber.seriennumbertext %>
|
||||
</p>
|
||||
|
||||
<% if (error) { %>
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
<form method="POST" action="/admin/serial-number" style="max-width: 500px;">
|
||||
<div class="form-group">
|
||||
<label>Seriennummer (AAAAA-AAAAA-AAAAA-AAAAA)</label>
|
||||
<label><%= t.seriennumber.seriennumbershort %></label>
|
||||
<input
|
||||
type="text"
|
||||
name="serial_number"
|
||||
@ -42,12 +42,12 @@
|
||||
required
|
||||
/>
|
||||
<small style="color:#777; display:block; margin-top:6px;">
|
||||
Nur Buchstaben + Zahlen. Format: 4×5 Zeichen, getrennt mit „-“.
|
||||
<%= t.seriennumber.seriennumberdeclaration %>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" style="margin-top: 15px;">
|
||||
Seriennummer speichern
|
||||
<%= t.seriennumber.saveseriennumber %>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user