diff options
Diffstat (limited to 'cmd/monfront')
-rw-r--r-- | cmd/monfront/main.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/cmd/monfront/main.go b/cmd/monfront/main.go index c471ef1..b8ba1de 100644 --- a/cmd/monfront/main.go +++ b/cmd/monfront/main.go @@ -37,6 +37,7 @@ type ( Checks []check CheckDetails *checkDetails Groups []group + Unhandled bool // set this flag when unhandled was called } MapEntry struct { @@ -250,6 +251,7 @@ func checkAction(w http.ResponseWriter, r *http.Request) { } func showChecks(w http.ResponseWriter, r *http.Request) { + con := Context{} query := `select c.id, n.id, n.name, co.name, ac.mapping_id, ac.states[1] as state, ac.enabled, ac.notice, ac.next_time, ac.msg, case when cn.check_id is null then false else true end as notify_enabled @@ -269,6 +271,7 @@ func showChecks(w http.ResponseWriter, r *http.Request) { } if strings.HasPrefix(r.URL.Path, "/unhandled") { where = append(where, `ac.states[1] > 0 and ac.acknowledged = false and ac.enabled = true`) + con.Unhandled = true } if search, found := r.URL.Query()["search"]; found { idx += 1 @@ -324,9 +327,7 @@ func showChecks(w http.ResponseWriter, r *http.Request) { } checks = append(checks, c) } - con := Context{ - Checks: checks, - } + con.Checks = checks if err := loadMappings(&con); err != nil { con.Error = "could not load mapping data" w.WriteHeader(http.StatusInternalServerError) @@ -345,6 +346,7 @@ func showChecks(w http.ResponseWriter, r *http.Request) { } func showGroups(w http.ResponseWriter, r *http.Request) { + con := Context{} query := `select groupid, groupname, nodeid, nodename, mapping_id, state from ( select g.id groupid, g.name groupname, n.id nodeid, n.name nodename, ac.mapping_id, @@ -359,6 +361,7 @@ func showGroups(w http.ResponseWriter, r *http.Request) { where state = maxstate` if strings.HasPrefix(r.URL.Path, "/unhandled") { query += ` and state > 0` + con.Unhandled = true } if strings.HasPrefix(r.URL.Path, "/unhandled") { @@ -387,9 +390,7 @@ func showGroups(w http.ResponseWriter, r *http.Request) { } groups = append(groups, g) } - con := Context{ - Groups: groups, - } + con.Groups = groups if err := loadMappings(&con); err != nil { w.WriteHeader(http.StatusInternalServerError) w.Write([]byte("problem with the mappings")) @@ -790,7 +791,7 @@ var ( {{ range .Groups }} <tr> <td><input type="checkbox" name="nodes" value="{{ .NodeId }}" /></td> - <td>{{ if ne $current .Name }}{{ $current = .Name }}<a href="/checks?group_id={{ .NodeId }}">{{ .Name }}</a>{{ end }}</td> + <td>{{ if ne $current .Name }}{{ $current = .Name }}<a href="{{ if $.Unhandled }}/unhandled{{ end }}/checks?group_id={{ .GroupId }}">{{ .Name }}</a>{{ end }}</td> <td><a href="/checks?node_id={{ .NodeId }}">{{ .NodeName }}</a></td> <td class="state-{{ .MappingId }}-{{ .State }}">{{ (index $mapping .MappingId .State).Title }}</td> </tr> |