Show consumer priority order on status page
Section title changed to "Verbraucher — Priorität ↓" and each consumer row now shows a circled number (① ② ③ ④) so it's immediately clear which consumer has precedence for turn-on and reverse order for shutdown. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -111,6 +111,7 @@ func (s *Store) Update(state collector.SystemState, actions []engine.Action, ove
|
||||
type consumerView struct {
|
||||
Icon string
|
||||
Label string
|
||||
Priority string // e.g. "①"
|
||||
ConsumerKey string // e.g. "wallbox_a" — used for the override form
|
||||
Active bool
|
||||
Since time.Time
|
||||
@@ -281,12 +282,18 @@ func (s *Store) Handler() http.HandlerFunc {
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, c := range consumerOrder {
|
||||
prioritySymbols := []string{"①", "②", "③", "④"}
|
||||
for i, c := range consumerOrder {
|
||||
rec := s.consumers[c]
|
||||
meta := consumerMeta[c]
|
||||
prio := ""
|
||||
if i < len(prioritySymbols) {
|
||||
prio = prioritySymbols[i]
|
||||
}
|
||||
cv := consumerView{
|
||||
Icon: meta.Icon,
|
||||
Label: meta.Label,
|
||||
Priority: prio,
|
||||
ConsumerKey: c.String(),
|
||||
Active: rec.active,
|
||||
Since: rec.since,
|
||||
@@ -482,6 +489,14 @@ h1 { font-size: 1.4rem; font-weight: 700; color: #14532d; }
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
/* Priority badge */
|
||||
.prio-badge {
|
||||
font-size: 0.75rem;
|
||||
color: #9ca3af;
|
||||
margin-right: 0.35rem;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
/* Consumer list */
|
||||
.section-title {
|
||||
font-size: 0.7rem;
|
||||
@@ -658,14 +673,16 @@ h1 { font-size: 1.4rem; font-weight: 700; color: #14532d; }
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="section-title">Verbraucher</div>
|
||||
<div class="section-title">Verbraucher — Priorität ↓</div>
|
||||
|
||||
{{range .Consumers}}
|
||||
<div class="consumer{{if .Unconfigured}} unconfigured{{end}}">
|
||||
<div class="indicator {{if .ManualOverride}}override{{else if .Active}}on{{else}}off{{end}}"></div>
|
||||
<div class="consumer-icon">{{.Icon}}</div>
|
||||
<div class="consumer-body">
|
||||
<div class="consumer-name">{{.Label}}</div>
|
||||
<div class="consumer-name">
|
||||
<span class="prio-badge">{{.Priority}}</span>{{.Label}}
|
||||
</div>
|
||||
<div class="consumer-detail{{if and .Active (not .ManualOverride)}} active{{end}}{{if .ManualOverride}} override{{end}}">
|
||||
{{if .Unconfigured}}
|
||||
nicht konfiguriert
|
||||
|
||||
Reference in New Issue
Block a user