diff --git a/app/src/protyle/gutter/index.ts b/app/src/protyle/gutter/index.ts index 8eff38137..6b7609847 100644 --- a/app/src/protyle/gutter/index.ts +++ b/app/src/protyle/gutter/index.ts @@ -279,6 +279,7 @@ export class Gutter { content: "" }], blockID: id, + groupID: rowElement.parentElement.getAttribute("data-group-id"), }, { action: "doUpdateUpdated", id, diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index 9fd489e13..66ba636c9 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -157,7 +157,7 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle event.stopPropagation(); return true; } else if (type === "av-add-more") { - insertRows(blockElement, protyle, 1, undefined); + insertRows({blockElement, protyle, count: 1, previousID: ""}); event.preventDefault(); event.stopPropagation(); return true; @@ -210,10 +210,14 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle event.stopPropagation(); return true; } else if (type === "av-add-bottom") { - insertRows(blockElement, protyle, 1, - blockElement.querySelector(".av__row--util")?.previousElementSibling?.getAttribute("data-id") || - target.previousElementSibling?.getAttribute("data-id") || undefined - ); + const bodyElement = hasClosestByClassName(target, "av__body"); + insertRows({ + blockElement, protyle, + count: 1, + previousID: blockElement.querySelector(".av__row--util")?.previousElementSibling?.getAttribute("data-id") || + target.previousElementSibling?.getAttribute("data-id") || undefined, + groupID: bodyElement ? bodyElement.getAttribute("data-group-id") : "" + }); event.preventDefault(); event.stopPropagation(); return true; @@ -582,7 +586,8 @@ export const avContextmenu = (protyle: IProtyle, rowElement: HTMLElement, positi avID, ignoreFillFilter: true, srcs, - blockID: listItemElement.dataset.blockId + blockID: listItemElement.dataset.blockId, + groupID: rowElement.parentElement.getAttribute("data-group-id") }, { action: "doUpdateUpdated", id: listItemElement.dataset.blockId, @@ -611,12 +616,24 @@ ${window.siyuan.languages[avType === "table" ? "insertRowBefore" : "insertItemBe if (document.activeElement === inputElement) { return; } - insertRows(blockElement, protyle, parseInt(inputElement.value), rowElements[0].previousElementSibling.getAttribute("data-id")); + insertRows({ + blockElement, + protyle, + count: parseInt(inputElement.value), + previousID: rowElements[0].previousElementSibling.getAttribute("data-id"), + groupID: rowElements[0].parentElement.getAttribute("data-group-id") + }); menu.close(); }); inputElement.addEventListener("keydown", (event: KeyboardEvent) => { if (!event.isComposing && event.key === "Enter") { - insertRows(blockElement, protyle, parseInt(inputElement.value), rowElements[0].previousElementSibling.getAttribute("data-id")); + insertRows({ + blockElement, + protyle, + count: parseInt(inputElement.value), + previousID: rowElements[0].previousElementSibling.getAttribute("data-id"), + groupID: rowElements[0].parentElement.getAttribute("data-group-id") + }); menu.close(); } }); @@ -634,12 +651,24 @@ ${window.siyuan.languages[avType === "table" ? "insertRowAfter" : "insertItemAft if (document.activeElement === inputElement) { return; } - insertRows(blockElement, protyle, parseInt(inputElement.value), rowElements[0].getAttribute("data-id")); + insertRows({ + blockElement, + protyle, + count: parseInt(inputElement.value), + previousID: rowElements[0].getAttribute("data-id"), + groupID: rowElements[0].parentElement.getAttribute("data-group-id") + }); menu.close(); }); inputElement.addEventListener("keydown", (event: KeyboardEvent) => { if (!event.isComposing && event.key === "Enter") { - insertRows(blockElement, protyle, parseInt(inputElement.value), rowElements[0].getAttribute("data-id")); + insertRows({ + blockElement, + protyle, + count: parseInt(inputElement.value), + previousID: rowElements[0].getAttribute("data-id"), + groupID: rowElements[0].parentElement.getAttribute("data-group-id") + }); menu.close(); } }); diff --git a/app/src/protyle/render/av/relation.ts b/app/src/protyle/render/av/relation.ts index c09d922c0..d9aeaf6c0 100644 --- a/app/src/protyle/render/av/relation.ts +++ b/app/src/protyle/render/av/relation.ts @@ -420,6 +420,7 @@ draggable="true">${genSelectItemHTML("selected", targetId, !target.querySelector const blockID = target.querySelector(".popover__block").getAttribute("data-id"); const content = target.querySelector("b").textContent; const rowId = Lute.NewNodeID(); + const bodyElement = hasClosestByClassName(cellElements[0], "av__body"); transaction(protyle, [{ action: "insertAttrViewBlock", ignoreFillFilter: true, @@ -430,6 +431,7 @@ draggable="true">${genSelectItemHTML("selected", targetId, !target.querySelector content }], blockID, + groupID: bodyElement ? bodyElement.getAttribute("data-group-id") : "", }, { action: "doUpdateUpdated", id: blockID, diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index 112ecf190..b2c70ef76 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -239,7 +239,7 @@ const renderGroupTable = (options: ITableOptions) => { ${group.name}${group.rows.length} -