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 }