Release 0.5.11
This commit is contained in:
1 parent
4fe61971e4
commit
c05cea3a6d
7 files changed
+95
-13
No files matched your search
@@ -412,3 +412,21 @@
|
|||||||
- `bash -n start.sh`: erfolgreich
|
- `bash -n start.sh`: erfolgreich
|
||||||
- reale OBS-Browserquelle, echte YouTube-/TikTok-Wiedergabe und Safari auf einem
|
- reale OBS-Browserquelle, echte YouTube-/TikTok-Wiedergabe und Safari auf einem
|
||||||
iOS-Gerät nicht ausgeführt; Anbieterrequests wurden lokal abgefangen
|
iOS-Gerät nicht ausgeführt; Anbieterrequests wurden lokal abgefangen
|
||||||
|
|
||||||
|
## Verwaltungskorrektur 0.5.11
|
||||||
|
|
||||||
|
| Kriterium | Nachweis | Stand |
|
||||||
|
| ------------------------------------------ | ---------------------------------------------------------------------------------------- | --------------------- |
|
||||||
|
| Werkzeugdialog ist initial geschlossen | Chromium prüft den Dialog vor jeder Bedienaktion bei 390 und 1280 Pixeln | erfüllt am 23.10.2026 |
|
||||||
|
| Dialog öffnet nur nach bewusster Aktion | Browser legt ein Werkzeug an und öffnet ein bestehendes Werkzeug anschließend zum Ändern | erfüllt am 23.10.2026 |
|
||||||
|
| Bestehender Werkzeugablauf bleibt erhalten | Browser prüft Icon, Format, Deaktivierung und Piece-Zuordnung nach erneutem Laden | erfüllt am 23.10.2026 |
|
||||||
|
|
||||||
|
## Ausgeführte Prüfungen 0.5.11
|
||||||
|
|
||||||
|
- gezielter Chromium-Test des Werkzeugablaufs: 1 von 1 erfolgreich
|
||||||
|
- `npm run lint`: erfolgreich
|
||||||
|
- `npm run check`: 0 Fehler und 0 Warnungen
|
||||||
|
- `npm test`: 40 Tests in 7 Dateien erfolgreich
|
||||||
|
- `npm run test:e2e`: 16 von 16 Chromium-Browsertests erfolgreich
|
||||||
|
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`
|
||||||
|
- `bash -n start.sh` und `git diff --check`: erfolgreich
|
||||||
+55
-9
@@ -1,12 +1,46 @@
|
|||||||
# Release Notes
|
# Release Notes
|
||||||
|
|
||||||
|
## 0.5.11 - Verwaltungskorrektur
|
||||||
|
|
||||||
|
Veröffentlicht am 23. Oktober 2026
|
||||||
|
|
||||||
|
- Der Dialog „Werkzeug hinzufügen“ bleibt beim Aufruf der Verwaltungsseite
|
||||||
|
wieder zuverlässig geschlossen.
|
||||||
|
- Der Dialog erscheint erst, wenn ein neues Werkzeug angelegt oder ein
|
||||||
|
bestehendes Werkzeug bearbeitet wird.
|
||||||
|
- Die Korrektur gilt gleichermaßen für Desktop- und Smartphone-Ansichten und
|
||||||
|
verändert keine vorhandenen Werkzeuge oder Zuordnungen.
|
||||||
|
|
||||||
## 0.5.10 - Editor-Erlebnis
|
## 0.5.10 - Editor-Erlebnis
|
||||||
|
|
||||||
|
Veröffentlicht am 23. Oktober 2026
|
||||||
|
|
||||||
|
Sendewerk 0.5.10 beschleunigt die tägliche Redaktionsarbeit und schärft die
|
||||||
|
Grenze zwischen privaten Medien und der öffentlichen Präsentation. Titel,
|
||||||
|
Themen, Werkzeuge und Präsentationsbilder lassen sich direkter bearbeiten; die
|
||||||
|
wichtigsten Listen und Dialoge benötigen auf Desktop und Smartphone weniger
|
||||||
|
Platz. Bestehende Sendungsfassungen bleiben bei späteren Änderungen am Fundus
|
||||||
|
stabil.
|
||||||
|
|
||||||
|
### Highlights
|
||||||
|
|
||||||
|
- Titel von Fundus- und Sendungsfassungen lassen sich direkt in der jeweiligen
|
||||||
|
Ansicht ändern. Die Bedienung funktioniert auch vollständig per Tastatur.
|
||||||
|
- Themen und Werkzeuge verwenden kompakte, durchsuchbare Auswahlflächen. Der
|
||||||
|
Werkzeugkatalog folgt nun demselben Bedienmuster wie die Themenverwaltung.
|
||||||
|
- Für Themen, Werkzeuge, Navigation und Aktionen stehen 3.671 lokal
|
||||||
|
bereitgestellte Classic-Regular-Icons zur Verfügung. Zur Laufzeit werden
|
||||||
|
keine Icons von externen Diensten geladen.
|
||||||
|
- Präsentationsbilder werden bewusst aus den aktiven Piece-Medien gewählt und
|
||||||
|
beim Einplanen in die Sendungsfassung übernommen. Private Uploads werden nicht
|
||||||
|
allein durch das Hochladen öffentlich.
|
||||||
|
- Pieces lassen sich wiederherstellbar löschen. Bereits vorbereitete
|
||||||
|
Sendungsfassungen und ihre Medien-Snapshots bleiben dabei erhalten.
|
||||||
|
- Die heinzlive-Ausgabe kann ausdrücklich geleert werden. Im leeren Zustand ist
|
||||||
|
sie vollständig transparent und zeigt auch keinen Verbindungsstatus.
|
||||||
|
|
||||||
### Redaktion und Verwaltung
|
### Redaktion und Verwaltung
|
||||||
|
|
||||||
- Titel von Fundus- und Sendungsfassungen lassen sich direkt und per Tastatur
|
|
||||||
bearbeiten.
|
|
||||||
- Themen und Werkzeuge verwenden gemeinsame kompakte Auswahlflächen.
|
|
||||||
- Der Werkzeugkatalog entspricht der Themenverwaltung: kompakte Glasfläche,
|
- Der Werkzeugkatalog entspricht der Themenverwaltung: kompakte Glasfläche,
|
||||||
Icon, Name, Status und Bearbeitungsaktion statt dauerhaft offener Formulare.
|
Icon, Name, Status und Bearbeitungsaktion statt dauerhaft offener Formulare.
|
||||||
- Anlegen und Bearbeiten eines Werkzeugs verwenden denselben responsiven Dialog
|
- Anlegen und Bearbeiten eines Werkzeugs verwenden denselben responsiven Dialog
|
||||||
@@ -14,9 +48,8 @@
|
|||||||
- Die Formatzuordnung nutzt dieselbe durchsuchbare Mehrfachauswahl wie andere
|
- Die Formatzuordnung nutzt dieselbe durchsuchbare Mehrfachauswahl wie andere
|
||||||
Zuordnungen. Deaktivierte Werkzeuge und bestehende Piece-Zuordnungen bleiben
|
Zuordnungen. Deaktivierte Werkzeuge und bestehende Piece-Zuordnungen bleiben
|
||||||
erhalten.
|
erhalten.
|
||||||
- Alle 3.671 Icons aus Font Awesome Pro Plus 7.0.0 Classic Regular stehen lokal
|
- Fundus, Eingang, Archiv, Vorlagen und Sendungsansichten sind kompakter und
|
||||||
und durchsuchbar zur Verfügung. Ein lokaler SVG-Sprite hält den allgemeinen
|
bleiben per Klick, Touch und Tastatur bedienbar.
|
||||||
Anwendungs-Chunk klein; es gibt keine externe Laufzeitabhängigkeit.
|
|
||||||
|
|
||||||
### Pieces und Präsentation
|
### Pieces und Präsentation
|
||||||
|
|
||||||
@@ -27,8 +60,10 @@
|
|||||||
- Pieces können wiederherstellbar gelöscht werden. Offene, nie live gelaufene
|
- Pieces können wiederherstellbar gelöscht werden. Offene, nie live gelaufene
|
||||||
Verwendungen und Abschnitte lassen sich unter geschützten Bedingungen
|
Verwendungen und Abschnitte lassen sich unter geschützten Bedingungen
|
||||||
entfernen.
|
entfernen.
|
||||||
- Fundus, Eingang, Archiv, Vorlagen und Sendungsansichten sind kompakter und
|
- Themenicons werden zusammen mit der jeweiligen Sendungsfassung gespeichert.
|
||||||
bleiben per Klick, Touch und Tastatur bedienbar.
|
Spätere Änderungen an Thema, Werkzeug oder Original-Piece verändern eine
|
||||||
|
vorbereitete Sendung weiterhin nur nach ausdrücklicher Aktualisierung aus dem
|
||||||
|
Fundus.
|
||||||
|
|
||||||
### Live-Ausgabe
|
### Live-Ausgabe
|
||||||
|
|
||||||
@@ -37,13 +72,18 @@
|
|||||||
- Eine aktive Präsentation lässt sich unabhängig vom aktuell laufenden Piece
|
- Eine aktive Präsentation lässt sich unabhängig vom aktuell laufenden Piece
|
||||||
leeren.
|
leeren.
|
||||||
|
|
||||||
### Datenbank und Kompatibilität
|
### Update und Kompatibilität
|
||||||
|
|
||||||
- `0010_editor_experience.sql` ergänzt Themenicons, Medien-Snapshots und Soft
|
- `0010_editor_experience.sql` ergänzt Themenicons, Medien-Snapshots und Soft
|
||||||
Delete.
|
Delete.
|
||||||
- `0011_tool_icons.sql` ergänzt persistente Werkzeugicons mit einem sicheren
|
- `0011_tool_icons.sql` ergänzt persistente Werkzeugicons mit einem sicheren
|
||||||
Standardwert. Werkzeug-IDs, Formatbeziehungen, Piece-Zuordnungen und
|
Standardwert. Werkzeug-IDs, Formatbeziehungen, Piece-Zuordnungen und
|
||||||
Deaktivierungszustände bleiben erhalten.
|
Deaktivierungszustände bleiben erhalten.
|
||||||
|
- Die Migrationen laufen beim nächsten Serverstart automatisch. Vor dem Update
|
||||||
|
sollte wie üblich eine konsistente Sicherung der SQLite-Datenbank und des
|
||||||
|
Upload-Verzeichnisses angelegt werden.
|
||||||
|
- Für dieses Release sind keine manuellen Datenkonvertierungen und keine
|
||||||
|
Änderungen an der Konfiguration erforderlich.
|
||||||
|
|
||||||
### Prüfung
|
### Prüfung
|
||||||
|
|
||||||
@@ -53,3 +93,9 @@
|
|||||||
verglichen.
|
verglichen.
|
||||||
- Reales OBS, echte YouTube-/TikTok-Wiedergabe und Safari auf einem iOS-Gerät
|
- Reales OBS, echte YouTube-/TikTok-Wiedergabe und Safari auf einem iOS-Gerät
|
||||||
standen nicht zur Verfügung.
|
standen nicht zur Verfügung.
|
||||||
|
|
||||||
|
### Noch nicht enthalten
|
||||||
|
|
||||||
|
Der Abschluss und die Archivierung vollständiger Sendungen, externe
|
||||||
|
Lesefreigaben, RSS-Import und API gehören zu späteren Etappen und sind nicht Teil
|
||||||
|
von 0.5.10.
|
||||||
@@ -7,6 +7,15 @@ Anmeldung, Rollen, persistente Inhaltsbearbeitung, Sendungsplanung,
|
|||||||
Live-Steuerung, Präsentationsausgabe und lokaler Betriebsweg sind dokumentiert.
|
Live-Steuerung, Präsentationsausgabe und lokaler Betriebsweg sind dokumentiert.
|
||||||
Etappe 6 wurde nicht begonnen.
|
Etappe 6 wurde nicht begonnen.
|
||||||
|
|
||||||
|
## Verwaltungskorrektur 0.5.11
|
||||||
|
|
||||||
|
- der Werkzeugdialog bleibt nach dem Laden der Verwaltungsseite geschlossen und
|
||||||
|
wird erst durch „Werkzeug hinzufügen“ oder die Bearbeitung eines vorhandenen
|
||||||
|
Werkzeugs als modaler Dialog eingeblendet
|
||||||
|
- ein Browser-Regressionscheck sichert den geschlossenen Ausgangszustand ab
|
||||||
|
|
||||||
|
Etappe 6 bleibt unverändert unbegonnen.
|
||||||
|
|
||||||
## Editor-Erlebnis 0.5.10
|
## Editor-Erlebnis 0.5.10
|
||||||
|
|
||||||
- direkte, tastaturbedienbare Titelbearbeitung in Fundus- und Sendungsfassungen
|
- direkte, tastaturbedienbare Titelbearbeitung in Fundus- und Sendungsfassungen
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "sendewerk",
|
"name": "sendewerk",
|
||||||
"version": "0.5.10",
|
"version": "0.5.11",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "sendewerk",
|
"name": "sendewerk",
|
||||||
"version": "0.5.10",
|
"version": "0.5.11",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@node-rs/argon2": "^2.2.2",
|
"@node-rs/argon2": "^2.2.2",
|
||||||
"better-sqlite3": "^13.0.3",
|
"better-sqlite3": "^13.0.3",
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "sendewerk",
|
"name": "sendewerk",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.5.10",
|
"version": "0.5.11",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.17 <25"
|
"node": ">=22.17 <25"
|
||||||
|
|||||||
+5
-1
@@ -5859,7 +5859,7 @@ body:has(.heinzlive-output.empty),
|
|||||||
}
|
}
|
||||||
|
|
||||||
.management-dialog {
|
.management-dialog {
|
||||||
display: grid;
|
display: none;
|
||||||
grid-template-rows: auto minmax(0, 1fr);
|
grid-template-rows: auto minmax(0, 1fr);
|
||||||
width: min(40rem, calc(100vw - 2rem));
|
width: min(40rem, calc(100vw - 2rem));
|
||||||
max-height: min(46rem, calc(100dvh - 2rem));
|
max-height: min(46rem, calc(100dvh - 2rem));
|
||||||
@@ -5873,6 +5873,10 @@ body:has(.heinzlive-output.empty),
|
|||||||
backdrop-filter: blur(24px) saturate(1.12);
|
backdrop-filter: blur(24px) saturate(1.12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.management-dialog[open] {
|
||||||
|
display: grid;
|
||||||
|
}
|
||||||
|
|
||||||
.management-dialog::backdrop {
|
.management-dialog::backdrop {
|
||||||
background: rgb(3 8 18 / 46%);
|
background: rgb(3 8 18 / 46%);
|
||||||
backdrop-filter: blur(6px);
|
backdrop-filter: blur(6px);
|
||||||
|
|||||||
@@ -895,6 +895,11 @@ test('inbox, archive and administration stay concise', async ({ page }) => {
|
|||||||
|
|
||||||
test('tools stay editable in pieces after catalog deactivation', async ({ page }, testInfo) => {
|
test('tools stay editable in pieces after catalog deactivation', async ({ page }, testInfo) => {
|
||||||
await page.goto('/verwaltung');
|
await page.goto('/verwaltung');
|
||||||
|
for (const width of [390, 1280]) {
|
||||||
|
await page.setViewportSize({ width, height: 900 });
|
||||||
|
await expect(page.locator('.tool-editor-dialog')).toBeHidden();
|
||||||
|
await expectNoHorizontalOverflow(page);
|
||||||
|
}
|
||||||
await page.getByRole('button', { name: 'Werkzeug hinzufügen' }).click();
|
await page.getByRole('button', { name: 'Werkzeug hinzufügen' }).click();
|
||||||
const create = page.getByRole('dialog', { name: 'Neues Werkzeug' });
|
const create = page.getByRole('dialog', { name: 'Neues Werkzeug' });
|
||||||
await create.getByLabel('Name').fill('E2E Tierlist');
|
await create.getByLabel('Name').fill('E2E Tierlist');
|
||||||
|
|||||||
Reference in new issue
Block a user