Build container image in CI, bake in datasets, configure auth via env
Build image / build (push) Successful in 3m18s
Build image / build (push) Successful in 3m18s
- Dockerfile bakes the app and every CSV in data/ into an nginx image - UI discovers data/*.csv via nginx JSON autoindex and offers a dropdown when there is more than one dataset - docker-entrypoint.d/40-basic-auth.sh creates .htpasswd from BASIC_AUTH_USER / BASIC_AUTH_PASSWORD(_FILE) and refuses to start without credentials; replaces set-password.sh - Gitea Actions workflow builds and pushes registry.traberph.de/public/interval_viz (latest, sha-*, semver) - Escape resets the chart zoom Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+10
-4
@@ -33,9 +33,12 @@ const I18N = {
|
||||
units: { d: 'd', h: 'h', m: 'm', s: 's' },
|
||||
errColumns: 'CSV needs the columns "state" and "last_changed".',
|
||||
errEmpty: 'CSV contains no valid rows.',
|
||||
errFetch: 'Could not load history.csv ({status}) – use “Load CSV…”.',
|
||||
dataset: 'Dataset',
|
||||
localFile: 'Local file',
|
||||
errFetch: 'Could not load {file} ({status}) – use “Load CSV…”.',
|
||||
errNoData: 'No CSV files found in data/ – use “Load CSV…”.',
|
||||
note: 'Hover a phase to see its duration. Drag to zoom, shift+drag or the pan tool to pan, ' +
|
||||
'mouse wheel to zoom, double-click to reset. Statistics use the on-phases that <em>start</em> ' +
|
||||
'mouse wheel to zoom, double-click or Esc to reset. Statistics use the on-phases that <em>start</em> ' +
|
||||
'within the visible range; total on-time and duty cycle are clipped to the range. ' +
|
||||
'A phase ends at the first state that is not "on" (off, unknown, unavailable); ' +
|
||||
'a phase still running at the end of the data is excluded. Times are shown in your local time zone.',
|
||||
@@ -71,9 +74,12 @@ const I18N = {
|
||||
units: { d: 'T', h: 'h', m: 'min', s: 's' },
|
||||
errColumns: 'Die CSV benötigt die Spalten "state" und "last_changed".',
|
||||
errEmpty: 'Die CSV enthält keine gültigen Zeilen.',
|
||||
errFetch: 'history.csv konnte nicht geladen werden ({status}) – bitte „CSV laden…“ verwenden.',
|
||||
dataset: 'Datensatz',
|
||||
localFile: 'Lokale Datei',
|
||||
errFetch: '{file} konnte nicht geladen werden ({status}) – bitte „CSV laden…“ verwenden.',
|
||||
errNoData: 'Keine CSV-Dateien in data/ gefunden – bitte „CSV laden…“ verwenden.',
|
||||
note: 'Für die Dauer über eine Phase fahren. Ziehen zum Zoomen, Umschalt+Ziehen oder das Verschieben-Werkzeug ' +
|
||||
'zum Verschieben, Mausrad zum Zoomen, Doppelklick zum Zurücksetzen. Die Statistik berücksichtigt Laufphasen, ' +
|
||||
'zum Verschieben, Mausrad zum Zoomen, Doppelklick oder Esc zum Zurücksetzen. Die Statistik berücksichtigt Laufphasen, ' +
|
||||
'die im sichtbaren Zeitraum <em>beginnen</em>; Laufzeit gesamt und Einschaltanteil werden auf den Zeitraum begrenzt. ' +
|
||||
'Eine Phase endet beim ersten Zustand ungleich „on“ (off, unknown, unavailable); ' +
|
||||
'eine am Datenende noch laufende Phase wird nicht gezählt. Zeiten in lokaler Zeitzone.',
|
||||
|
||||
Reference in New Issue
Block a user