diff --git a/kernel/api/av.go b/kernel/api/av.go index b00a98164..84e1344d9 100644 --- a/kernel/api/av.go +++ b/kernel/api/av.go @@ -80,7 +80,7 @@ func changeAttrViewLayout(c *gin.Context) { return } - ret = renderAttrView(avID, "", "", 1, -1) + ret = renderAttrView(blockID, avID, "", "", 1, -1) c.JSON(http.StatusOK, ret) } @@ -596,6 +596,11 @@ func renderAttributeView(c *gin.Context) { } id := arg["id"].(string) + blockIDArg := arg["blockID"] + var blockID string + if nil != blockIDArg { + blockID = blockIDArg.(string) + } viewIDArg := arg["viewID"] var viewID string if nil != viewIDArg { @@ -619,13 +624,13 @@ func renderAttributeView(c *gin.Context) { query = queryArg.(string) } - ret = renderAttrView(id, viewID, query, page, pageSize) + ret = renderAttrView(blockID, id, viewID, query, page, pageSize) 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() - view, attrView, err := model.RenderAttributeView(avID, viewID, query, page, pageSize) + view, attrView, err := model.RenderAttributeView(blockID, avID, viewID, query, page, pageSize) if err != nil { ret.Code = -1 ret.Msg = err.Error() diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 41c47c9aa..4d20613dc 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -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 } @@ -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 } -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() if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) { @@ -1348,7 +1348,7 @@ func RenderAttributeView(avID, viewID, query string, page, pageSize int) (viewab return } - viewable, err = renderAttributeView(attrView, viewID, query, page, pageSize) + viewable, err = renderAttributeView(attrView, blockID, viewID, query, page, pageSize) return } @@ -1358,7 +1358,7 @@ const ( 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) { view, _, _ := av.NewTableViewWithBlockKey(ast.NewNodeID()) 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 if "" != viewID { view, _ = attrView.GetCurrentView(viewID)