🎨 Fixed mirroring database display view https://github.com/siyuan-note/siyuan/issues/15279

This commit is contained in:
Daniel 2025-07-15 17:22:40 +08:00
parent 62f0f05cef
commit 6efdc23573
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 25 additions and 9 deletions

View file

@ -80,7 +80,7 @@ func changeAttrViewLayout(c *gin.Context) {
return return
} }
ret = renderAttrView(avID, "", "", 1, -1) ret = renderAttrView(blockID, avID, "", "", 1, -1)
c.JSON(http.StatusOK, ret) c.JSON(http.StatusOK, ret)
} }
@ -596,6 +596,11 @@ func renderAttributeView(c *gin.Context) {
} }
id := arg["id"].(string) id := arg["id"].(string)
blockIDArg := arg["blockID"]
var blockID string
if nil != blockIDArg {
blockID = blockIDArg.(string)
}
viewIDArg := arg["viewID"] viewIDArg := arg["viewID"]
var viewID string var viewID string
if nil != viewIDArg { if nil != viewIDArg {
@ -619,13 +624,13 @@ func renderAttributeView(c *gin.Context) {
query = queryArg.(string) query = queryArg.(string)
} }
ret = renderAttrView(id, viewID, query, page, pageSize) ret = renderAttrView(blockID, id, viewID, query, page, pageSize)
c.JSON(http.StatusOK, ret) c.JSON(http.StatusOK, ret)
} }
func renderAttrView(avID, viewID, query string, page, pageSize int) (ret *gulu.Result) { func renderAttrView(blockID, avID, viewID, query string, page, pageSize int) (ret *gulu.Result) {
ret = gulu.Ret.NewResult() ret = gulu.Ret.NewResult()
view, attrView, err := model.RenderAttributeView(avID, viewID, query, page, pageSize) view, attrView, err := model.RenderAttributeView(blockID, 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()

View file

@ -1284,7 +1284,7 @@ func RenderRepoSnapshotAttributeView(indexID, avID string) (viewable av.Viewable
} }
} }
viewable, err = renderAttributeView(attrView, "", "", 1, -1) viewable, err = renderAttributeView(attrView, "", "", "", 1, -1)
return return
} }
@ -1327,11 +1327,11 @@ func RenderHistoryAttributeView(avID, created string) (viewable av.Viewable, att
} }
} }
viewable, err = renderAttributeView(attrView, "", "", 1, -1) viewable, err = renderAttributeView(attrView, "", "", "", 1, -1)
return return
} }
func RenderAttributeView(avID, viewID, query string, page, pageSize int) (viewable av.Viewable, attrView *av.AttributeView, err error) { func RenderAttributeView(blockID, avID, viewID, query string, page, pageSize int) (viewable av.Viewable, attrView *av.AttributeView, err error) {
waitForSyncingStorages() waitForSyncingStorages()
if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) { if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) {
@ -1348,7 +1348,7 @@ func RenderAttributeView(avID, viewID, query string, page, pageSize int) (viewab
return return
} }
viewable, err = renderAttributeView(attrView, viewID, query, page, pageSize) viewable, err = renderAttributeView(attrView, blockID, viewID, query, page, pageSize)
return return
} }
@ -1358,7 +1358,7 @@ const (
groupNameNext7Days, groupNameNext30Days = "_@next7Days@_", "_@next30Days@_" groupNameNext7Days, groupNameNext30Days = "_@next7Days@_", "_@next30Days@_"
) )
func renderAttributeView(attrView *av.AttributeView, viewID, query string, page, pageSize int) (viewable av.Viewable, err error) { func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query string, page, pageSize int) (viewable av.Viewable, err error) {
if 1 > len(attrView.Views) { if 1 > len(attrView.Views) {
view, _, _ := av.NewTableViewWithBlockKey(ast.NewNodeID()) view, _, _ := av.NewTableViewWithBlockKey(ast.NewNodeID())
attrView.Views = append(attrView.Views, view) attrView.Views = append(attrView.Views, view)
@ -1369,6 +1369,17 @@ func renderAttributeView(attrView *av.AttributeView, viewID, query string, page,
} }
} }
if "" == viewID && "" != blockID {
if "" != blockID {
node, _, getErr := getNodeByBlockID(nil, blockID)
if nil != getErr {
logging.LogWarnf("get node by block ID [%s] failed: %s", blockID, getErr)
} else {
viewID = node.IALAttr(av.NodeAttrView)
}
}
}
var view *av.View var view *av.View
if "" != viewID { if "" != viewID {
view, _ = attrView.GetCurrentView(viewID) view, _ = attrView.GetCurrentView(viewID)