update database schema and update editor script
Sonarqube Scanner / Build and analyze (push) Failing after 26s

This commit is contained in:
Florian Zumpe
2026-09-02 00:53:22 +02:00
parent d6228e7e32
commit a66482a137
8 changed files with 455 additions and 55 deletions
+26 -28
View File
@@ -1,40 +1,38 @@
# Wegwichtel Streckeneditor - einfache Fassung mit Tests
# Wegwichtel Editor v3
Dieses Paket ergänzt die Oberfläche um einen einfachen Streckeneditor auf der Streckenauswahl und liefert passende Tests mit.
Dieses Paket ergänzt den einfachen Streckeneditor und die zugehörigen Tests.
## Enthaltene Dateien
## Datenbankschema
- `public/index.html`
- neuer Abschnitt `Strecken verwalten` mit rundem Plus-Button
- neues Dialogfenster `#editor-dialog`
- Einbindung von `css/editor.css` und `js/editor-ui.js`
- `public/css/editor.css`
- eigenständige Editor-Styles
- `public/js/editor-ui.js`
- Editor-Dialog, Streckenliste, Streckendetailformular, POI-Formular
- POI-Sortierung per Pfeil nach oben/unten
- Upload einer Audiodatei und beliebig vieler Bilder pro POI
- `database/migrations/20260901_add_route_activated_at.sql`
- ergänzt `routes.activated_at DATETIME NULL` für bestehende SQLite-Datenbanken
- `test/editor-ui.test.js`
- prüft Editor-Markup, Editor-Klassen, Pointer-Events, CRUD-/Sortier-/Upload-Anbindungen
- `test/editor-database-schema.test.js`
- prüft, dass `activated_at DATETIME NULL` über Schema oder Migration verfügbar ist
Für bestehende SQLite-Datenbanken liegt weiterhin eine Migration vor:
## Datenbank
Neue Strecken bleiben fachlich Entwürfe, solange `routes.activated_at` NULL ist. Die Aktivierung wird in dieser Fassung nicht durch die Programmlogik gesetzt.
Für bestehende SQLite-Datenbanken:
```sh
```bash
sqlite3 <pfad-zur-wegwichtel-db> < database/migrations/20260901_add_route_activated_at.sql
```
Falls `database/schema.sql` für komplett neue Datenbanken ohne Migrationslauf verwendet wird, muss dort in der `routes`-Tabelle zusätzlich diese Spalte enthalten sein:
Für neu erzeugte Datenbanken muss `database/schema.sql` die Spalte direkt in der `routes`-Tabelle enthalten:
```sql
activated_at DATETIME NULL
```
Das Paket ersetzt `database/schema.sql` bewusst nicht blind, damit bestehende Tabellen, Indizes und Trigger nicht versehentlich überschrieben werden.
Falls das Paket ohne bereits angepasste `database/schema.sql` eingespielt wird, kann die Datei einmalig im Repository angepasst werden:
```bash
node scripts/apply-editor-schema.mjs
```
Danach sollte `database/schema.sql` mit committed werden.
## Tests
```bash
node --check public/js/editor-ui.js
npm test -- test/editor-ui.test.js
npm test -- test/editor-database-schema.test.js
npm run test:coverage
```
## SonarQube
Der frühere HTML-Smell durch `role="status"` am Editorstatus wurde entfernt. Der Status ist jetzt ein semantisches `<output>` mit `aria-live="polite"`.