Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2024-03-06 17:16:41 +08:00
commit 38260b3c44
2 changed files with 24 additions and 15 deletions

View file

@ -37,8 +37,8 @@ func searchTableView(c *gin.Context) {
avID := arg["avID"].(string)
viewID := arg["viewID"].(string)
keyword := arg["keyword"].(string)
view, attrView, err := model.SearchTableView(avID, viewID, keyword)
query := arg["query"].(string)
view, attrView, err := model.SearchTableView(avID, viewID, query)
if nil != err {
ret.Code = -1
ret.Msg = err.Error()

View file

@ -39,7 +39,7 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func SearchTableView(avID, viewID, keyword string) (viewable av.Viewable, attrView *av.AttributeView, err error) {
func SearchTableView(avID, viewID, query string) (viewable av.Viewable, attrView *av.AttributeView, err error) {
if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) {
attrView = av.NewAttributeView(avID)
if err = av.SaveAttributeView(attrView); nil != err {
@ -54,7 +54,28 @@ func SearchTableView(avID, viewID, keyword string) (viewable av.Viewable, attrVi
return
}
keywords := strings.Split(query, " ")
viewable, err = renderAttributeView(attrView, viewID, 1, -1)
var rows []*av.TableRow
switch viewable.GetType() {
case av.LayoutTypeTable:
table := viewable.(*av.Table)
for _, row := range table.Rows {
hit := false
for _, cell := range row.Cells {
for _, keyword := range keywords {
if strings.Contains(strings.ToLower(cell.Value.String()), strings.ToLower(keyword)) {
hit = true
break
}
}
}
if hit {
rows = append(rows, row)
}
}
table.Rows = rows
}
return
}
@ -1663,18 +1684,6 @@ func setAttributeViewFilters(operation *Operation) (err error) {
}
}
for _, filter := range view.Table.Filters {
var key *av.Key
key, err = attrView.GetKey(filter.Column)
if nil != err {
return
}
if nil != filter.Value {
filter.Value.Type = key.Type
}
}
err = av.SaveAttributeView(attrView)
return
}