Managing of problems

This commit is contained in:
Magnus Åhall 2024-05-01 20:01:43 +02:00
parent c746343dc0
commit d935eb282b
15 changed files with 588 additions and 36 deletions

70
main.go
View file

@ -95,14 +95,11 @@ func main() { // {{{
logger.Error("application", "error", err)
return
}
_, err = service.Db.Conn.Exec(`SET TIMEZONE TO 'Europe/Stockholm'`)
if err != nil {
logger.Error("application", "error", err)
return
}
service.Register("/", false, false, staticHandler)
service.Register("/problems", false, false, pageProblems)
service.Register("/problem/acknowledge/{id}", false, false, pageProblemAcknowledge)
service.Register("/problem/unacknowledge/{id}", false, false, pageProblemUnacknowledge)
service.Register("/datapoints", false, false, pageDatapoints)
service.Register("/datapoint/edit/{id}", false, false, pageDatapointEdit)
@ -247,8 +244,10 @@ func getPage(layout, page string) (tmpl *template.Template, err error) { // {{{
}
funcMap := template.FuncMap{
"format_time": func(t time.Time) string {
return t.Local().Format("2006-01-02 15:04:05")
"format_time": func(t time.Time) template.HTML {
return template.HTML(
t.Local().Format(`<span class="date">2006-01-02</span> <span class="time">15:04<span class="seconds">:05</span></span>`),
)
},
}
@ -283,25 +282,56 @@ func pageProblems(w http.ResponseWriter, _ *http.Request, _ *session.T) { // {{{
PAGE: "problems",
}
/*
areas, err := ProblemsRetrieve()
if err != nil {
httpError(w, we.Wrap(err).Log())
return
}
sort.SliceStable(areas, func(i, j int) bool {
return areas[i].Name < areas[j].Name
})
logger.Info("problems", "areas", areas)
*/
problems, err := ProblemsRetrieve()
if err != nil {
httpError(w, we.Wrap(err).Log())
return
}
page.Data = map[string]any{
//"Areas": areas,
"Problems": problems,
}
page.Render(w)
return
} // }}}
func pageProblemAcknowledge(w http.ResponseWriter, r *http.Request, _ *session.T) { // {{{
idStr := r.PathValue("id")
id, err := strconv.Atoi(idStr)
if err != nil {
httpError(w, we.Wrap(err).Log())
return
}
err = ProblemAcknowledge(id, true)
if err != nil {
httpError(w, we.Wrap(err).Log())
return
}
w.Header().Add("Location", "/problems")
w.WriteHeader(302)
return
} // }}}
func pageProblemUnacknowledge(w http.ResponseWriter, r *http.Request, _ *session.T) { // {{{
idStr := r.PathValue("id")
id, err := strconv.Atoi(idStr)
if err != nil {
httpError(w, we.Wrap(err).Log())
return
}
err = ProblemAcknowledge(id, false)
if err != nil {
httpError(w, we.Wrap(err).Log())
return
}
w.Header().Add("Location", "/problems")
w.WriteHeader(302)
return
} // }}}
func pageDatapoints(w http.ResponseWriter, r *http.Request, _ *session.T) { // {{{
page := Page{