This commit is contained in:
Daniel 2025-06-16 21:07:45 +08:00
parent 8eb37bd735
commit 218bbe2000
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 38 additions and 8 deletions

View file

@ -27,6 +27,29 @@ import (
"github.com/siyuan-note/siyuan/kernel/util" "github.com/siyuan-note/siyuan/kernel/util"
) )
func changeAttrViewLayout(c *gin.Context) {
ret := gulu.Ret.NewResult()
arg, ok := util.JsonArg(c, ret)
if !ok {
c.JSON(http.StatusOK, ret)
return
}
blockID := arg["blockID"].(string)
avID := arg["avID"].(string)
layoutType := arg["layoutType"].(av.LayoutType)
err := model.ChangeAttrViewLayout(blockID, avID, layoutType)
if err != nil {
ret.Code = -1
ret.Msg = err.Error()
c.JSON(http.StatusOK, ret)
return
}
ret = renderAttrView(avID, "", "", 1, -1)
c.JSON(http.StatusOK, ret)
}
func duplicateAttributeViewBlock(c *gin.Context) { func duplicateAttributeViewBlock(c *gin.Context) {
ret := gulu.Ret.NewResult() ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret) defer c.JSON(http.StatusOK, ret)
@ -532,10 +555,9 @@ func renderHistoryAttributeView(c *gin.Context) {
func renderAttributeView(c *gin.Context) { func renderAttributeView(c *gin.Context) {
ret := gulu.Ret.NewResult() ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret) arg, ok := util.JsonArg(c, ret)
if !ok { if !ok {
c.JSON(http.StatusOK, ret)
return return
} }
@ -563,7 +585,13 @@ func renderAttributeView(c *gin.Context) {
query = queryArg.(string) query = queryArg.(string)
} }
view, attrView, err := model.RenderAttributeView(id, viewID, query, page, pageSize) ret = renderAttrView(id, viewID, query, page, pageSize)
c.JSON(http.StatusOK, ret)
}
func renderAttrView(avID, viewID, query string, page, pageSize int) (ret *gulu.Result) {
ret = gulu.Ret.NewResult()
view, attrView, err := model.RenderAttributeView(avID, viewID, query, page, pageSize)
if err != nil { if err != nil {
ret.Code = -1 ret.Code = -1
ret.Msg = err.Error() ret.Msg = err.Error()
@ -602,6 +630,7 @@ func renderAttributeView(c *gin.Context) {
"view": view, "view": view,
"isMirror": av.IsMirror(attrView.ID), "isMirror": av.IsMirror(attrView.ID),
} }
return
} }
func getCurrentAttrViewImages(c *gin.Context) { func getCurrentAttrViewImages(c *gin.Context) {

View file

@ -455,6 +455,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/av/duplicateAttributeViewBlock", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, duplicateAttributeViewBlock) ginServer.Handle("POST", "/api/av/duplicateAttributeViewBlock", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, duplicateAttributeViewBlock)
ginServer.Handle("POST", "/api/av/appendAttributeViewDetachedBlocksWithValues", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, appendAttributeViewDetachedBlocksWithValues) ginServer.Handle("POST", "/api/av/appendAttributeViewDetachedBlocksWithValues", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, appendAttributeViewDetachedBlocksWithValues)
ginServer.Handle("POST", "/api/av/getCurrentAttrViewImages", model.CheckAuth, getCurrentAttrViewImages) ginServer.Handle("POST", "/api/av/getCurrentAttrViewImages", model.CheckAuth, getCurrentAttrViewImages)
ginServer.Handle("POST", "/api/av/changeAttrViewLayout", model.CheckAuth, changeAttrViewLayout)
ginServer.Handle("POST", "/api/ai/chatGPT", model.CheckAuth, model.CheckAdminRole, chatGPT) ginServer.Handle("POST", "/api/ai/chatGPT", model.CheckAuth, model.CheckAdminRole, chatGPT)
ginServer.Handle("POST", "/api/ai/chatGPTWithAction", model.CheckAuth, model.CheckAdminRole, chatGPTWithAction) ginServer.Handle("POST", "/api/ai/chatGPTWithAction", model.CheckAuth, model.CheckAdminRole, chatGPTWithAction)

View file

@ -53,25 +53,25 @@ func (tx *Transaction) doSetAttrViewBlockView(operation *Operation) (ret *TxErr)
} }
func (tx *Transaction) doChangeAttrViewLayout(operation *Operation) (ret *TxErr) { func (tx *Transaction) doChangeAttrViewLayout(operation *Operation) (ret *TxErr) {
err := changeAttrViewLayout(operation) err := ChangeAttrViewLayout(operation.BlockID, operation.AvID, operation.Layout)
if err != nil { if err != nil {
return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()} return &TxErr{code: TxErrWriteAttributeView, id: operation.AvID, msg: err.Error()}
} }
return return
} }
func changeAttrViewLayout(operation *Operation) (err error) { func ChangeAttrViewLayout(blockID, avID string, layout av.LayoutType) (err error) {
attrView, err := av.ParseAttributeView(operation.AvID) attrView, err := av.ParseAttributeView(avID)
if err != nil { if err != nil {
return return
} }
view, err := getAttrViewViewByBlockID(attrView, operation.BlockID) view, err := getAttrViewViewByBlockID(attrView, blockID)
if err != nil { if err != nil {
return return
} }
newLayout := operation.Layout newLayout := layout
if newLayout == view.LayoutType { if newLayout == view.LayoutType {
return return
} }