diff --git a/Makefile b/Makefile index d4376128..dfb6f79b 100644 --- a/Makefile +++ b/Makefile @@ -192,7 +192,6 @@ databases: # # Download and Install dependencies # - # run dep to install all required golang dependecies dep: dep ensure -vendor-only diff --git a/core/services.go b/core/services.go index 4a26e01b..ee3110a3 100644 --- a/core/services.go +++ b/core/services.go @@ -393,6 +393,13 @@ func (s *Service) Update(restart bool) error { utils.Log(3, fmt.Sprintf("Failed to update service %v. %v", s.Name, err)) return err.Error } + // clear the notification queue for a service + if !s.AllowNotifications.Bool { + for _, n := range CoreApp.Notifications { + notif := n.(*notifier.Notification) + notif.ResetUniqueQueue(s.Id) + } + } if restart { s.Close() s.Start() diff --git a/handlers/handlers.go b/handlers/handlers.go index 67f0d423..d3ddcbb2 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -93,6 +93,9 @@ var handlerFuncs = func(w http.ResponseWriter, r *http.Request) template.FuncMap "safe": func(html string) template.HTML { return template.HTML(html) }, + "safeURL": func(u string) template.URL { + return template.URL(u) + }, "Auth": func() bool { return IsAuthenticated(r) }, diff --git a/handlers/services.go b/handlers/services.go index 6fd5ad26..f01596a0 100644 --- a/handlers/services.go +++ b/handlers/services.go @@ -18,6 +18,7 @@ package handlers import ( "encoding/json" "errors" + "fmt" "github.com/gorilla/mux" "github.com/hunterlong/statup/core" "github.com/hunterlong/statup/types" @@ -66,12 +67,17 @@ func reorderServiceHandler(w http.ResponseWriter, r *http.Request) { } var newOrder []*serviceOrder decoder := json.NewDecoder(r.Body) - decoder.Decode(&newOrder) + if err := decoder.Decode(&newOrder); err != nil { + utils.Log(3, fmt.Sprint("error decoding reordering services: %v", err.Error())) + } for _, s := range newOrder { service := core.SelectService(s.Id) service.Order = s.Order - service.Update(false) + if err := service.Update(false); err != nil { + utils.Log(3, fmt.Sprint("error reordering services: %v", err.Error())) + } } + w.Write([]byte("ok")) w.WriteHeader(http.StatusOK) } @@ -172,7 +178,6 @@ func apiServiceUpdateHandler(w http.ResponseWriter, r *http.Request) { return } go service.Check(true) - sendJsonAction(service, "update", w, r) } diff --git a/handlers/settings.go b/handlers/settings.go index 427ffb0c..cf190778 100644 --- a/handlers/settings.go +++ b/handlers/settings.go @@ -16,6 +16,7 @@ package handlers import ( + "fmt" "github.com/gorilla/mux" "github.com/hunterlong/statup/core" "github.com/hunterlong/statup/source" @@ -39,6 +40,7 @@ func saveSettingsHandler(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/", http.StatusSeeOther) return } + var err error r.ParseForm() app := core.CoreApp name := r.PostForm.Get("project") @@ -65,8 +67,14 @@ func saveSettingsHandler(w http.ResponseWriter, r *http.Request) { timeFloat, _ := strconv.ParseFloat(timezone, 10) app.Timezone = float32(timeFloat) + utils.Log(1, fmt.Sprintf("timezone: %v", timezone)) + utils.Log(1, fmt.Sprintf("tzone: %f", app.Timezone)) + app.UseCdn = types.NewNullBool(r.PostForm.Get("enable_cdn") == "on") - core.CoreApp, _ = core.UpdateCore(app) + core.CoreApp, err = core.UpdateCore(app) + if err != nil { + utils.Log(3, fmt.Sprintf("issue updating Core: %v", err.Error())) + } //notifiers.OnSettingsSaved(core.CoreApp.ToCore()) ExecuteResponse(w, r, "settings.html", core.CoreApp, "/settings") } diff --git a/source/js/main.js b/source/js/main.js index 1655bb09..3ca7df6b 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -175,12 +175,10 @@ $('form.ajax_form').on('submit', function() { let alerter = form.find('#alerter'); var arrayData = []; let newArr = {}; + console.log(values); Spinner(button); values.forEach(function(k, v) { - if (k.name === "password_confirm") { - return - } - if (k.value === "") { + if (k.name === "password_confirm" || k.value === "") { return } if (k.value === "on") { @@ -231,7 +229,6 @@ $('form.ajax_form').on('submit', function() { }); function CreateService(output) { - console.log('creating service', output) let form = output.form; let data = output.data.output; let objTbl = `