Config UI: remove references when deleting devices (#19832)

Co-authored-by: Michael Geers <michael@geers.tv>
This commit is contained in:
andig 2025-03-17 21:17:46 +01:00 • committed by GitHub
parent ec9af3782f
commit d09177b4b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 319 additions and 47 deletions

View file

@ -19,10 +19,10 @@ import (
func getLoadpointStaticConfig(lp loadpoint.API) loadpoint.StaticConfig {
return loadpoint.StaticConfig{
Charger: lp.GetChargerName(),
Meter: lp.GetMeterName(),
Circuit: lp.GetCircuitName(),
Vehicle: lp.GetDefaultVehicle(),
Charger: lp.GetChargerRef(),
Meter: lp.GetMeterRef(),
Circuit: lp.GetCircuitRef(),
Vehicle: lp.GetDefaultVehicleRef(),
}
}
@ -242,6 +242,33 @@ func deleteLoadpointHandler() http.HandlerFunc {
return
}
// cleanup references
lp, err := configurableDevice(config.NameForID(id), h)
if err != nil {
jsonError(w, http.StatusBadRequest, err)
return
}
instance := lp.Instance()
if dev, err := configurableDevice(instance.GetChargerRef(), config.Chargers()); err == nil {
if err := deleteDevice(dev.ID(), config.Chargers()); err != nil {
jsonError(w, http.StatusBadRequest, err)
return
}
setConfigDirty()
}
if dev, err := configurableDevice(instance.GetMeterRef(), config.Meters()); err == nil {
if err := deleteDevice(dev.ID(), config.Meters()); err != nil {
jsonError(w, http.StatusBadRequest, err)
return
}
setConfigDirty()
}
setConfigDirty()
if err := deleteDevice(id, h); err != nil {