Refactored time filter.
This commit is contained in:
parent
4c908f4891
commit
9700bc9d3c
16 changed files with 252 additions and 296 deletions
75
main.go
75
main.go
|
|
@ -709,31 +709,14 @@ func pageDatapointValues(w http.ResponseWriter, r *http.Request, _ *session.T) {
|
|||
return
|
||||
}
|
||||
|
||||
// GET parameters.
|
||||
display := r.URL.Query().Get("display")
|
||||
if display == "" && datapoint.Datatype == INT {
|
||||
display = "graph"
|
||||
}
|
||||
|
||||
// Manage the values from the timefilter component
|
||||
var timeFrom, timeTo time.Time
|
||||
yesterday := time.Now().Add(time.Duration(-24 * time.Hour))
|
||||
timeFrom, err = parseHTMLDateTime(r.URL.Query().Get("f"), yesterday)
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).WithData(r.URL.Query().Get("f")).Log())
|
||||
return
|
||||
}
|
||||
|
||||
timeTo, err = parseHTMLDateTime(r.URL.Query().Get("t"), time.Now())
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).WithData(r.URL.Query().Get("t")).Log())
|
||||
return
|
||||
}
|
||||
|
||||
presetTimeInterval(time.Hour, r.URL.Query().Get("preset"), &timeFrom, &timeTo)
|
||||
|
||||
// Apply an optionally set offset (in seconds).
|
||||
timeFrom = applyTimeOffset(timeFrom, time.Second, r.URL.Query().Get("offset-time"))
|
||||
timeTo = applyTimeOffset(timeTo, time.Second, r.URL.Query().Get("offset-time"))
|
||||
timeFrom, timeTo, err = timefilterParse(
|
||||
r.URL.Query().Get("time-f"),
|
||||
r.URL.Query().Get("time-t"),
|
||||
r.URL.Query().Get("time-offset"),
|
||||
r.URL.Query().Get("time-preset"),
|
||||
)
|
||||
|
||||
// Fetch data point values according to the times.
|
||||
var values []DatapointValue
|
||||
|
|
@ -743,6 +726,12 @@ func pageDatapointValues(w http.ResponseWriter, r *http.Request, _ *session.T) {
|
|||
return
|
||||
}
|
||||
|
||||
// GET parameters.
|
||||
display := r.URL.Query().Get("display")
|
||||
if display == "" && datapoint.Datatype == INT {
|
||||
display = "graph"
|
||||
}
|
||||
|
||||
page := Page{
|
||||
LAYOUT: "main",
|
||||
PAGE: "datapoint_values",
|
||||
|
|
@ -755,9 +744,11 @@ func pageDatapointValues(w http.ResponseWriter, r *http.Request, _ *session.T) {
|
|||
page.Data = map[string]any{
|
||||
"Datapoint": datapoint,
|
||||
"Values": values,
|
||||
"TimeFrom": timeFrom.Format("2006-01-02T15:04:05"),
|
||||
"TimeTo": timeTo.Format("2006-01-02T15:04:05"),
|
||||
"Display": display,
|
||||
|
||||
"TimeSubmit": "/datapoint/values/" + strconv.Itoa(datapoint.ID),
|
||||
"TimeFrom": timeFrom.Format("2006-01-02T15:04:05"),
|
||||
"TimeTo": timeTo.Format("2006-01-02T15:04:05"),
|
||||
}
|
||||
page.Render(w, r)
|
||||
return
|
||||
|
|
@ -770,14 +761,14 @@ func actionDatapointJson(w http.ResponseWriter, r *http.Request, _ *session.T) {
|
|||
return
|
||||
}
|
||||
|
||||
fromStr := r.URL.Query().Get("f")
|
||||
fromStr := r.URL.Query().Get("time-f")
|
||||
from, err := time.ParseInLocation("2006-01-02 15:04:05", fromStr[0:min(19, len(fromStr))], smonConfig.Timezone())
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).Log())
|
||||
return
|
||||
}
|
||||
|
||||
toStr := r.URL.Query().Get("t")
|
||||
toStr := r.URL.Query().Get("time-t")
|
||||
to, err := time.ParseInLocation("2006-01-02 15:04:05", toStr[0:min(19, len(toStr))], smonConfig.Timezone())
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).Log())
|
||||
|
|
@ -1198,27 +1189,14 @@ func actionConfigurationNotificationDelete(w http.ResponseWriter, r *http.Reques
|
|||
func pageNotifications(w http.ResponseWriter, r *http.Request, _ *session.T) { // {{{
|
||||
var err error
|
||||
|
||||
// GET parameters.
|
||||
// Manage the values from the timefilter component
|
||||
var timeFrom, timeTo time.Time
|
||||
lastWeek := time.Now().Add(time.Duration(-7 * 24 * time.Hour))
|
||||
|
||||
timeFrom, err = parseHTMLDateTime(r.URL.Query().Get("f"), lastWeek)
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).Log())
|
||||
return
|
||||
}
|
||||
|
||||
timeTo, err = parseHTMLDateTime(r.URL.Query().Get("t"), time.Now())
|
||||
if err != nil {
|
||||
httpError(w, werr.Wrap(err).Log())
|
||||
return
|
||||
}
|
||||
|
||||
presetTimeInterval(time.Hour, r.URL.Query().Get("preset"), &timeFrom, &timeTo)
|
||||
|
||||
// Apply an optionally set offset (in seconds).
|
||||
timeFrom = applyTimeOffset(timeFrom, time.Second, r.URL.Query().Get("offset-time"))
|
||||
timeTo = applyTimeOffset(timeTo, time.Second, r.URL.Query().Get("offset-time"))
|
||||
timeFrom, timeTo, err = timefilterParse(
|
||||
r.URL.Query().Get("time-f"),
|
||||
r.URL.Query().Get("time-t"),
|
||||
r.URL.Query().Get("time-offset"),
|
||||
r.URL.Query().Get("time-preset"),
|
||||
)
|
||||
|
||||
nss, err := notificationsSent(timeFrom, timeTo)
|
||||
if err != nil {
|
||||
|
|
@ -1231,6 +1209,7 @@ func pageNotifications(w http.ResponseWriter, r *http.Request, _ *session.T) { /
|
|||
CONFIG: smonConfig.Settings,
|
||||
Data: map[string]any{
|
||||
"Notifications": nss,
|
||||
"TimeSubmit": "/notifications",
|
||||
"TimeFrom": timeFrom.Format("2006-01-02T15:04:05"),
|
||||
"TimeTo": timeTo.Format("2006-01-02T15:04:05"),
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue