ànderung des Dashboardes
This commit is contained in:
parent
961c024252
commit
9b516a48c3
@ -461,7 +461,8 @@ function movePatientToWaitingRoom(req, res) {
|
|||||||
`
|
`
|
||||||
UPDATE patients
|
UPDATE patients
|
||||||
SET waiting_room = 1,
|
SET waiting_room = 1,
|
||||||
discharged = 0
|
discharged = 0,
|
||||||
|
status = 'waiting'
|
||||||
WHERE id = ?
|
WHERE id = ?
|
||||||
`,
|
`,
|
||||||
[patientId],
|
[patientId],
|
||||||
|
|||||||
@ -2,109 +2,247 @@
|
|||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>Dashboard</title>
|
<title>Praxis System</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
<link rel="stylesheet" href="/css/bootstrap.min.css" />
|
<link rel="stylesheet" href="/css/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="/css/style.css" />
|
|
||||||
<link rel="stylesheet" href="/bootstrap-icons/bootstrap-icons.min.css" />
|
<link rel="stylesheet" href="/bootstrap-icons/bootstrap-icons.min.css" />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: #f4f6f9;
|
||||||
|
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
||||||
|
Roboto, Ubuntu;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout {
|
||||||
|
display: flex;
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sidebar */
|
||||||
|
.sidebar {
|
||||||
|
width: 240px;
|
||||||
|
background: #111827;
|
||||||
|
color: white;
|
||||||
|
padding: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
padding: 12px 15px;
|
||||||
|
border-radius: 8px;
|
||||||
|
color: #cbd5e1;
|
||||||
|
text-decoration: none;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item:hover {
|
||||||
|
background: #1f2937;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item.active {
|
||||||
|
background: #2563eb;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .spacer {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Main */
|
||||||
|
.main {
|
||||||
|
flex: 1;
|
||||||
|
padding: 25px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topbar {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topbar h3 {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
flex: 1;
|
||||||
|
padding: 24px;
|
||||||
|
background: #f4f6f9;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-monitor {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(7, 1fr);
|
||||||
|
grid-template-rows: repeat(3, 80px);
|
||||||
|
gap: 12px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-slot {
|
||||||
|
border: 2px dashed #cbd5e1;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f8fafc;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
overflow: hidden; /* 🔥 DAS fehlt */
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-slot.occupied {
|
||||||
|
border-style: solid;
|
||||||
|
background: #eefdf5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-grid {
|
||||||
|
grid-auto-flow: row dense;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chair-icon {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
object-fit: contain;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.patient-text {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px; /* 🔥 Abstand zwischen Name und Datum */
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-slot.clickable {
|
||||||
|
cursor: pointer;
|
||||||
|
transition: 0.15s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.waiting-slot.clickable:hover {
|
||||||
|
transform: scale(1.03);
|
||||||
|
box-shadow: 0 0 0 2px #2563eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="bg-light">
|
|
||||||
<nav class="navbar navbar-dark bg-dark position-relative px-3">
|
<body>
|
||||||
<!-- 🟢 ZENTRIERTER TITEL -->
|
<div class="layout">
|
||||||
<div
|
<!-- SIDEBAR -->
|
||||||
class="position-absolute top-50 start-50 translate-middle d-flex align-items-center gap-2 text-white"
|
<div class="sidebar">
|
||||||
>
|
<div class="logo">🩺 Praxis System</div>
|
||||||
<i class="bi bi-speedometer2 fs-4"></i>
|
|
||||||
<span class="fw-semibold fs-5">Dashboard</span>
|
<a href="/patients" class="nav-item active">
|
||||||
|
<i class="bi bi-people"></i> Patienten
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="/waiting-room" class="nav-item">
|
||||||
|
<i class="bi bi-chair"></i> Wartezimmer
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="/medications" class="nav-item">
|
||||||
|
<i class="bi bi-capsule"></i> Medikamente
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="/services/open" class="nav-item">
|
||||||
|
<i class="bi bi-receipt"></i> Offene Leistungen
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<% if (user.role === 'arzt') { %>
|
||||||
|
<a href="/admin/invoices" class="nav-item">
|
||||||
|
<i class="bi bi-cash-coin"></i> Abrechnung
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="/admin/users" class="nav-item">
|
||||||
|
<i class="bi bi-gear"></i> Verwaltung
|
||||||
|
</a>
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
|
||||||
|
<a href="/logout" class="nav-item">
|
||||||
|
<i class="bi bi-box-arrow-right"></i> Logout
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 🔴 RECHTS: LOGOUT -->
|
<!-- MAIN CONTENT -->
|
||||||
<div class="ms-auto">
|
<div class="main">
|
||||||
<a href="/logout" class="btn btn-outline-light btn-sm"> Logout </a>
|
<div class="topbar">
|
||||||
|
<h3>Willkommen, <%= user.username %></h3>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
|
||||||
|
|
||||||
<div class="container-fluid mt-4">
|
|
||||||
<!-- Flash Messages -->
|
<!-- Flash Messages -->
|
||||||
<%- include("partials/flash") %>
|
<%- include("partials/flash") %>
|
||||||
|
|
||||||
<!-- =========================
|
<!-- =========================
|
||||||
OBERER BEREICH
|
WARTEZIMMER MONITOR (dein Original)
|
||||||
========================== -->
|
|
||||||
<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>
|
|
||||||
<% } %> <% if (user.role === 'arzt') { %>
|
|
||||||
<a href="/admin/company-settings" class="btn btn-outline-dark">
|
|
||||||
🏢 Firmendaten
|
|
||||||
</a>
|
|
||||||
<% } %> <% if (user.role === 'arzt') { %>
|
|
||||||
<a href="/admin/invoices" class="btn btn-outline-success">
|
|
||||||
💶 Abrechnung
|
|
||||||
</a>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- =========================
|
|
||||||
UNTERE HÄLFTE – MONITOR
|
|
||||||
========================== -->
|
========================== -->
|
||||||
<div class="waiting-monitor">
|
<div class="waiting-monitor">
|
||||||
<h5 class="mb-3">🪑 Wartezimmer-Monitor</h5>
|
<h5 class="mb-3">🪑 Wartezimmer-Monitor</h5>
|
||||||
|
|
||||||
<div class="waiting-grid">
|
<div class="waiting-grid">
|
||||||
<% const maxSlots = 21; for (let i = 0; i < maxSlots; i++) { const p =
|
<% const maxSlots = 21;
|
||||||
waitingPatients && waitingPatients[i]; %>
|
for (let i = 0; i < maxSlots; i++) {
|
||||||
|
const p = waitingPatients && waitingPatients[i];
|
||||||
|
%>
|
||||||
|
|
||||||
<div class="waiting-slot <%= p ? 'occupied' : 'empty' %>">
|
|
||||||
<% if (p) { %>
|
<% if (p) { %>
|
||||||
|
<% if (user.role === 'arzt') { %>
|
||||||
|
<a href="/patients/<%= p.id %>/overview" class="waiting-slot occupied clickable">
|
||||||
|
<div class="patient-text">
|
||||||
<div class="name"><%= p.firstname %> <%= p.lastname %></div>
|
<div class="name"><%= p.firstname %> <%= p.lastname %></div>
|
||||||
<div class="birthdate">
|
<div class="birthdate">
|
||||||
<%= new Date(p.birthdate).toLocaleDateString("de-DE") %>
|
<%= new Date(p.birthdate).toLocaleDateString("de-DE") %>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
<div class="placeholder">
|
<div class="waiting-slot occupied">
|
||||||
<img
|
<div class="patient-text">
|
||||||
src="/images/stuhl.jpg"
|
<div class="name"><%= p.firstname %> <%= p.lastname %></div>
|
||||||
alt="Freier Platz"
|
<div class="birthdate">
|
||||||
class="chair-icon"
|
<%= new Date(p.birthdate).toLocaleDateString("de-DE") %>
|
||||||
/>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
||||||
</div>
|
<% } %>
|
||||||
|
|
||||||
<% } %>
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
110
views/dashboard.ejs_ols
Normal file
110
views/dashboard.ejs_ols
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
<!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" />
|
||||||
|
<link rel="stylesheet" href="/bootstrap-icons/bootstrap-icons.min.css" />
|
||||||
|
</head>
|
||||||
|
<body class="bg-light">
|
||||||
|
<nav class="navbar navbar-dark bg-dark position-relative px-3">
|
||||||
|
<!-- 🟢 ZENTRIERTER TITEL -->
|
||||||
|
<div
|
||||||
|
class="position-absolute top-50 start-50 translate-middle d-flex align-items-center gap-2 text-white"
|
||||||
|
>
|
||||||
|
<i class="bi bi-speedometer2 fs-4"></i>
|
||||||
|
<span class="fw-semibold fs-5">Dashboard</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 🔴 RECHTS: LOGOUT -->
|
||||||
|
<div class="ms-auto">
|
||||||
|
<a href="/logout" class="btn btn-outline-light btn-sm"> Logout </a>
|
||||||
|
</div>
|
||||||
|
</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>
|
||||||
|
<% } %> <% if (user.role === 'arzt') { %>
|
||||||
|
<a href="/admin/company-settings" class="btn btn-outline-dark">
|
||||||
|
🏢 Firmendaten
|
||||||
|
</a>
|
||||||
|
<% } %> <% if (user.role === 'arzt') { %>
|
||||||
|
<a href="/admin/invoices" class="btn btn-outline-success">
|
||||||
|
💶 Abrechnung
|
||||||
|
</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; 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>
|
||||||
@ -1,19 +1,18 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8" />
|
||||||
<title>Wartezimmer</title>
|
<title>Wartezimmer</title>
|
||||||
<link rel="stylesheet" href="/css/bootstrap.min.css">
|
<link rel="stylesheet" href="/css/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="/bootstrap-icons/bootstrap-icons.min.css">
|
<link rel="stylesheet" href="/bootstrap-icons/bootstrap-icons.min.css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<nav class="navbar navbar-dark bg-dark position-relative px-3">
|
<nav class="navbar navbar-dark bg-dark position-relative px-3">
|
||||||
|
|
||||||
<!-- 🟢 ZENTRIERTER TITEL -->
|
<!-- 🟢 ZENTRIERTER TITEL -->
|
||||||
<div class="position-absolute top-50 start-50 translate-middle
|
<div
|
||||||
d-flex align-items-center gap-2 text-white">
|
class="position-absolute top-50 start-50 translate-middle d-flex align-items-center gap-2 text-white"
|
||||||
<span style="font-size:1.4rem;">🪑</span>
|
>
|
||||||
|
<span style="font-size: 1.4rem">🪑</span>
|
||||||
<span class="fw-semibold fs-5">Wartezimmer</span>
|
<span class="fw-semibold fs-5">Wartezimmer</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -23,19 +22,12 @@
|
|||||||
⬅️ Dashboard
|
⬅️ Dashboard
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
<div class="container mt-4">
|
<div class="container mt-4">
|
||||||
|
|
||||||
<!-- ✅ EINMAL Flash anzeigen -->
|
<!-- ✅ EINMAL Flash anzeigen -->
|
||||||
<%- include("partials/flash") %>
|
<%- include("partials/flash") %> <% if (patients.length === 0) { %>
|
||||||
|
<div class="alert alert-info">Keine Patienten im Wartezimmer</div>
|
||||||
<% if (patients.length === 0) { %>
|
|
||||||
<div class="alert alert-info">
|
|
||||||
Keine Patienten im Wartezimmer
|
|
||||||
</div>
|
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
|
|
||||||
<table class="table table-bordered table-hover">
|
<table class="table table-bordered table-hover">
|
||||||
@ -47,19 +39,18 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<% patients.forEach(p => { %>
|
<% patients.forEach(p => { %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><strong><%= p.firstname %> <%= p.lastname %></strong></td>
|
<td><strong><%= p.firstname %> <%= p.lastname %></strong></td>
|
||||||
<td><%= new Date(p.birthdate).toLocaleDateString("de-DE") %></td>
|
<td><%= new Date(p.birthdate).toLocaleDateString("de-DE") %></td>
|
||||||
<td>
|
<td>
|
||||||
<% if (user.role === 'arzt') { %>
|
<% if (user.role === 'arzt') { %>
|
||||||
<form method="POST"
|
<form
|
||||||
|
method="POST"
|
||||||
action="patients/waiting-room/call/<%= p.id %>"
|
action="patients/waiting-room/call/<%= p.id %>"
|
||||||
class="d-inline">
|
class="d-inline"
|
||||||
<button class="btn btn-sm btn-success">
|
>
|
||||||
▶️ Aufrufen
|
<button class="btn btn-sm btn-success">▶️ Aufrufen</button>
|
||||||
</button>
|
|
||||||
</form>
|
</form>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
<span class="text-muted">🔒 Nur Arzt</span>
|
<span class="text-muted">🔒 Nur Arzt</span>
|
||||||
@ -67,13 +58,10 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user