diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 680ca10f8..18347af4a 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -145,7 +145,7 @@
"sortByRankDesc": "Relevance DESC",
"sortByRankAsc": "Relevance ASC",
"saveCriterion": "Save query criteria",
- "useCriterion": "Use query criteria",
+ "useCriterion": "After clearing, the last query condition can be used",
"removeCriterion": "Remove query criteria",
"group": "Group",
"noGroupBy": "No grouping",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 23f30c232..69d3367fc 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -145,7 +145,7 @@
"sortByRankDesc": "Relevancia DESC",
"sortByRankAsc": "Relevancia ASC",
"saveCriterion": "Guardar criterios de consulta",
- "useCriterion": "Usar criterios de consulta",
+ "useCriterion": "Después de borrar, se puede usar la última condición de consulta",
"removeCriterion": "Eliminar criterios de consulta",
"grupo": "Grupo",
"noGroupBy": "Sin agrupar",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index e03c1e8cf..887a222ad 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -145,7 +145,7 @@
"sortByRankDesc": "DESC de pertinence",
"sortByRankAsc": "ASC de pertinence",
"saveCriterion": "Enregistrer les critères de requête",
- "useCriterion": "Utiliser les critères de requête",
+ "useCriterion": "Après effacement, la dernière condition de requête peut être utilisée",
"removeCriterion": "Supprimer les critères de requête",
"groupe": "Groupe",
"noGroupBy": "Aucun regroupement",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index be6ce9a4b..0b7e34eab 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -145,7 +145,7 @@
"sortByRankDesc": "按相關度降序",
"sortByRankAsc": "按相關度升序",
"saveCriterion": "保存查詢條件",
- "useCriterion": "使用查詢條件",
+ "useCriterion": "清空後可使用上一次的查詢條件",
"removeCriterion": "清空查詢條件",
"group": "分組",
"noGroupBy": "不分組",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 574708ba8..6ec3f8e18 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -145,7 +145,7 @@
"sortByRankDesc": "按相关度降序",
"sortByRankAsc": "按相关度升序",
"saveCriterion": "保存查询条件",
- "useCriterion": "使用查询条件",
+ "useCriterion": "清空后可使用上一次的查询条件",
"removeCriterion": "清空查询条件",
"group": "分组",
"noGroupBy": "不分组",
diff --git a/app/src/mobile/menu/search.ts b/app/src/mobile/menu/search.ts
index 487b0e331..17af0d901 100644
--- a/app/src/mobile/menu/search.ts
+++ b/app/src/mobile/menu/search.ts
@@ -319,10 +319,8 @@ const initSearchEvent = (app: App, element: Element, config: ISearchOption) => {
});
if (target.parentElement.parentElement.childElementCount === 1) {
target.parentElement.parentElement.classList.add("fn__none");
- target.parentElement.remove();
- } else {
- target.parentElement.remove();
}
+ target.parentElement.remove();
event.stopPropagation();
event.preventDefault();
break;
@@ -546,7 +544,7 @@ export const popSearch = (app: App, config = window.siyuan.storage[Constants.LOC
-
+
diff --git a/app/src/search/menu.ts b/app/src/search/menu.ts
index b7bb6b8fd..5b5654f13 100644
--- a/app/src/search/menu.ts
+++ b/app/src/search/menu.ts
@@ -180,6 +180,55 @@ export const queryMenu = (config: ISearchOption, cb: () => void) => {
}).element);
};
+export const saveCriterion = (config: ISearchOption,
+ criteriaData: ISearchOption[],
+ element: Element,) => {
+ const saveDialog = new Dialog({
+ title: window.siyuan.languages.saveCriterion,
+ content: `
+
+
+
+
+
+
`,
+ width: isMobile() ? "92vw" : "520px",
+ });
+ const btnsElement = saveDialog.element.querySelectorAll(".b3-button");
+ saveDialog.bindInput(saveDialog.element.querySelector("input"), () => {
+ btnsElement[1].dispatchEvent(new CustomEvent("click"));
+ });
+ btnsElement[0].addEventListener("click", () => {
+ saveDialog.destroy();
+ });
+ btnsElement[1].addEventListener("click", () => {
+ const value = saveDialog.element.querySelector("input").value;
+ if (!value) {
+ showMessage(window.siyuan.languages["_kernel"]["142"]);
+ return;
+ }
+ if (isMobile()) {
+ config.k = (document.querySelector("#toolbarSearch") as HTMLInputElement).value;
+ config.r = (element.querySelector("#toolbarReplace") as HTMLInputElement).value;
+ } else {
+ config.k = (element.querySelector("#searchInput") as HTMLInputElement).value;
+ config.r = (element.querySelector("#replaceInput") as HTMLInputElement).value;
+ }
+ config.removed = false;
+ const criterion = config;
+ criterion.name = value;
+ criteriaData.push(Object.assign({}, criterion));
+ window.siyuan.storage[Constants.LOCAL_SEARCHDATA] = Object.assign({}, config);
+ setStorageVal(Constants.LOCAL_SEARCHDATA, window.siyuan.storage[Constants.LOCAL_SEARCHDATA]);
+ fetchPost("/api/storage/setCriterion", {criterion}, () => {
+ saveDialog.destroy();
+ const criteriaElement = element.querySelector("#criteria");
+ criteriaElement.classList.remove("fn__none");
+ criteriaElement.firstElementChild.insertAdjacentHTML("beforeend", `
${criterion.name}
`);
+ });
+ });
+}
+
export const moreMenu = async (config: ISearchOption,
criteriaData: ISearchOption[],
element: Element,
@@ -306,50 +355,7 @@ export const moreMenu = async (config: ISearchOption,
label: window.siyuan.languages.saveCriterion,
iconHTML: Constants.ZWSP,
click() {
- const saveDialog = new Dialog({
- title: window.siyuan.languages.saveCriterion,
- content: `
-
-
-
-
-
-
`,
- width: isMobile() ? "92vw" : "520px",
- });
- const btnsElement = saveDialog.element.querySelectorAll(".b3-button");
- saveDialog.bindInput(saveDialog.element.querySelector("input"), () => {
- btnsElement[1].dispatchEvent(new CustomEvent("click"));
- });
- btnsElement[0].addEventListener("click", () => {
- saveDialog.destroy();
- });
- btnsElement[1].addEventListener("click", () => {
- const value = saveDialog.element.querySelector("input").value;
- if (!value) {
- showMessage(window.siyuan.languages["_kernel"]["142"]);
- return;
- }
- if (isMobile()) {
- config.k = (document.querySelector("#toolbarSearch") as HTMLInputElement).value;
- config.r = (element.querySelector("#toolbarReplace") as HTMLInputElement).value;
- } else {
- config.k = (element.querySelector("#searchInput") as HTMLInputElement).value;
- config.r = (element.querySelector("#replaceInput") as HTMLInputElement).value;
- }
- config.removed = false;
- const criterion = config;
- criterion.name = value;
- criteriaData.push(Object.assign({}, criterion));
- window.siyuan.storage[Constants.LOCAL_SEARCHDATA] = Object.assign({}, config);
- setStorageVal(Constants.LOCAL_SEARCHDATA, window.siyuan.storage[Constants.LOCAL_SEARCHDATA]);
- fetchPost("/api/storage/setCriterion", {criterion}, () => {
- saveDialog.destroy();
- const criteriaElement = element.querySelector("#criteria");
- criteriaElement.classList.remove("fn__none");
- criteriaElement.insertAdjacentHTML("beforeend", `
${criterion.name}
`);
- });
- });
+ saveCriterion(config, criteriaData, element);
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
@@ -368,12 +374,25 @@ export const initCriteriaMenu = (element: HTMLElement, data: ISearchOption[]) =>
data.push(item);
html += `
${escapeHtml(item.name)}
`;
});
- element.innerHTML = html;
+ /// #if MOBILE
+ element.innerHTML = `
+ ${html}
+
`;
if (html === "") {
element.classList.add("fn__none");
} else {
element.classList.remove("fn__none");
}
+ /// #else
+ element.innerHTML = `
+ ${html}
+
+
+
+
+
+
`;
+ /// #endif
});
};
diff --git a/app/src/search/util.ts b/app/src/search/util.ts
index 8ca9d0f19..a78b863e1 100644
--- a/app/src/search/util.ts
+++ b/app/src/search/util.ts
@@ -16,7 +16,7 @@ import {hasClosestByClassName} from "../protyle/util/hasClosest";
import {setStorageVal, updateHotkeyTip} from "../protyle/util/compatibility";
import {newFileByName} from "../util/newFile";
import {matchHotKey} from "../protyle/util/hotKey";
-import {filterMenu, getKeyByLiElement, initCriteriaMenu, moreMenu, queryMenu} from "./menu";
+import {filterMenu, getKeyByLiElement, initCriteriaMenu, moreMenu, queryMenu, saveCriterion} from "./menu";
import {App} from "../index";
const saveKeyList = (type: "keys" | "replaceKeys", value: string) => {
@@ -128,7 +128,7 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo
-
+
@@ -268,7 +268,42 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo
const searchPathInputElement = element.querySelector("#searchPathInput");
while (target && !target.isSameNode(element)) {
const type = target.getAttribute("data-type");
- if (type === "next") {
+ if (type === "removeCriterion") {
+ updateConfig(element, {
+ removed: true,
+ sort: 0,
+ group: 0,
+ hasReplace: false,
+ method: 0,
+ hPath: "",
+ idPath: [],
+ k: "",
+ r: "",
+ page: 1,
+ types: {
+ document: window.siyuan.config.search.document,
+ heading: window.siyuan.config.search.heading,
+ list: window.siyuan.config.search.list,
+ listItem: window.siyuan.config.search.listItem,
+ codeBlock: window.siyuan.config.search.codeBlock,
+ htmlBlock: window.siyuan.config.search.htmlBlock,
+ mathBlock: window.siyuan.config.search.mathBlock,
+ table: window.siyuan.config.search.table,
+ blockquote: window.siyuan.config.search.blockquote,
+ superBlock: window.siyuan.config.search.superBlock,
+ paragraph: window.siyuan.config.search.paragraph,
+ embedBlock: window.siyuan.config.search.embedBlock,
+ }
+ }, config, edit, app);
+ event.stopPropagation();
+ event.preventDefault();
+ break;
+ } else if (type === "saveCriterion") {
+ saveCriterion(config, criteriaData, element);
+ event.stopPropagation();
+ event.preventDefault();
+ break;
+ } else if (type === "next") {
if (!target.getAttribute("disabled")) {
config.page++;
inputTimeout = inputEvent(element, config, inputTimeout, edit, app);
@@ -304,12 +339,7 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo
return true;
}
});
- if (target.parentElement.parentElement.childElementCount === 1) {
- target.parentElement.parentElement.classList.add("fn__none");
- target.parentElement.remove();
- } else {
- target.parentElement.remove();
- }
+ target.parentElement.remove();
event.stopPropagation();
event.preventDefault();
break;