Collections: allow to drag and drop to change book position

This commit is contained in:
2026-04-12 01:44:25 +02:00
parent d2fe3bf34f
commit 178c688203
15 changed files with 328 additions and 12 deletions

View File

@@ -11,6 +11,7 @@ import (
"git.artlef.fr/bibliomane/internal/model"
"git.artlef.fr/bibliomane/internal/myvalidator"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
func PostCollectionBookHandler(ac appcontext.AppContext) {
@@ -56,7 +57,16 @@ func PostCollectionBookHandler(ac appcontext.AppContext) {
return
}
item := model.CollectionItem{Position: 0, BookID: book.ID, CollectionID: collection.ID}
//reorder other items
q := ac.Db.Model(&model.CollectionItem{})
q = q.Where("collection_id = ?", collection.ID)
err = q.UpdateColumn("position", gorm.Expr("position + 1")).Error
if err != nil {
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
return
}
item := model.CollectionItem{Position: 1, BookID: book.ID, CollectionID: collection.ID}
ac.Db.Save(&item)
ac.C.String(http.StatusOK, "Success")
}