From 0db807cea841f9ad122ffc9b4524a5521aa5efac Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 16 Sep 2022 09:20:36 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=90=9C=E7=B4=A2=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E6=A0=B9=E6=8D=AE=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=E5=8D=95=E7=8B=AC=E5=BB=BA=E7=AB=8B=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=20Fix=20https://github.com/siyuan-note/siyuan/issues/5889?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/search/spread.ts | 10 ---------- kernel/api/router.go | 1 - kernel/api/setting.go | 20 +++++--------------- kernel/sql/database.go | 3 +++ kernel/sql/upsert.go | 9 ++++++--- 5 files changed, 14 insertions(+), 29 deletions(-) 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 }