mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-03-04 11:50:15 +01:00
This commit is contained in:
parent
398afa854f
commit
2640412667
6 changed files with 55 additions and 19 deletions
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"searchOverwrite": "The query name is duplicated, do you want to overwrite it?",
|
||||
"onepay": "PRO",
|
||||
"format": "Number format",
|
||||
"numberFormatNone": "Number",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"searchOverwrite": "El nombre de la consulta está duplicado, ¿quieres sobrescribirlo?",
|
||||
"onepay": "PRO",
|
||||
"format": "Formato de número",
|
||||
"numberFormatNone": "Número",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"searchOverwrite": "Le nom de la requête est dupliqué, voulez-vous l'écraser ?",
|
||||
"onepay": "PRO",
|
||||
"format": "Format des nombres",
|
||||
"numberFormatNone": "Numéro",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"searchOverwrite": "查詢名稱重複,是否進行覆蓋?",
|
||||
"onepay": "功能特性",
|
||||
"format": "格式化",
|
||||
"numberFormatNone": "數字",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"searchOverwrite": "查询名称重复,是否进行覆盖?",
|
||||
"onepay": "功能特性",
|
||||
"format": "格式化",
|
||||
"numberFormatNone": "数字",
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import {showMessage} from "../dialog/message";
|
|||
import {fetchPost} from "../util/fetch";
|
||||
import {escapeHtml} from "../util/escape";
|
||||
import {setStorageVal} from "../protyle/util/compatibility";
|
||||
import {confirmDialog} from "../dialog/confirmDialog";
|
||||
|
||||
export const filterMenu = (config: ISearchOption, cb: () => void) => {
|
||||
const filterDialog = new Dialog({
|
||||
|
|
@ -186,9 +187,35 @@ export const queryMenu = (config: ISearchOption, cb: () => void) => {
|
|||
}).element);
|
||||
};
|
||||
|
||||
const saveCriterionData = (config: ISearchOption,
|
||||
criteriaData: ISearchOption[],
|
||||
element: Element,
|
||||
value: string,
|
||||
saveDialog: Dialog) => {
|
||||
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").firstElementChild;
|
||||
criteriaElement.querySelector(".b3-chip--current")?.classList.remove("b3-chip--current");
|
||||
criteriaElement.insertAdjacentHTML("beforeend", `<div data-type="set-criteria" class="b3-chip b3-chip--current b3-chip--middle b3-chip--pointer b3-chip--${["secondary", "primary", "info", "success", "warning", "error", ""][(criteriaElement.childElementCount) % 7]}">${criterion.name}<svg class="b3-chip__close" data-type="remove-criteria"><use xlink:href="#iconCloseRound"></use></svg></div>`);
|
||||
});
|
||||
}
|
||||
|
||||
export const saveCriterion = (config: ISearchOption,
|
||||
criteriaData: ISearchOption[],
|
||||
element: Element,) => {
|
||||
element: Element) => {
|
||||
const saveDialog = new Dialog({
|
||||
title: window.siyuan.languages.saveCriterion,
|
||||
content: `<div class="b3-dialog__content">
|
||||
|
|
@ -213,26 +240,30 @@ export const saveCriterion = (config: ISearchOption,
|
|||
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;
|
||||
const hasSame = criteriaData.find(item => {
|
||||
if (item.name === value) {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
if (hasSame) {
|
||||
confirmDialog(window.siyuan.languages.confirm, window.siyuan.languages.searchOverwrite, () => {
|
||||
const criteriaElement = element.querySelector("#criteria").firstElementChild;
|
||||
Array.from(criteriaElement.children).forEach(item => {
|
||||
if (item.textContent === value) {
|
||||
item.remove();
|
||||
}
|
||||
});
|
||||
criteriaData.find((item, index) => {
|
||||
if (item.name === value) {
|
||||
criteriaData.splice(index, 1);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
saveCriterionData(config, criteriaData, element, value, saveDialog);
|
||||
});
|
||||
} else {
|
||||
config.k = (element.querySelector("#searchInput") as HTMLInputElement).value;
|
||||
config.r = (element.querySelector("#replaceInput") as HTMLInputElement).value;
|
||||
saveCriterionData(config, criteriaData, element, value, saveDialog);
|
||||
}
|
||||
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.querySelector(".b3-chip--current")?.classList.remove("b3-chip--current");
|
||||
criteriaElement.classList.remove("fn__none");
|
||||
criteriaElement.firstElementChild.insertAdjacentHTML("beforeend", `<div data-type="set-criteria" class="b3-chip b3-chip--current b3-chip--middle b3-chip--pointer b3-chip--${["secondary", "primary", "info", "success", "warning", "error", ""][(criteriaElement.firstElementChild.childElementCount) % 7]}">${criterion.name}<svg class="b3-chip__close" data-type="remove-criteria"><use xlink:href="#iconCloseRound"></use></svg></div>`);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue