diff --git a/app/src/search/spread.ts b/app/src/search/spread.ts
index def8268a5..85b480d90 100644
--- a/app/src/search/spread.ts
+++ b/app/src/search/spread.ts
@@ -134,8 +134,6 @@ export const openSearch = async (hotkey: string, key?: string, notebookId?: stri
-
-
@@ -306,14 +304,6 @@ export const openSearch = async (hotkey: string, key?: string, notebookId?: stri
inputEvent();
localStorage.setItem(Constants.LOCAL_SEARCHEDATA, JSON.stringify(localData));
});
- const searchCaseElement = dialog.element.querySelector("#searchCaseCheck");
- searchCaseElement.addEventListener("click", () => {
- searchCaseElement.classList.toggle("b3-button--cancel");
- fetchPost("/api/setting/setSearchCaseSensitive", {caseSensitive: !searchCaseElement.classList.contains("b3-button--cancel")}, () => {
- inputEvent();
- window.siyuan.config.search.caseSensitive = !searchCaseElement.classList.contains("b3-button--cancel");
- });
- });
const searchPanelElement = dialog.element.querySelector("#searchList");
const searchInputElement = dialog.element.querySelector("#searchInput") as HTMLInputElement;
const replaceInputElement = dialog.element.querySelector("#replaceInput") as HTMLInputElement;
diff --git a/kernel/api/router.go b/kernel/api/router.go
index 2ae9e4e39..edd133c66 100644
--- a/kernel/api/router.go
+++ b/kernel/api/router.go
@@ -228,7 +228,6 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/setting/getCustomCSS", model.CheckAuth, getCustomCSS)
ginServer.Handle("POST", "/api/setting/setCustomCSS", model.CheckAuth, setCustomCSS)
ginServer.Handle("POST", "/api/setting/setEmoji", model.CheckAuth, setEmoji)
- ginServer.Handle("POST", "/api/setting/setSearchCaseSensitive", model.CheckAuth, setSearchCaseSensitive)
ginServer.Handle("POST", "/api/graph/resetGraph", model.CheckAuth, resetGraph)
ginServer.Handle("POST", "/api/graph/resetLocalGraph", model.CheckAuth, resetLocalGraph)
diff --git a/kernel/api/setting.go b/kernel/api/setting.go
index 8aad7006d..a07ccf30a 100644
--- a/kernel/api/setting.go
+++ b/kernel/api/setting.go
@@ -207,9 +207,14 @@ func setSearch(c *gin.Context) {
s.Limit = 32
}
+ oldCaseSensitive := model.Conf.Search.CaseSensitive
+
model.Conf.Search = s
model.Conf.Save()
sql.SetCaseSensitive(s.CaseSensitive)
+ if s.CaseSensitive != oldCaseSensitive {
+ model.RefreshFileTree()
+ }
sql.ClearVirtualRefKeywords()
ret.Data = s
}
@@ -375,18 +380,3 @@ func setEmoji(c *gin.Context) {
model.Conf.Editor.Emoji = emoji
}
-
-func setSearchCaseSensitive(c *gin.Context) {
- ret := gulu.Ret.NewResult()
- defer c.JSON(http.StatusOK, ret)
-
- arg, ok := util.JsonArg(c, ret)
- if !ok {
- return
- }
-
- caseSensitive := arg["caseSensitive"].(bool)
- model.Conf.Search.CaseSensitive = caseSensitive
- model.Conf.Save()
- sql.SetCaseSensitive(caseSensitive)
-}
diff --git a/kernel/sql/database.go b/kernel/sql/database.go
index 13419b041..c8e2798ab 100644
--- a/kernel/sql/database.go
+++ b/kernel/sql/database.go
@@ -252,7 +252,10 @@ func initDBConnection() {
db.SetConnMaxLifetime(365 * 24 * time.Hour)
}
+var caseSensitive bool
+
func SetCaseSensitive(b bool) {
+ caseSensitive = b
if b {
db.Exec("PRAGMA case_sensitive_like = ON;")
} else {
diff --git a/kernel/sql/upsert.go b/kernel/sql/upsert.go
index 643ea1be4..97489c71c 100644
--- a/kernel/sql/upsert.go
+++ b/kernel/sql/upsert.go
@@ -124,9 +124,12 @@ func insertBlocks0(tx *sql.Tx, bulk []*Block) (err error) {
if err = prepareExecInsertTx(tx, stmt, valueArgs); nil != err {
return
}
- stmt = fmt.Sprintf(BlocksFTSCaseInsensitiveInsert, strings.Join(valueStrings, ","))
- if err = prepareExecInsertTx(tx, stmt, valueArgs); nil != err {
- return
+
+ if !caseSensitive {
+ stmt = fmt.Sprintf(BlocksFTSCaseInsensitiveInsert, strings.Join(valueStrings, ","))
+ if err = prepareExecInsertTx(tx, stmt, valueArgs); nil != err {
+ return
+ }
}
return
}