🎨 Support listing for invalid block references in the search dialog https://github.com/siyuan-note/siyuan/issues/10396

This commit is contained in:
Daniel 2024-02-28 22:37:11 +08:00
parent af03c658f0
commit da9772f003
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017
2 changed files with 15 additions and 5 deletions

View File

@ -43,7 +43,7 @@ func listInvalidBlockRefs(c *gin.Context) {
page = 1 page = 1
} }
pageSize := 32 pageSize := 6
if nil != arg["pageSize"] { if nil != arg["pageSize"] {
pageSize = int(arg["pageSize"].(float64)) pageSize = int(arg["pageSize"].(float64))
} }

View File

@ -153,6 +153,7 @@ func ListInvalidBlockRefs(page, pageSize int) (ret []*Block, matchedBlockCount,
invalidBlockIDs = gulu.Str.RemoveDuplicatedElem(invalidBlockIDs) invalidBlockIDs = gulu.Str.RemoveDuplicatedElem(invalidBlockIDs)
sort.Strings(invalidBlockIDs) sort.Strings(invalidBlockIDs)
allInvalidBlockIDs := invalidBlockIDs
start := (page - 1) * pageSize start := (page - 1) * pageSize
end := page * pageSize end := page * pageSize
@ -162,17 +163,26 @@ func ListInvalidBlockRefs(page, pageSize int) (ret []*Block, matchedBlockCount,
invalidBlockIDs = invalidBlockIDs[start:end] invalidBlockIDs = invalidBlockIDs[start:end]
sqlBlocks := sql.GetBlocks(invalidBlockIDs) sqlBlocks := sql.GetBlocks(invalidBlockIDs)
var tmp []*sql.Block
for _, sqlBlock := range sqlBlocks {
if nil != sqlBlock {
tmp = append(tmp, sqlBlock)
}
}
sqlBlocks = tmp
ret = fromSQLBlocks(&sqlBlocks, "", 36) ret = fromSQLBlocks(&sqlBlocks, "", 36)
if 1 > len(ret) { if 1 > len(ret) {
ret = []*Block{} ret = []*Block{}
} }
matchedBlockCount = len(ret) matchedBlockCount = len(allInvalidBlockIDs)
rootCount := map[string]bool{} rootCount := map[string]bool{}
for _, block := range ret { for _, id := range allInvalidBlockIDs {
if nil == block { bt := treenode.GetBlockTree(id)
if nil == bt {
continue continue
} }
rootCount[block.RootID] = true rootCount[bt.RootID] = true
} }
matchedRootCount = len(rootCount) matchedRootCount = len(rootCount)
pageCount = (matchedBlockCount + pageSize - 1) / pageSize pageCount = (matchedBlockCount + pageSize - 1) / pageSize