diff --git a/app/src/search/assets.ts b/app/src/search/assets.ts
index 46c037ec0..5a75ab562 100644
--- a/app/src/search/assets.ts
+++ b/app/src/search/assets.ts
@@ -46,7 +46,7 @@ export const openSearchAsset = (element: Element, isStick: boolean) => {
-
+
@@ -241,13 +241,6 @@ export const assetInputEvent = (element: Element, localSearch?: ISearchAssetOpti
}, Constants.TIMEOUT_INPUT);
};
-export const reIndexAssets = (loadingElement: HTMLElement) => {
- loadingElement.classList.remove("fn__none");
- fetchPost("/api/asset/fullReindexAssetContent", {}, (response) => {
- // assetInputEvent()
- });
-};
-
export const toggleAssetHistory = (historyElement: Element, searchInputElement: HTMLInputElement) => {
if (historyElement.classList.contains("fn__none")) {
const keys = window.siyuan.storage[Constants.LOCAL_SEARCHASSET].keys;
@@ -276,15 +269,15 @@ export const renderPreview = (element: Element, id: string, query: string, query
});
};
-export const assetMethodMenu = (target: HTMLElement, cb:() => void) => {
- const method = window.siyuan.storage[Constants.LOCAL_SEARCHASSET].method;
+export const assetMethodMenu = (target: HTMLElement, cb: () => void) => {
+ const method = window.siyuan.storage[Constants.LOCAL_SEARCHASSET].method;
if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
- window.siyuan.menus.menu.element.getAttribute("data-name") === "searchMethod") {
+ window.siyuan.menus.menu.element.getAttribute("data-name") === "searchAssetMethod") {
window.siyuan.menus.menu.remove();
return;
}
window.siyuan.menus.menu.remove();
- window.siyuan.menus.menu.element.setAttribute("data-name", "searchMethod");
+ window.siyuan.menus.menu.element.setAttribute("data-name", "searchAssetMethod");
window.siyuan.menus.menu.append(new MenuItem({
iconHTML: Constants.ZWSP,
label: window.siyuan.languages.keyword,
@@ -325,7 +318,7 @@ export const assetMethodMenu = (target: HTMLElement, cb:() => void) => {
window.siyuan.menus.menu.popup({x: rect.right, y: rect.bottom}, true);
};
-export const assetFilterMenu = (assetsElement:Element) => {
+export const assetFilterMenu = (assetsElement: Element) => {
const localData = window.siyuan.storage[Constants.LOCAL_SEARCHASSET].types;
const filterDialog = new Dialog({
title: window.siyuan.languages.type,
@@ -370,7 +363,7 @@ export const assetFilterMenu = (assetsElement:Element) => {
`,
- width: "520px",
+ width: "520px",
height: "70vh",
});
const btnsElement = filterDialog.element.querySelectorAll(".b3-button");
@@ -386,3 +379,105 @@ export const assetFilterMenu = (assetsElement:Element) => {
filterDialog.destroy();
});
};
+
+export const assetMoreMenu = (target: Element, element: Element, cb: () => void) => {
+ if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
+ window.siyuan.menus.menu.element.getAttribute("data-name") === "searchAssetMore") {
+ window.siyuan.menus.menu.remove();
+ return;
+ }
+ window.siyuan.menus.menu.remove();
+ window.siyuan.menus.menu.element.setAttribute("data-name", "searchAssetMore");
+ const localData = window.siyuan.storage[Constants.LOCAL_SEARCHASSET]
+ const sortMenu = [{
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.sortByRankAsc,
+ current: localData.sort === 1,
+ click() {
+ localData.sort = 1;
+ cb();
+ }
+ }, {
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.sortByRankDesc,
+ current: localData.sort === 0,
+ click() {
+ localData.sort = 0;
+ cb();
+ }
+ }, {
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.modifiedASC,
+ current: localData.sort === 3,
+ click() {
+ localData.sort = 3;
+ cb();
+ }
+ }, {
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.modifiedDESC,
+ current: localData.sort === 2,
+ click() {
+ localData.sort = 2;
+ cb();
+ }
+ }];
+ window.siyuan.menus.menu.append(new MenuItem({
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.sort,
+ type: "submenu",
+ submenu: sortMenu,
+ }).element);
+ window.siyuan.menus.menu.append(new MenuItem({
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.layout,
+ type: "submenu",
+ submenu: [{
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.topBottomLayout,
+ current: localData.layout === 0,
+ click() {
+ element.querySelector(".search__layout").classList.remove("search__layout--row");
+ const previewElement = element.querySelector("#searchAssetPreview") as HTMLInputElement
+ previewElement.style.width = "";
+ if (localData.row) {
+ previewElement.style.height = localData.row;
+ previewElement.classList.remove("fn__flex-1");
+ } else {
+ previewElement.classList.add("fn__flex-1");
+ }
+ localData.layout = 0;
+ setStorageVal(Constants.LOCAL_SEARCHASSET, window.siyuan.storage[Constants.LOCAL_SEARCHASSET]);
+ }
+ }, {
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.leftRightLayout,
+ current: localData.layout === 1,
+ click() {
+ const previewElement = element.querySelector("#searchAssetPreview") as HTMLInputElement
+ element.querySelector(".search__layout").classList.add("search__layout--row");
+ previewElement.style.height = "";
+ if (localData.col) {
+ previewElement.style.width = localData.col
+ previewElement.classList.remove("fn__flex-1");
+ } else {
+ previewElement.classList.add("fn__flex-1");
+ }
+ localData.layout = 1;
+ setStorageVal(Constants.LOCAL_SEARCHASSET, window.siyuan.storage[Constants.LOCAL_SEARCHASSET]);
+ }
+ }]
+ }).element);
+ window.siyuan.menus.menu.append(new MenuItem({
+ iconHTML: Constants.ZWSP,
+ label: window.siyuan.languages.rebuildIndex,
+ click() {
+ element.nextElementSibling.classList.remove("fn__none");
+ fetchPost("/api/asset/fullReindexAssetContent", {}, () => {
+ assetInputEvent(element, localData)
+ });
+ },
+ }).element);
+ const rect = target.getBoundingClientRect();
+ window.siyuan.menus.menu.popup({x: rect.right, y: rect.bottom}, true);
+}
diff --git a/app/src/search/util.ts b/app/src/search/util.ts
index aaabe74cd..c3103d2d0 100644
--- a/app/src/search/util.ts
+++ b/app/src/search/util.ts
@@ -26,7 +26,7 @@ import {upDownHint} from "../util/upDownHint";
import {
assetFilterMenu,
assetInputEvent,
- assetMethodMenu,
+ assetMethodMenu, assetMoreMenu,
openSearchAsset,
renderPreview,
toggleAssetHistory
@@ -636,6 +636,14 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo
event.stopPropagation();
event.preventDefault();
break;
+ } else if (target.id === "assetMore") {
+ assetMoreMenu(target, assetsElement, () => {
+ assetInputEvent(assetsElement);
+ setStorageVal(Constants.LOCAL_SEARCHASSET, window.siyuan.storage[Constants.LOCAL_SEARCHASSET]);
+ })
+ event.stopPropagation();
+ event.preventDefault();
+ break;
} else if (target.id === "assetFilter") {
assetFilterMenu(assetsElement);
event.stopPropagation();