🐛 Fix unexpected paging of API getAttributeViewPrimaryKeyValues https://github.com/siyuan-note/siyuan/issues/12827

This commit is contained in:
Daniel 2024-10-19 12:25:30 +08:00
parent 3830988747
commit 50242026ec
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -209,28 +209,17 @@ func GetAttributeViewPrimaryKeyValues(avID, keyword string, page, pageSize int)
databaseBlockIDs = treenode.GetMirrorAttrViewBlockIDs(avID) databaseBlockIDs = treenode.GetMirrorAttrViewBlockIDs(avID)
keyValues = attrView.GetBlockKeyValues() keyValues = attrView.GetBlockKeyValues()
// 过滤掉不在视图中的值 var values []*av.Value
tmp := map[string]*av.Value{}
for _, kv := range keyValues.Values { for _, kv := range keyValues.Values {
for _, view := range attrView.Views { if !kv.IsDetached && !treenode.ExistBlockTree(kv.BlockID) {
switch view.LayoutType { continue
case av.LayoutTypeTable: }
if !kv.IsDetached {
if !treenode.ExistBlockTree(kv.BlockID) {
break
}
}
tmp[kv.Block.ID] = kv if strings.Contains(strings.ToLower(kv.String(true)), strings.ToLower(keyword)) {
} values = append(values, kv)
}
}
keyValues.Values = []*av.Value{}
for _, v := range tmp {
if strings.Contains(strings.ToLower(v.String(true)), strings.ToLower(keyword)) {
keyValues.Values = append(keyValues.Values, v)
} }
} }
keyValues.Values = values
if 1 > pageSize { if 1 > pageSize {
pageSize = 16 pageSize = 16