GUI: Aufnahmedatum und -uhrzeit im Kopf der Detailansicht
Neuer Helfer recStamp(r) formatiert created_at als "Di., 29.09.2026, 14:23 Uhr" und zeigt die Zeile in der .status-line vor der Analysezeit. Wer aus der Inhaltssuche, einem Projekt-Pin oder per Direktlink in die Detailansicht springt, hat in der linken Liste keine markierte Zeile und sah den Aufnahmezeitpunkt bisher nirgends. Keine Server-/DB-Änderung: /api/recordings/:id liefert created_at bereits mit. Doku: Changelog 2026-09-29 + Notiz in Kapitel 03. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1028,6 +1028,17 @@ function jumpToRecording(id) {
|
|||||||
// ---------- Recordings ----------
|
// ---------- Recordings ----------
|
||||||
// Analysis-duration counter. Shows the total wall time of a processing run
|
// Analysis-duration counter. Shows the total wall time of a processing run
|
||||||
// (transcribe+diar+LLM): a live 1-Hz counter while it runs (from analysis_started_at),
|
// (transcribe+diar+LLM): a live 1-Hz counter while it runs (from analysis_started_at),
|
||||||
|
// Aufnahmedatum + Uhrzeit fuer die Detailansicht: aus der Suche heraus geoeffnet
|
||||||
|
// ist die Aufnahme in der linken Liste nicht markiert, der Zeitpunkt also nirgends sichtbar.
|
||||||
|
function recStamp(r) {
|
||||||
|
if (!r || !r.created_at) return '';
|
||||||
|
const d = new Date(r.created_at);
|
||||||
|
if (isNaN(d)) return '';
|
||||||
|
const day = d.toLocaleDateString('de-DE', { weekday: 'short', day: '2-digit', month: '2-digit', year: 'numeric' });
|
||||||
|
const time = d.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' });
|
||||||
|
return `${day}, ${time} Uhr`;
|
||||||
|
}
|
||||||
|
|
||||||
// frozen to analysis_ms once done. Returns the inner <span> only; callers add the ⏱.
|
// frozen to analysis_ms once done. Returns the inner <span> only; callers add the ⏱.
|
||||||
function anaTimeSpan(r) {
|
function anaTimeSpan(r) {
|
||||||
if (r.analysis_ms != null) return `<span class="ana-time">${fmt(r.analysis_ms)}</span>`;
|
if (r.analysis_ms != null) return `<span class="ana-time">${fmt(r.analysis_ms)}</span>`;
|
||||||
@@ -1374,6 +1385,7 @@ async function openRecording(id) {
|
|||||||
<div class="muted small hidden" id="mp3wait">🎧 Wiedergabe-Datei wird noch erzeugt – lädt automatisch nach…</div>
|
<div class="muted small hidden" id="mp3wait">🎧 Wiedergabe-Datei wird noch erzeugt – lädt automatisch nach…</div>
|
||||||
${vizHtml}
|
${vizHtml}
|
||||||
<div class="status-line">
|
<div class="status-line">
|
||||||
|
${recStamp(r) ? `<div class="muted rec-time">🗓 ${recStamp(r)}</div>` : ''}
|
||||||
${anaTimeSpan(r) ? `<div class="muted ana-line">⏱ Analysezeit: ${anaTimeSpan(r)}</div>` : ''}
|
${anaTimeSpan(r) ? `<div class="muted ana-line">⏱ Analysezeit: ${anaTimeSpan(r)}</div>` : ''}
|
||||||
${transcribing ? '<div class="muted">📝 Transkription läuft… lange Aufnahmen dauern.</div>' : ''}
|
${transcribing ? '<div class="muted">📝 Transkription läuft… lange Aufnahmen dauern.</div>' : ''}
|
||||||
${transcribeFailed ? `<div class="err-inline">Transkription fehlgeschlagen. <button class="btn" id="retranscribe">Neu transkribieren</button></div>` : ''}
|
${transcribeFailed ? `<div class="err-inline">Transkription fehlgeschlagen. <button class="btn" id="retranscribe">Neu transkribieren</button></div>` : ''}
|
||||||
|
|||||||
@@ -81,6 +81,9 @@ stateDiagram-v2
|
|||||||
`analyzeRecording` (LLM lief vorher ungedeckelt auf 95–97 °C, Kap. 05).
|
`analyzeRecording` (LLM lief vorher ungedeckelt auf 95–97 °C, Kap. 05).
|
||||||
- **GUI-Anzeige „⏱ Analysezeit“:** `analysis_started_at`/`analysis_ms` in der DB; beim Polling auf
|
- **GUI-Anzeige „⏱ Analysezeit“:** `analysis_started_at`/`analysis_ms` in der DB; beim Polling auf
|
||||||
`analysis_status` achten, NICHT auf `status` (sonst wirkt die Summary „leer“).
|
`analysis_status` achten, NICHT auf `status` (sonst wirkt die Summary „leer“).
|
||||||
|
- **Kopf der Detailansicht:** `🗓 <Wochentag, Datum, Uhrzeit>` (Helfer `recStamp(r)` aus `created_at`)
|
||||||
|
steht seit 2026-09-29 vor der Analysezeit — aus Suche, Projekt-Pin oder Direktlink heraus ist links keine
|
||||||
|
Listenzeile markiert, der Aufnahmezeitpunkt wäre sonst nirgends sichtbar.
|
||||||
- **GUI-Wartetext bei `transcribing`:** „📝 Transkription läuft… lange Aufnahmen dauern.“
|
- **GUI-Wartetext bei `transcribing`:** „📝 Transkription läuft… lange Aufnahmen dauern.“
|
||||||
(`web/src/main.js:1378`). Seit 2026-09-09 ohne den Klammerzusatz zum Takt-Cap — auf Wunsch des Nutzers;
|
(`web/src/main.js:1378`). Seit 2026-09-09 ohne den Klammerzusatz zum Takt-Cap — auf Wunsch des Nutzers;
|
||||||
das Cap selbst ist unverändert aktiv.
|
das Cap selbst ist unverändert aktiv.
|
||||||
|
|||||||
@@ -3,6 +3,30 @@
|
|||||||
Chronik der Entwicklungsschritte. **Regel: jede zukünftige Änderung bekommt hier einen Eintrag** (Datum,
|
Chronik der Entwicklungsschritte. **Regel: jede zukünftige Änderung bekommt hier einen Eintrag** (Datum,
|
||||||
Was, Warum, betroffene Dateien/Backups).
|
Was, Warum, betroffene Dateien/Backups).
|
||||||
|
|
||||||
|
## 2026-09-29 — Aufnahmezeitpunkt in der Detailansicht
|
||||||
|
|
||||||
|
**Wunsch:** „Wenn man eine Aufzeichnung geöffnet hat, soll neben der Analysezeit auch das Datum und
|
||||||
|
Uhrzeit der Aufzeichnung stehen. Denn wenn man z. B. aus der Suche heraus eine Aufzeichnung öffnet, sieht
|
||||||
|
man links im Menü nicht wann diese aufgenommen wurde, da diese dort nicht ausgewählt wurde.“
|
||||||
|
|
||||||
|
**Warum es fehlte:** der Zeitpunkt stand bisher nur in der linken Aufnahmenliste (Tagesgruppe + Uhrzeit,
|
||||||
|
`main.js:1134/1156`). Wer über die Inhaltssuche (Kap. 09), über einen Projekt-Pin (Kap. 10) oder über einen
|
||||||
|
Direktlink in die Detailansicht springt, hat dort keine markierte Zeile — der Kopf der Detailansicht zeigte
|
||||||
|
Titel, Player und höchstens „⏱ Analysezeit“, aber nie, wann das Gespräch stattfand.
|
||||||
|
|
||||||
|
**Was geändert wurde** (`web/src/main.js`, Backup `main.js.bak-rectime`)
|
||||||
|
|
||||||
|
- Neuer Helfer `recStamp(r)` neben `anaTimeSpan(r)`: formatiert `r.created_at` als
|
||||||
|
`Di., 29.09.2026, 14:23 Uhr` (`toLocaleDateString`/`toLocaleTimeString` mit `de-DE`, Wochentag kurz).
|
||||||
|
Leerer String bei fehlendem oder unparsbarem Datum → die Zeile fällt dann einfach weg.
|
||||||
|
- In der `.status-line` der Detailansicht steht die Zeile **vor** der Analysezeit:
|
||||||
|
`🗓 <Datum, Uhrzeit>` / `⏱ Analysezeit: …`.
|
||||||
|
- Keine Server- oder DB-Änderung nötig: `GET /api/recordings/:id` liefert `created_at` bereits mit.
|
||||||
|
|
||||||
|
**Gegenprobe:** `npx vite build` → Bundle `index-DtL7bqdT.js` (enthält `rec-time`), `curl http://127.0.0.1/`
|
||||||
|
liefert genau dieses Bundle. `md5sum` von `web/src/main.js` auf dem Board und `app/web/src/main.js` im Repo
|
||||||
|
identisch. Kein `systemctl restart` (reiner Frontend-Build).
|
||||||
|
|
||||||
## 2026-09-09 — GUI-Hinweis „A76-Takt gegen Überhitzung gedrosselt“ entfernt
|
## 2026-09-09 — GUI-Hinweis „A76-Takt gegen Überhitzung gedrosselt“ entfernt
|
||||||
|
|
||||||
**Wunsch:** „Kannst du bitte den Hinweis nicht mehr anzeigen lassen“ (Screenshot des Klammerzusatzes
|
**Wunsch:** „Kannst du bitte den Hinweis nicht mehr anzeigen lassen“ (Screenshot des Klammerzusatzes
|
||||||
|
|||||||
Reference in New Issue
Block a user