- table-layout: fixed mit definierten Spaltenbreiten (Status 110px, Downloads 280px) - Status-Pill bleibt kompakt (white-space: nowrap, nur Status-Name) - Fehlertext jetzt als eigene Zeile unter dem Pill, max. 3 Zeilen, mit Tooltip - Downloads als 2x2-Grid aus Pill-Buttons (DOCX / Protokoll / Summary / Transkript) - Disabled-Buttons grau und ohne href - HTML-Escape für Titel/Filename/Fehler
64 lines
2.0 KiB
HTML
64 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Voice-Agent — Transkription</title>
|
|
<link rel="stylesheet" href="/static/style.css" />
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>Voice-Agent</h1>
|
|
<p class="sub">Sitzungsaufnahmen automatisch transkribieren und protokollieren</p>
|
|
<div id="mac-status" class="badge">Mac-Backend: prüfe …</div>
|
|
</header>
|
|
|
|
<main>
|
|
<section class="card">
|
|
<h2>Neue Aufnahme hochladen</h2>
|
|
<form id="upload-form">
|
|
<label>
|
|
Sitzungstitel (optional)
|
|
<input type="text" name="title" id="title" placeholder="z. B. Monatsbesprechung 13.05.2026" />
|
|
</label>
|
|
<label>
|
|
Audiodatei (MP3, WAV, M4A, MP4, OGG, FLAC)
|
|
<input type="file" name="audio" id="audio" accept=".mp3,.wav,.m4a,.mp4,.ogg,.flac" required />
|
|
</label>
|
|
<button type="submit" id="submit-btn">Hochladen & verarbeiten</button>
|
|
</form>
|
|
<div id="upload-progress" class="hidden">
|
|
<div class="bar"><div class="bar-fill"></div></div>
|
|
<small class="muted">Upload läuft …</small>
|
|
</div>
|
|
<p id="upload-msg" class="msg"></p>
|
|
</section>
|
|
|
|
<section class="card">
|
|
<h2>Jobs</h2>
|
|
<table id="jobs-table">
|
|
<thead>
|
|
<tr>
|
|
<th class="col-id">#</th>
|
|
<th class="col-title">Titel / Datei</th>
|
|
<th class="col-status">Status</th>
|
|
<th class="col-progress">Fortschritt</th>
|
|
<th class="col-updated">Aktualisiert</th>
|
|
<th class="col-dl">Downloads</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="jobs-body">
|
|
<tr><td colspan="6" class="muted">Noch keine Jobs.</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
</main>
|
|
|
|
<footer>
|
|
<small class="muted">DSGVO-konform, alles lokal verarbeitet.</small>
|
|
</footer>
|
|
|
|
<script src="/static/app.js"></script>
|
|
</body>
|
|
</html>
|