diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index 227693847..ea074d250 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -579,8 +579,11 @@ export const avContextmenu = (protyle: IProtyle, rowElement: HTMLElement, positi sourceIds.push(rowId); }); const avID = listItemElement.dataset.avId; + const viewID = listItemElement.dataset.viewId; transaction(protyle, [{ action: "insertAttrViewBlock", + ignoreDefaultFill: viewID ? false : true, + viewID, avID, srcs, context: {ignoreTip: "true"}, diff --git a/app/src/protyle/render/av/addToDatabase.ts b/app/src/protyle/render/av/addToDatabase.ts index b89249034..ba258c2ad 100644 --- a/app/src/protyle/render/av/addToDatabase.ts +++ b/app/src/protyle/render/av/addToDatabase.ts @@ -19,8 +19,11 @@ export const addFilesToDatabase = (fileLiElements: Element[]) => { if (srcs.length > 0) { openSearchAV("", fileLiElements[0] as HTMLElement, (listItemElement) => { const avID = listItemElement.dataset.avId; + const viewID = listItemElement.dataset.viewId; transaction(undefined, [{ action: "insertAttrViewBlock", + ignoreDefaultFill: viewID ? false : true, + viewID, avID, srcs, blockID: listItemElement.dataset.blockId @@ -37,8 +40,11 @@ export const addEditorToDatabase = (protyle: IProtyle, range: Range, type?: stri if ((range && protyle.title?.editElement?.contains(range.startContainer)) || type === "title") { openSearchAV("", protyle.breadcrumb.element, (listItemElement) => { const avID = listItemElement.dataset.avId; + const viewID = listItemElement.dataset.viewId; transaction(protyle, [{ action: "insertAttrViewBlock", + ignoreDefaultFill: viewID ? false : true, + viewID, avID, srcs: [{ itemID: Lute.NewNodeID(), @@ -89,8 +95,11 @@ export const addEditorToDatabase = (protyle: IProtyle, range: Range, type?: stri }); }); const avID = listItemElement.dataset.avId; + const viewID = listItemElement.dataset.viewId; transaction(protyle, [{ action: "insertAttrViewBlock", + ignoreDefaultFill: viewID ? false : true, + viewID, avID, srcs, blockID: listItemElement.dataset.blockId diff --git a/app/src/protyle/render/av/relation.ts b/app/src/protyle/render/av/relation.ts index 401df9380..964e168de 100644 --- a/app/src/protyle/render/av/relation.ts +++ b/app/src/protyle/render/av/relation.ts @@ -12,6 +12,16 @@ import * as dayjs from "dayjs"; import {getFieldsByData} from "./view"; import {getColId} from "./col"; import {getFieldIdByCellElement} from "./row"; +import {isMobile} from "../../../util/functions"; + +interface IAVItem { + avID: string; + avName: string; + blockID: string; + hPath: string; + viewName: string; + viewID: string; +} const genSearchList = (element: Element, keyword: string, avId?: string, excludes = true, cb?: () => void) => { fetchPost("/api/av/searchAttributeView", { @@ -19,13 +29,13 @@ const genSearchList = (element: Element, keyword: string, avId?: string, exclude excludes: (excludes && avId) ? [avId] : undefined }, (response) => { let html = ""; - response.data.results.forEach((item: { - avID: string - avName: string - blockID: string - hPath: string - }, index: number) => { + response.data.results.forEach((item: IAVItem & { children: IAVItem[] }, index: number) => { + const hasChildren = item.children && item.children.length > 0 && excludes; html += `