aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/ui/controller/category.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/ui/controller/category.go')
-rw-r--r--server/ui/controller/category.go23
1 files changed, 22 insertions, 1 deletions
diff --git a/server/ui/controller/category.go b/server/ui/controller/category.go
index dbc8067..48c77c3 100644
--- a/server/ui/controller/category.go
+++ b/server/ui/controller/category.go
@@ -6,10 +6,11 @@ package controller
import (
"errors"
+ "log"
+
"github.com/miniflux/miniflux2/model"
"github.com/miniflux/miniflux2/server/core"
"github.com/miniflux/miniflux2/server/ui/form"
- "log"
)
func (c *Controller) ShowCategories(ctx *core.Context, request *core.Request, response *core.Response) {
@@ -104,6 +105,19 @@ func (c *Controller) SaveCategory(ctx *core.Context, request *core.Request, resp
return
}
+ duplicateCategory, err := c.store.GetCategoryByTitle(user.ID, categoryForm.Title)
+ if err != nil {
+ response.Html().ServerError(err)
+ return
+ }
+
+ if duplicateCategory != nil {
+ response.Html().Render("create_category", args.Merge(tplParams{
+ "errorMessage": "This category already exists.",
+ }))
+ return
+ }
+
category := model.Category{Title: categoryForm.Title, UserID: user.ID}
err = c.store.CreateCategory(&category)
if err != nil {
@@ -158,6 +172,13 @@ func (c *Controller) UpdateCategory(ctx *core.Context, request *core.Request, re
return
}
+ if c.store.AnotherCategoryExists(user.ID, category.ID, categoryForm.Title) {
+ response.Html().Render("edit_category", args.Merge(tplParams{
+ "errorMessage": "This category already exists.",
+ }))
+ return
+ }
+
err = c.store.UpdateCategory(categoryForm.Merge(category))
if err != nil {
log.Println(err)