@@ -754,7 +754,7 @@ const addConfigMoreMenu = async (config: ISearchOption, edit: Protyle, element:
});
if (searchSubMenu.length > 0) {
window.siyuan.menus.menu.append(new MenuItem({
- label: window.siyuan.languages.useSearch,
+ label: window.siyuan.languages.useCriterion,
type: "submenu",
submenu: searchSubMenu
}).element);
diff --git a/kernel/api/router.go b/kernel/api/router.go
index c380dc70f..82bed79e7 100644
--- a/kernel/api/router.go
+++ b/kernel/api/router.go
@@ -60,6 +60,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/storage/removeLocalStorageVal", model.CheckAuth, removeLocalStorageVal)
ginServer.Handle("POST", "/api/storage/setCriterion", model.CheckAuth, setCriterion)
ginServer.Handle("POST", "/api/storage/getCriteria", model.CheckAuth, getCriteria)
+ ginServer.Handle("POST", "/api/storage/removeCriterion", model.CheckAuth, removeCriterion)
ginServer.Handle("POST", "/api/account/login", model.CheckAuth, login)
ginServer.Handle("POST", "/api/account/checkActivationcode", model.CheckAuth, checkActivationcode)
diff --git a/kernel/api/storage.go b/kernel/api/storage.go
index a2384225a..52bc177f0 100644
--- a/kernel/api/storage.go
+++ b/kernel/api/storage.go
@@ -25,6 +25,24 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
+func removeCriterion(c *gin.Context) {
+ ret := gulu.Ret.NewResult()
+ defer c.JSON(http.StatusOK, ret)
+
+ arg, ok := util.JsonArg(c, ret)
+ if !ok {
+ return
+ }
+
+ name := arg["name"].(string)
+ err := model.RemoveCriterion(name)
+ if nil != err {
+ ret.Code = -1
+ ret.Msg = err.Error()
+ return
+ }
+}
+
func setCriterion(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
diff --git a/kernel/conf/criterion.go b/kernel/conf/criterion.go
deleted file mode 100644
index b7bb65ed2..000000000
--- a/kernel/conf/criterion.go
+++ /dev/null
@@ -1,17 +0,0 @@
-// SiYuan - Build Your Eternal Digital Garden
-// Copyright (c) 2020-present, b3log.org
-//
-// This program is free software you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-
-package conf
diff --git a/kernel/model/storage.go b/kernel/model/storage.go
index 911fd79ed..f9478b3a4 100644
--- a/kernel/model/storage.go
+++ b/kernel/model/storage.go
@@ -59,6 +59,26 @@ type CriterionTypes struct {
var criteriaLock = sync.Mutex{}
+func RemoveCriterion(name string) (err error) {
+ criteriaLock.Lock()
+ defer criteriaLock.Unlock()
+
+ criteria, err := getCriteria()
+ if nil != err {
+ return
+ }
+
+ for i, c := range criteria {
+ if c.Name == name {
+ criteria = append(criteria[:i], criteria[i+1:]...)
+ break
+ }
+ }
+
+ err = setCriteria(criteria)
+ return
+}
+
func SetCriterion(criterion *Criterion) (err error) {
criteriaLock.Lock()
defer criteriaLock.Unlock()