update database schema and update editor script
Sonarqube Scanner / Build and analyze (push) Failing after 26s
Sonarqube Scanner / Build and analyze (push) Failing after 26s
This commit is contained in:
+26
-28
@@ -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"`.
|
||||
|
||||
Reference in New Issue
Block a user