|
@@ -8,7 +8,7 @@ import {pathPosix} from "../../util/pathName";
|
|
|
import {genAssetHTML} from "../../asset/renderAssets";
|
|
|
import {hasClosestBlock} from "../util/hasClosest";
|
|
|
import {getContenteditableElement} from "../wysiwyg/getBlock";
|
|
|
-import {updateCellsValue} from "../render/av/cell";
|
|
|
+import {getTypeByCellElement, updateCellsValue} from "../render/av/cell";
|
|
|
|
|
|
export class Upload {
|
|
|
public element: HTMLElement;
|
|
@@ -143,16 +143,47 @@ const genUploadedLabel = (responseText: string, protyle: IProtyle) => {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
if ((nodeElement && nodeElement.classList.contains("av"))) {
|
|
|
- updateCellsValue(protyle, nodeElement, avAssets);
|
|
|
- document.querySelector(".av__panel")?.remove();
|
|
|
- return;
|
|
|
+ const cellElements: HTMLElement[] = []
|
|
|
+ nodeElement.querySelectorAll(".av__row--select:not(.av__row--header)").forEach(item => {
|
|
|
+ item.querySelectorAll(".av__cell").forEach((cellItem: HTMLElement) => {
|
|
|
+ if (getTypeByCellElement(cellItem) === "mAsset") {
|
|
|
+ cellElements.push(cellItem);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ if (cellElements.length === 0) {
|
|
|
+ protyle.wysiwyg.element.querySelectorAll(".av__cell--active").forEach((item: HTMLElement) => {
|
|
|
+ if (getTypeByCellElement(item) === "mAsset") {
|
|
|
+ cellElements.push(item);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (cellElements.length > 0) {
|
|
|
+ updateCellsValue(protyle, nodeElement, avAssets, cellElements);
|
|
|
+ document.querySelector(".av__panel")?.remove();
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
if (document.querySelector(".av__panel")) {
|
|
|
- const blockElement = hasClosestBlock(protyle.wysiwyg.element.querySelector(".av__cell--select"));
|
|
|
- if (blockElement) {
|
|
|
- updateCellsValue(protyle, blockElement, avAssets);
|
|
|
- document.querySelector(".av__panel")?.remove();
|
|
|
+ const cellElements: HTMLElement[] = []
|
|
|
+ protyle.wysiwyg.element.querySelectorAll(".av__cell--active").forEach((item: HTMLElement) => {
|
|
|
+ if (getTypeByCellElement(item) === "mAsset") {
|
|
|
+ cellElements.push(item);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (cellElements.length > 0) {
|
|
|
+ const blockElement = hasClosestBlock(cellElements[0]);
|
|
|
+ if (blockElement) {
|
|
|
+ updateCellsValue(protyle, blockElement, avAssets, cellElements);
|
|
|
+ document.querySelector(".av__panel")?.remove();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
return;
|
|
|
}
|
|
|
}
|