浏览代码

:art: Database table view breadcrumb

Daniel 1 年之前
父节点
当前提交
d78a0205f5
共有 2 个文件被更改,包括 23 次插入0 次删除
  1. 2 0
      kernel/model/blockinfo.go
  2. 21 0
      kernel/treenode/node.go

+ 2 - 0
kernel/model/blockinfo.go

@@ -304,6 +304,8 @@ func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string) (ret []*BlockPa
 		name := util.EscapeHTML(parent.IALAttr("name"))
 		if ast.NodeDocument == parent.Type {
 			name = util.EscapeHTML(box.Name) + util.EscapeHTML(hPath)
+		} else if ast.NodeAttributeView == parent.Type {
+			name = treenode.GetAttributeViewName(parent.AttributeViewID)
 		} else {
 			if "" == name {
 				if ast.NodeListItem == parent.Type {

+ 21 - 0
kernel/treenode/node.go

@@ -475,6 +475,27 @@ func IsChartCodeBlockCode(code *ast.Node) bool {
 	return render.NoHighlight(language)
 }
 
+func GetAttributeViewName(avID string) (name string) {
+	if "" == avID {
+		return
+	}
+
+	attrView, err := av.ParseAttributeView(avID)
+	if nil != err {
+		logging.LogErrorf("parse attribute view [%s] failed: %s", avID, err)
+		return
+	}
+
+	buf := bytes.Buffer{}
+	for _, v := range attrView.Views {
+		buf.WriteString(v.Name)
+		buf.WriteByte(' ')
+	}
+
+	name = strings.TrimSpace(buf.String())
+	return
+}
+
 func getAttributeViewContent(avID string) (content string) {
 	if "" == avID {
 		return