mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 23:20:13 +01:00
🎨 Add Relation and Rollup column to database table view https://github.com/siyuan-note/siyuan/issues/9888
This commit is contained in:
parent
87096f9671
commit
62e92c0e6b
3 changed files with 87 additions and 0 deletions
|
|
@ -37,6 +37,63 @@ import (
|
|||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
)
|
||||
|
||||
type SearchAttributeViewResult struct {
|
||||
AvID string `json:"avID"`
|
||||
AvName string `json:"avName"`
|
||||
BlockID string `json:"blockID"`
|
||||
}
|
||||
|
||||
func SearchAttributeView(keyword string, page int, pageSize int) (ret []*SearchAttributeViewResult, pageCount int) {
|
||||
waitForSyncingStorages()
|
||||
|
||||
ret = []*SearchAttributeViewResult{}
|
||||
blocks, _, _, pageCount := FullTextSearchBlock(keyword, nil, nil, map[string]bool{"databaseBlock": true}, 0, 7, 0, page, pageSize)
|
||||
trees := map[string]*parse.Tree{}
|
||||
for _, block := range blocks {
|
||||
tree := trees[block.RootID]
|
||||
if nil == tree {
|
||||
tree, _ = loadTreeByBlockID(block.ID)
|
||||
if nil != tree {
|
||||
trees[block.RootID] = tree
|
||||
}
|
||||
}
|
||||
if nil == tree {
|
||||
continue
|
||||
}
|
||||
|
||||
node := treenode.GetNodeInTree(tree, block.ID)
|
||||
if nil == node {
|
||||
continue
|
||||
}
|
||||
|
||||
if "" == node.AttributeViewID {
|
||||
continue
|
||||
}
|
||||
|
||||
avID := node.AttributeViewID
|
||||
attrView, _ := av.ParseAttributeView(avID)
|
||||
if nil == attrView {
|
||||
continue
|
||||
}
|
||||
|
||||
exist := false
|
||||
for _, result := range ret {
|
||||
if result.AvID == avID {
|
||||
exist = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !exist {
|
||||
ret = append(ret, &SearchAttributeViewResult{
|
||||
AvID: avID,
|
||||
AvName: attrView.Name,
|
||||
BlockID: block.ID,
|
||||
})
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
type BlockAttributeViewKeys struct {
|
||||
AvID string `json:"avID"`
|
||||
AvName string `json:"avName"`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue