From 6ac189a72c4dbe667500db0e7e316da9e029f8fe Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Wed, 22 Oct 2025 18:48:09 -0400 Subject: [PATCH] [Issue #11] - reworked the benchmark profile add page to be more sensible; added links for editing and deleting settings profiles --- templates/benchmark/profile/add.tmpl | 22 ++++++++++++++----- templates/benchmark/view.tmpl | 10 +++++++-- web/routes.go | 2 +- web/routes/benchmark.go | 33 ++++++++++++++-------------- 4 files changed, 41 insertions(+), 26 deletions(-) diff --git a/templates/benchmark/profile/add.tmpl b/templates/benchmark/profile/add.tmpl index c50fda6..be6cfcf 100644 --- a/templates/benchmark/profile/add.tmpl +++ b/templates/benchmark/profile/add.tmpl @@ -1,17 +1,27 @@ {{ template "header" . }}
-

Add profile for {{ .benchmark.Name }}

+

Add benchmark settings profile

-
+
diff --git a/templates/benchmark/view.tmpl b/templates/benchmark/view.tmpl index a1998bd..0442bb5 100644 --- a/templates/benchmark/view.tmpl +++ b/templates/benchmark/view.tmpl @@ -13,11 +13,17 @@

Profiles for this Benchmark

-

Add settings profile

+

Add settings profile

    {{ range $profile := .benchmark.BenchmarkProfiles }} -
  • {{ $profile.Label }}
  • +
  • + {{ $profile.Label }} + + Edit + Delete + +
  • {{ end }}
diff --git a/web/routes.go b/web/routes.go index 0e78455..3820aa4 100644 --- a/web/routes.go +++ b/web/routes.go @@ -45,7 +45,7 @@ func RegisterRoutes(f *flamego.Flame) { f.Get("/{benchmark_id}/edit", routes.BenchmarkGetEdit) f.Post("/{benchmark_id}/edit", binding.Form(forms.BenchmarkForm{}), routes.BenchmarkPostEdit) - f.Group("/{benchmark_id}/profile", func() { + f.Group("/profile", func() { f.Get("/add", routes.BenchmarkGetProfileAdd) f.Post("/add", binding.Form(forms.BenchmarkProfileForm{}), routes.BenchmarkPostProfileAdd) }) diff --git a/web/routes/benchmark.go b/web/routes/benchmark.go index aed1555..df808a3 100644 --- a/web/routes/benchmark.go +++ b/web/routes/benchmark.go @@ -107,35 +107,34 @@ func BenchmarkPostEdit(c flamego.Context, form forms.BenchmarkForm, errs binding } func BenchmarkGetProfileAdd(c flamego.Context, t template.Template, data template.Data) { - // find benchmark ID from request - benchmarkID := c.Param("benchmark_id") + // find benchmark ID from GET parameters + benchmarkID := c.Query("benchmark") - // find benchmark from DB - var benchmark models.Benchmark - models.DB.First(&benchmark, benchmarkID) - data["benchmark"] = benchmark + // check if the query parameter was used + if benchmarkID != "" { + // find benchmark from DB + var benchmark models.Benchmark + models.DB.First(&benchmark, benchmarkID) + data["benchmark"] = benchmark + } else { + // find all benchmarks from DB + var benchmarks []models.Benchmark + models.DB.Find(&benchmarks) + data["benchmarks"] = benchmarks + } - data["title"] = benchmark.Name + data["title"] = "Add new benchmark settings profile" t.HTML(http.StatusOK, "benchmark/profile/add") } func BenchmarkPostProfileAdd(c flamego.Context, form forms.BenchmarkProfileForm, errs binding.Errors) { - // find benchmark ID from request - benchmarkID := c.Param("benchmark_id") - - // find benchmark from DB - var benchmark models.Benchmark - models.DB.First(&benchmark, benchmarkID) - benchmarkProfile := models.BenchmarkProfile{ BenchmarkID: form.BenchmarkID, Label: form.Label, Settings: form.Settings, } - fmt.Println(form.BenchmarkID) - _ = models.DB.Create(&benchmarkProfile) - c.Redirect(fmt.Sprintf("/benchmark/%d", benchmark.ID)) + c.Redirect(fmt.Sprintf("/benchmark/%d", form.BenchmarkID)) }