diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index 65d071cad..8a8b982a1 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -13,6 +13,7 @@ import {hideElements} from "../../ui/hideElements"; import {focusByRange} from "../../util/selection"; import {writeText} from "../../util/compatibility"; import {showMessage} from "../../../dialog/message"; +import {previewImage} from "../../preview/image"; export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLElement }) => { const blockElement = hasClosestBlock(event.target); @@ -118,13 +119,23 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle const linkElement = hasClosestByClassName(event.target, "av__celltext--url"); if (linkElement) { - let prefix = ""; + let linkAddress = linkElement.textContent.trim(); if (linkElement.dataset.type === "phone") { - prefix = "tel:"; + linkAddress = "tel:" + linkAddress; } else if (linkElement.dataset.type === "email") { - prefix = "mailto:"; + linkAddress = "mailto:" + linkAddress; + } else if (linkElement.classList.contains("b3-chip")) { + linkAddress = linkElement.dataset.url; } - window.open(prefix + linkElement.textContent.trim()); + window.open(linkAddress); + event.preventDefault(); + event.stopPropagation(); + return true; + } + + const imgElement = hasClosestByClassName(event.target, "av__cellassetimg") as HTMLImageElement + if (imgElement) { + previewImage(imgElement.src); event.preventDefault(); event.stopPropagation(); return true; diff --git a/app/src/protyle/render/av/col.ts b/app/src/protyle/render/av/col.ts index 311c3d218..6209633fd 100644 --- a/app/src/protyle/render/av/col.ts +++ b/app/src/protyle/render/av/col.ts @@ -379,48 +379,50 @@ export const showColMenu = (protyle: IProtyle, blockElement: Element, cellElemen }); } }); - menu.addItem({ - icon: "iconFilter", - label: window.siyuan.languages.filter, - click() { - fetchPost("/api/av/renderAttributeView", { - id: avID, - nodeID - }, (response) => { - const avData = response.data as IAV; - let filter: IAVFilter; - avData.view.filters.find((item) => { - if (item.column === colId) { - filter = item; - return true; + if (type !== "mAsset") { + menu.addItem({ + icon: "iconFilter", + label: window.siyuan.languages.filter, + click() { + fetchPost("/api/av/renderAttributeView", { + id: avID, + nodeID + }, (response) => { + const avData = response.data as IAV; + let filter: IAVFilter; + avData.view.filters.find((item) => { + if (item.column === colId) { + filter = item; + return true; + } + }); + if (!filter) { + filter = { + column: colId, + operator: getDefaultOperatorByType(type), + value: genCellValue(type, "") + }; + avData.view.filters.push(filter); + transaction(protyle, [{ + action: "setAttrViewFilters", + avID, + data: [filter] + }], [{ + action: "setAttrViewFilters", + avID, + data: [] + }]); } + setFilter({ + filter, + protyle, + data: avData, + target: blockElement.querySelector(`.av__row--header .av__cell[data-col-id="${colId}"]`), + }); }); - if (!filter) { - filter = { - column: colId, - operator: getDefaultOperatorByType(type), - value: genCellValue(type, "") - }; - avData.view.filters.push(filter); - transaction(protyle, [{ - action: "setAttrViewFilters", - avID, - data: [filter] - }], [{ - action: "setAttrViewFilters", - avID, - data: [] - }]); - } - setFilter({ - filter, - protyle, - data: avData, - target: blockElement.querySelector(`.av__row--header .av__cell[data-col-id="${colId}"]`), - }); - }); - } - }); + } + }); + } menu.addSeparator(); if (type !== "block") { menu.addItem({ diff --git a/app/src/protyle/render/av/filter.ts b/app/src/protyle/render/av/filter.ts index 175841d17..74022c43f 100644 --- a/app/src/protyle/render/av/filter.ts +++ b/app/src/protyle/render/av/filter.ts @@ -301,7 +301,7 @@ export const addFilter = (options: { return true; } }); - if (!hasFilter) { + if (!hasFilter && column.type !== "mAsset") { menu.addItem({ label: column.name, icon: getColIconByType(column.type), diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index 057d02af2..405a1ea91 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -103,7 +103,7 @@ style="width: ${column.width || "200px"}">${getCalcValue(column) || '`; } else { - text += `${item.name}`; + text += `${item.name}`; } }); if (!text) {