From 2fb944c9eea1151c76e338c0bdbf4110fa6335e9 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 4 Jul 2025 11:03:15 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/15210 --- app/src/assets/scss/business/_av.scss | 4 +-- app/src/protyle/render/av/action.ts | 48 +++++++++++++++++++-------- app/src/protyle/wysiwyg/index.ts | 2 +- 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index b4029a4c9..fc3552f41 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -486,10 +486,10 @@ } span { - width: calc(1.625em - 8px); + width: calc(1.9em - 10px); margin: 0 5px 0 0; height: 1.625em; - font-size: 1em; + font-size: .85em; } } diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index 656d43b61..733adfb66 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -639,20 +639,40 @@ ${window.siyuan.languages[avType === "table" ? "insertRowAfter" : "insertItemAft } }); const editAttrSubmenu: IMenu[] = []; - rowElement.parentElement.querySelectorAll(".av__row--header .av__cell").forEach((cellElement: HTMLElement) => { - const selectElements: HTMLElement[] = Array.from(blockElement.querySelectorAll(`.av__row--select:not(.av__row--header) .av__cell[data-col-id="${cellElement.dataset.colId}"]`)); - const type = cellElement.getAttribute("data-dtype") as TAVCol; - if (!["updated", "created"].includes(type)) { - const icon = cellElement.dataset.icon; - editAttrSubmenu.push({ - iconHTML: icon ? unicode2Emoji(icon, "b3-menu__icon", true) : ``, - label: escapeHtml(cellElement.querySelector(".av__celltext").textContent.trim()), - click() { - popTextCell(protyle, selectElements); - } - }); - } - }); + if (avType === "table") { + rowElement.parentElement.querySelectorAll(".av__row--header .av__cell").forEach((cellElement: HTMLElement) => { + const selectElements: HTMLElement[] = Array.from(blockElement.querySelectorAll(`.av__row--select:not(.av__row--header) .av__cell[data-col-id="${cellElement.dataset.colId}"]`)); + const type = cellElement.getAttribute("data-dtype") as TAVCol; + if (!["updated", "created"].includes(type)) { + const icon = cellElement.dataset.icon; + editAttrSubmenu.push({ + iconHTML: icon ? unicode2Emoji(icon, "b3-menu__icon", true) : ``, + label: escapeHtml(cellElement.querySelector(".av__celltext").textContent.trim()), + click() { + popTextCell(protyle, selectElements); + } + }); + } + }); + } else { + rowElement.querySelectorAll(".av__cell").forEach((cellElement: HTMLElement) => { + const selectElements: HTMLElement[] = Array.from(blockElement.querySelectorAll(`.av__gallery-item--select .av__cell[data-field-id="${cellElement.dataset.fieldId}"]`)); + const type = cellElement.getAttribute("data-dtype") as TAVCol; + if (!["updated", "created"].includes(type)) { + const iconElement = cellElement.querySelector(".av__gallery-tip").firstElementChild.cloneNode(true) as HTMLElement; + iconElement.classList.add("b3-menu__icon"); + editAttrSubmenu.push({ + iconHTML: iconElement.outerHTML, + label: escapeHtml(cellElement.getAttribute("aria-label")), + click() { + rowElement.querySelector(".av__gallery-fields").classList.add("av__gallery-fields--edit"); + rowElement.querySelector('[data-type="av-gallery-edit"]').setAttribute("aria-label", window.siyuan.languages.hideEmptyFields); + popTextCell(protyle, selectElements); + } + }); + } + }); + } menu.addItem({ id: "fields", icon: "iconAttr", diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index efe700916..bf8d0df02 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -624,7 +624,7 @@ export class WYSIWYG { } // https://github.com/siyuan-note/siyuan/issues/15100 - if (galleryItemElement) { + if (galleryItemElement && !hasClosestByAttribute(target, "data-type", "av-gallery-more")) { documentSelf.onmouseup = () => { documentSelf.onmousemove = null; documentSelf.onmouseup = null;