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))
}