mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-18 22:36:10 +01:00
🎨 Database filtering follows search case sensitive settings https://github.com/siyuan-note/siyuan/issues/16585
Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
parent
feaa7938ff
commit
e1ebb1f151
4 changed files with 38 additions and 9 deletions
|
|
@ -749,32 +749,50 @@ func filterTextContent(operator FilterOperator, valueContent, otherValueContent
|
|||
if "" == strings.TrimSpace(otherValueContent) {
|
||||
return true
|
||||
}
|
||||
return valueContent == otherValueContent
|
||||
if util.SearchCaseSensitive {
|
||||
return valueContent == otherValueContent
|
||||
}
|
||||
return strings.EqualFold(valueContent, otherValueContent)
|
||||
case FilterOperatorIsNotEqual:
|
||||
if "" == strings.TrimSpace(otherValueContent) {
|
||||
return true
|
||||
}
|
||||
return valueContent != otherValueContent
|
||||
if util.SearchCaseSensitive {
|
||||
return valueContent != otherValueContent
|
||||
}
|
||||
return !strings.EqualFold(valueContent, otherValueContent)
|
||||
case FilterOperatorContains:
|
||||
if "" == strings.TrimSpace(otherValueContent) {
|
||||
return true
|
||||
}
|
||||
return strings.Contains(valueContent, otherValueContent)
|
||||
if util.SearchCaseSensitive {
|
||||
return strings.Contains(valueContent, otherValueContent)
|
||||
}
|
||||
return strings.Contains(strings.ToLower(valueContent), strings.ToLower(otherValueContent))
|
||||
case FilterOperatorDoesNotContain:
|
||||
if "" == strings.TrimSpace(otherValueContent) {
|
||||
return true
|
||||
}
|
||||
return !strings.Contains(valueContent, otherValueContent)
|
||||
if util.SearchCaseSensitive {
|
||||
return !strings.Contains(valueContent, otherValueContent)
|
||||
}
|
||||
return !strings.Contains(strings.ToLower(valueContent), strings.ToLower(otherValueContent))
|
||||
case FilterOperatorStartsWith:
|
||||
if "" == strings.TrimSpace(otherValueContent) {
|
||||
return true
|
||||
}
|
||||
return strings.HasPrefix(valueContent, otherValueContent)
|
||||
if util.SearchCaseSensitive {
|
||||
return strings.HasPrefix(valueContent, otherValueContent)
|
||||
}
|
||||
return strings.HasPrefix(strings.ToLower(valueContent), strings.ToLower(otherValueContent))
|
||||
case FilterOperatorEndsWith:
|
||||
if "" == strings.TrimSpace(otherValueContent) {
|
||||
return true
|
||||
}
|
||||
return strings.HasSuffix(valueContent, otherValueContent)
|
||||
if util.SearchCaseSensitive {
|
||||
return strings.HasSuffix(valueContent, otherValueContent)
|
||||
}
|
||||
return strings.HasSuffix(strings.ToLower(valueContent), strings.ToLower(otherValueContent))
|
||||
case FilterOperatorIsEmpty:
|
||||
return "" == strings.TrimSpace(valueContent)
|
||||
case FilterOperatorIsNotEmpty:
|
||||
|
|
|
|||
|
|
@ -846,9 +846,16 @@ func filterByQuery(query string, collection av.Collection) {
|
|||
for _, cell := range item.GetValues() {
|
||||
allKeywordsHit := true
|
||||
for _, keyword := range keywords {
|
||||
if !strings.Contains(strings.ToLower(cell.String(true)), strings.ToLower(keyword)) {
|
||||
allKeywordsHit = false
|
||||
break
|
||||
if !util.SearchCaseSensitive {
|
||||
if !strings.Contains(strings.ToLower(cell.String(true)), strings.ToLower(keyword)) {
|
||||
allKeywordsHit = false
|
||||
break
|
||||
}
|
||||
} else {
|
||||
if !strings.Contains(cell.String(true), keyword) {
|
||||
allKeywordsHit = false
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if allKeywordsHit {
|
||||
|
|
|
|||
|
|
@ -376,6 +376,8 @@ func SetCaseSensitive(b bool) {
|
|||
} else {
|
||||
db.Exec("PRAGMA case_sensitive_like = OFF;")
|
||||
}
|
||||
|
||||
util.SearchCaseSensitive = b
|
||||
}
|
||||
|
||||
func SetIndexAssetPath(b bool) {
|
||||
|
|
|
|||
|
|
@ -479,3 +479,5 @@ const (
|
|||
EvtSQLHistoryRebuild = "sql.history.rebuild"
|
||||
EvtSQLAssetContentRebuild = "sql.assetContent.rebuild"
|
||||
)
|
||||
|
||||
var SearchCaseSensitive bool
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue