Collections: allow to drag and drop to change book position
This commit is contained in:
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user