feat: add category selection to post edit form and badges to post list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ffa86b12e9
commit
4c2ce7272d
6 changed files with 112 additions and 30 deletions
|
|
@ -6,11 +6,13 @@ import (
|
|||
|
||||
"github.com/gofiber/fiber/v3"
|
||||
"lmika.dev/lmika/weiro/models"
|
||||
"lmika.dev/lmika/weiro/services/categories"
|
||||
"lmika.dev/lmika/weiro/services/posts"
|
||||
)
|
||||
|
||||
type PostsHandler struct {
|
||||
PostService *posts.Service
|
||||
PostService *posts.Service
|
||||
CategoryService *categories.Service
|
||||
}
|
||||
|
||||
func (ph PostsHandler) Index(c fiber.Ctx) error {
|
||||
|
|
@ -42,8 +44,15 @@ func (ph PostsHandler) New(c fiber.Ctx) error {
|
|||
State: models.StateDraft,
|
||||
}
|
||||
|
||||
cats, err := ph.CategoryService.ListCategories(c.Context())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.Render("posts/edit", fiber.Map{
|
||||
"post": p,
|
||||
"post": p,
|
||||
"categories": cats,
|
||||
"selectedCategories": map[int64]bool{},
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -62,11 +71,28 @@ func (ph PostsHandler) Edit(c fiber.Ctx) error {
|
|||
return err
|
||||
}
|
||||
|
||||
cats, err := ph.CategoryService.ListCategories(c.Context())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
postCats, err := ph.PostService.GetPostCategories(c.Context(), postID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
selectedCategories := make(map[int64]bool)
|
||||
for _, pc := range postCats {
|
||||
selectedCategories[pc.ID] = true
|
||||
}
|
||||
|
||||
return accepts(c, json(func() any {
|
||||
return post
|
||||
}), html(func(c fiber.Ctx) error {
|
||||
return c.Render("posts/edit", fiber.Map{
|
||||
"post": post,
|
||||
"post": post,
|
||||
"categories": cats,
|
||||
"selectedCategories": selectedCategories,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue