Skip to content

Koala user defined custom colors#3361

Open
Brett-S-OWB wants to merge 53 commits into
openWB:feature-custom-colorsfrom
Brett-S-OWB:custom-colors-bv
Open

Koala user defined custom colors#3361
Brett-S-OWB wants to merge 53 commits into
openWB:feature-custom-colorsfrom
Brett-S-OWB:custom-colors-bv

Conversation

@Brett-S-OWB
Copy link
Copy Markdown
Contributor

Benutzerdefinierte Farben im Koala Theme implementiert und konsistent über mehrere UI-Komponenten hinweg integriert.

Die Farben können nun individuell für verschiedene Entitäten (z. B. Ladepunkte, Fahrzeuge, Komponenten) definiert werden (in ui-settings project) und werden automatisch in der gesamten Oberfläche verwendet.

Diagramme

  • Unterstützung benutzerdefinierter Farben im:
    • Energy Flow Chart
    • History Chart
    • Daily Totals Chart

Daily Totals Chart

  • Erweiterung der Batterie-Anzeige:
    • Dropdown bei mehreren Batterien
    • Trennlinie zwischen einzelnen Einträgen
  • Erweiterung der Ladepunkt-Anzeige:
    • Trennlinie zwischen einzelnen Einträgen
  • Verbesserung der Darstellung:
    • Ellipsis (Textverkürzung) für lange Namen bei Batterien und Ladepunkten

Karten (Carousel)
Benutzerdefinierte Farben wurden ergänzt für:

  • Charge Point Cards
  • Vehicle Cards
  • Battery Cards

Tabellenansichten

  • Integration der Farben in:
    • Charge Point Tabelle
    • Vehicle Tabelle
  • Darstellung als visuelle Farbmarkierung pro Zeile

Änderungen an BaseTable
Die bisherige Implementierung der Tabelle hatte zwei unterschiedliche Render-Pfade:
(ChargePointInformation.vue)

  • rowExpandable = true (z. B. kleine Screens)
→ BaseTable hat die komplette Tabellenzeile selbst gerendert (#body Slot)
  • rowExpandable = false (z. B. große Screens)
→ QTable hat das Rendering übernommen (Default-Verhalten)
    Gleichzeitig wurden Inhalte über body-cell-* Slots vom Parent bereitgestellt.
  • Ergebnis:
Zwei unterschiedliche Rendering-Mechanismen je nach Screen-Größe, was zu Inkonsistenzen bei Layout, Spacing und Styling geführt hat.

Problem
Für die neue Funktion einer benutzerdefinierten Farbanzeige pro Zeile (farbiger Indikator / Farbstreifen) war ein konsistenter Zugriff auf die gesamte Zeilenstruktur notwendig.
Durch die unterschiedlichen Render-Pfade war es nicht möglich, diesen Farbindikator zuverlässig und einheitlich darzustellen.

Lösung
Die Tabellenstruktur wurde vereinheitlicht:

  • BaseTable rendert jetzt immer die komplette Tabellenzeile (#body Slot wird immer verwendet)
  • wird zentral in BaseTable erzeugt
  • Parent-Komponenten liefern nur noch den Zelleninhalt über Slots (body-cell-*)
    -Klare Trennung:
  • Struktur & Layout → BaseTable
  • Inhalt → Parent

Neue Funktion: Farbindikator pro Zeile
Im Zuge der Umstellung wurde ein benutzerdefinierter Farbstreifen pro Tabellenzeile eingeführt:

  • Farbe wird über rowColor vom Parent geliefert
  • Darstellung erfolgt zentral in BaseTable
  • Umsetzung über ein background-image (Gradient), um:
    • vertikale Zentrierung
    • Abstand oben/unten
    • Abstand zum linken Rand
Bildschirmfoto 2026-05-11 um 15 47 38 Bildschirmfoto 2026-05-11 um 15 47 16 Bildschirmfoto 2026-05-11 um 15 47 29 Bildschirmfoto 2026-05-11 um 15 47 55 Bildschirmfoto 2026-05-11 um 15 48 21 Bildschirmfoto 2026-05-11 um 15 48 54

@Brett-S-OWB Brett-S-OWB requested a review from benderl May 11, 2026 14:17
@benderl benderl self-assigned this May 12, 2026
@benderl benderl added the enhancement New feature or request label May 12, 2026
Comment thread packages/helpermodules/update_config.py Outdated
Comment thread packages/modules/web_themes/koala/source/public/icons/owbBattery_2.svg Outdated
Comment thread packages/modules/web_themes/koala/source/src/components/svgIcons/BatteryIcon.vue Outdated
Comment thread packages/modules/web_themes/koala/source/src/stores/mqtt-store.ts Outdated
Comment thread packages/modules/web_themes/koala/source/src/components/BatteryCard.vue Outdated
@Brett-S-OWB
Copy link
Copy Markdown
Contributor Author

Energy-Flow-Chart: Die SVG-Icons wurden ursprünglich als eigene Vue-Komponenten gekapselt, um sie im Flowchart einfärben zu können. Dies führte jedoch zu unnötig komplexer und tief verschachtelter Struktur.

Als Alternative wurde ein SVG-Sprite geprüft, jedoch verworfen, da die Icons dabei nicht mehr als einzelne, leicht bearbeitbare Dateien im Projekt vorliegen und die Handhabung (insbesondere für dynamische Anpassungen) unflexibel ist.

Stattdessen wurde auf den Vite SVG Loader umgestellt. Dadurch können SVGs direkt als Komponenten importiert werden (?component), bleiben als einzelne Dateien erhalten und lassen sich weiterhin einfach über currentColor dynamisch einfärben. Das reduziert die Komplexität, verbessert Wartbarkeit und Lesbarkeit.

fix redefinition of "fill"
Comment thread packages/modules/web_themes/koala/source/src/stores/mqtt-store.ts
@benderl benderl force-pushed the feature-custom-colors branch from 0d9c488 to 9c6cce0 Compare May 18, 2026 10:41
Copy link
Copy Markdown
Contributor

@benderl benderl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Änderungen an den drei Dateien des Cards Display Themes sind aus Versehen rein gekommen?

@Brett-S-OWB
Copy link
Copy Markdown
Contributor Author

Die Änderungen an den drei Dateien des Cards Display Themes sind aus Versehen rein gekommen?

Ja das sind sie, ich hatte sie gleichseitig offen, können wir ignorieren.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants