#6, update trigger expressions when renaming datapoints
This commit is contained in:
parent
6685f8bc46
commit
db41d360dc
2 changed files with 63 additions and 9 deletions
32
main.go
32
main.go
|
|
@ -711,8 +711,15 @@ func actionDatapointUpdate(w http.ResponseWriter, r *http.Request, _ *session.T)
|
|||
var nodataSeconds int
|
||||
nodataSeconds, _ = strconv.Atoi(r.FormValue("nodata_seconds"))
|
||||
|
||||
// Datapoint needs to be retrieved from database for the name.
|
||||
// If name has changed, trigger expressions needs to be updated.
|
||||
var dp Datapoint
|
||||
dp.ID = id
|
||||
dp, err = DatapointRetrieve(id, "")
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).WithData(id).Log())
|
||||
return
|
||||
}
|
||||
prevDatapointName := dp.Name
|
||||
dp.Group = r.FormValue("group")
|
||||
dp.Name = r.FormValue("name")
|
||||
dp.Datatype = DatapointType(r.FormValue("datatype"))
|
||||
|
|
@ -724,6 +731,29 @@ func actionDatapointUpdate(w http.ResponseWriter, r *http.Request, _ *session.T)
|
|||
return
|
||||
}
|
||||
|
||||
// Update the trigger expressions using this
|
||||
// datapoint name if changed.
|
||||
if prevDatapointName != dp.Name {
|
||||
var triggers []Trigger
|
||||
triggers, err = TriggersRetrieveByDatapoint(dp.Name)
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).WithData(dp.Name))
|
||||
return
|
||||
}
|
||||
for _, trigger := range triggers {
|
||||
err = trigger.RenameDatapoint(prevDatapointName, dp.Name)
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).WithData([]string{prevDatapointName, dp.Name}))
|
||||
return
|
||||
}
|
||||
err = trigger.Update()
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).WithData([]string{prevDatapointName, dp.Name, trigger.Name}))
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
w.Header().Add("Location", "/datapoints")
|
||||
w.WriteHeader(302)
|
||||
} // }}}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue