107 lines
3.1 KiB
Plaintext
107 lines
3.1 KiB
Plaintext
<!DOCTYPE html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>Dashboard</title>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<link rel="stylesheet" href="/css/bootstrap.min.css">
|
||
<link rel="stylesheet" href="/css/style.css">
|
||
</head>
|
||
<body class="bg-light">
|
||
|
||
<nav class="navbar navbar-dark bg-dark px-3">
|
||
<span class="navbar-brand">Dashboard</span>
|
||
<a href="/logout" class="btn btn-outline-light btn-sm">Logout</a>
|
||
</nav>
|
||
|
||
<div class="container-fluid mt-4">
|
||
|
||
<!-- Flash Messages -->
|
||
<%- include("partials/flash") %>
|
||
|
||
<!-- =========================
|
||
OBERER BEREICH
|
||
========================== -->
|
||
<div class="mb-4">
|
||
<h3>Willkommen, <%= user.username %></h3>
|
||
|
||
<div class="d-flex flex-wrap gap-2 mt-3">
|
||
<a href="/waiting-room" class="btn btn-outline-primary">
|
||
🪑 Wartezimmer
|
||
</a>
|
||
|
||
<% if (user.role === 'arzt') { %>
|
||
<a href="/admin/users" class="btn btn-outline-primary">
|
||
👥 Userverwaltung
|
||
</a>
|
||
<% } %>
|
||
|
||
<a href="/patients" class="btn btn-primary">
|
||
Patientenübersicht
|
||
</a>
|
||
|
||
<a href="/medications" class="btn btn-secondary">
|
||
Medikamentenübersicht
|
||
</a>
|
||
|
||
<% if (user.role === 'arzt') { %>
|
||
<a href="/services" class="btn btn-secondary">
|
||
🧾 Leistungen
|
||
</a>
|
||
<% } %>
|
||
|
||
<a href="/services/open"
|
||
class="btn btn-warning">
|
||
🧾 Offene Leistungen
|
||
</a>
|
||
|
||
|
||
<% if (user.role === 'arzt') { %>
|
||
<a href="/services/logs" class="btn btn-outline-secondary">
|
||
📜 Änderungsprotokoll (Services)
|
||
</a>
|
||
<% } %>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- =========================
|
||
UNTERE HÄLFTE – MONITOR
|
||
========================== -->
|
||
<div class="waiting-monitor">
|
||
|
||
<h5 class="mb-3">🪑 Wartezimmer-Monitor</h5>
|
||
|
||
<div class="waiting-grid">
|
||
<%
|
||
const maxSlots = 21; // 3 Reihen × 7 Plätze
|
||
for (let i = 0; i < maxSlots; i++) {
|
||
const p = waitingPatients && waitingPatients[i];
|
||
%>
|
||
|
||
<div class="waiting-slot <%= p ? 'occupied' : 'empty' %>">
|
||
<% if (p) { %>
|
||
<div class="name">
|
||
<%= p.firstname %> <%= p.lastname %>
|
||
</div>
|
||
<div class="birthdate">
|
||
<%= new Date(p.birthdate).toLocaleDateString("de-DE") %>
|
||
</div>
|
||
<% } else { %>
|
||
<div class="placeholder">
|
||
<img src="/images/stuhl.jpg"
|
||
alt="Freier Platz"
|
||
class="chair-icon">
|
||
</div>
|
||
<% } %>
|
||
</div>
|
||
|
||
<% } %>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|