aboutsummaryrefslogtreecommitdiff
path: root/src/fields/Doc.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2025-03-26 16:36:15 -0400
committerbobzel <zzzman@gmail.com>2025-03-26 16:36:15 -0400
commita3eab5f2b8eca6ff7a21ea9d043b90c953c35f03 (patch)
treed708391fe97f8c0d17458abd51c2ee42c180e6cc /src/fields/Doc.ts
parentbddf2c741860eb39499faa1969054bcf1b63245e (diff)
fix so that views use don't use the rootDocument, but rather the current rendering document. got rid of resolvedDataDoc -- just use rootDocument[DocData]
Diffstat (limited to 'src/fields/Doc.ts')
-rw-r--r--src/fields/Doc.ts19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts
index 76d302db7..ba088d674 100644
--- a/src/fields/Doc.ts
+++ b/src/fields/Doc.ts
@@ -405,7 +405,7 @@ export class Doc extends RefField {
}
@computed get __DATA__(): Doc {
const self = this[SelfProxy];
- return self.resolvedDataDoc && !self.isTemplateForField ? self : Doc.GetProto(Cast(Doc.Layout(self).resolvedDataDoc, Doc, null) || self);
+ return self.rootDocument && !self.isTemplateForField ? self : Doc.GetProto(Cast(Doc.Layout(self).rootDocument, Doc, null) || self);
}
@computed get __LAYOUT__(): Doc | undefined {
const self = this[SelfProxy];
@@ -871,15 +871,15 @@ export namespace Doc {
const expandedLayoutFieldKey = 'layout_' + templateLayoutDoc.title + '(' + templateField + ')';
let expandedTemplateLayout = targetDoc?.[expandedLayoutFieldKey];
- if (templateLayoutDoc.resolvedDataDoc instanceof Promise) {
+ if (templateLayoutDoc.rootDocument instanceof Promise) {
expandedTemplateLayout = undefined;
_pendingMap.add(targetDoc[Id] + expandedLayoutFieldKey);
} else if (expandedTemplateLayout === undefined && !_pendingMap.has(targetDoc[Id] + expandedLayoutFieldKey)) {
- if (templateLayoutDoc.resolvedDataDoc === targetDoc[DocData]) {
+ if (DocCast(templateLayoutDoc.rootDocument)?.[DocData] === targetDoc[DocData]) {
expandedTemplateLayout = templateLayoutDoc; // reuse an existing template layout if its for the same document with the same params
} else {
// eslint-disable-next-line no-param-reassign
- templateLayoutDoc.resolvedDataDoc && (templateLayoutDoc = DocCast(templateLayoutDoc.proto, templateLayoutDoc)); // if the template has already been applied (ie, a nested template), then use the template's prototype
+ templateLayoutDoc.rootDocument && (templateLayoutDoc = DocCast(templateLayoutDoc.proto, templateLayoutDoc)); // if the template has already been applied (ie, a nested template), then use the template's prototype
if (!targetDoc[expandedLayoutFieldKey]) {
_pendingMap.add(targetDoc[Id] + expandedLayoutFieldKey);
setTimeout(
@@ -888,7 +888,6 @@ export namespace Doc {
const dataDoc = Doc.GetProto(targetDoc);
newLayoutDoc.rootDocument = targetDoc;
newLayoutDoc.embedContainer = targetDoc;
- newLayoutDoc.resolvedDataDoc = dataDoc;
newLayoutDoc.acl_Guest = SharingPermissions.Edit;
if (dataDoc[templateField] === undefined && (templateLayoutDoc[templateField] as List<Doc>)?.length) {
dataDoc[templateField] = ObjectField.MakeCopy(templateLayoutDoc[templateField] as List<Doc>);
@@ -912,9 +911,9 @@ export namespace Doc {
console.log('Warning: GetLayoutDataDocPair childDoc not defined');
return { layout: childDoc, data: childDoc };
}
- const resolvedDataDoc = Doc.AreProtosEqual(containerDataDoc, containerDoc) || (!Doc.isTemplateDoc(childDoc) && !Doc.isTemplateForField(childDoc)) ? undefined : containerDataDoc;
+ const data = Doc.AreProtosEqual(containerDataDoc, containerDoc) || (!Doc.isTemplateDoc(childDoc) && !Doc.isTemplateForField(childDoc)) ? undefined : containerDataDoc;
const templateRoot = DocCast(containerDoc?.rootDocument);
- return { layout: Doc.expandTemplateLayout(childDoc, templateRoot), data: resolvedDataDoc };
+ return { layout: Doc.expandTemplateLayout(childDoc, templateRoot), data };
}
export function FindReferences(infield: Doc | List<Doc>, references: Set<Doc>, system: boolean | undefined) {
@@ -1083,7 +1082,7 @@ export namespace Doc {
export function ApplyTemplateTo(templateDoc: Doc, target: Doc, targetKey: string, titleTarget: string | undefined) {
if (!Doc.AreProtosEqual(target[targetKey] as Doc, templateDoc)) {
- if (target.resolvedDataDoc) {
+ if (target.rootDocument) {
target[targetKey] = new PrefetchProxy(templateDoc);
} else {
titleTarget && (Doc.GetProto(target).title = titleTarget);
@@ -1301,7 +1300,7 @@ export namespace Doc {
highlightedDocs.add(doc);
doc[Highlight] = true;
doc[Animation] = presentationEffect;
- if (dataAndDisplayDocs && !doc.resolvedDataDoc) {
+ if (dataAndDisplayDocs && !doc.rootDocument) {
// if doc is a layout template then we don't want to highlight the proto since that will be the entire template, not just the specific layout field
highlightedDocs.add(doc[DocData]);
doc[DocData][Highlight] = true;
@@ -1331,7 +1330,7 @@ export namespace Doc {
: Cast(doc.dragFactory, Doc, null)?.isTemplateDoc
? doc.dragFactory
: Cast(Doc.Layout(doc), Doc, null)?.isTemplateDoc
- ? Cast(Doc.Layout(doc), Doc, null).resolvedDataDoc
+ ? Cast(Doc.Layout(doc), Doc, null).rootDocument
? Doc.Layout(doc).proto
: Doc.Layout(doc)
: undefined;