diff options
author | bobzel <zzzman@gmail.com> | 2024-10-17 13:31:25 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2024-10-17 13:31:25 -0400 |
commit | 5e3f9d84da226e62ce109cc2c0b00ba76eb45189 (patch) | |
tree | 7516f80d96cb28088a49b1cba0edf7df78821c47 /src/fields/Doc.ts | |
parent | 14f412611299fc350f13b6f96be913d59533cfb3 (diff) | |
parent | 4a9330e996b9117fb27560b9898b6fc1dbb78f96 (diff) |
Merge branch 'master' into ajs-before-executable
Diffstat (limited to 'src/fields/Doc.ts')
-rw-r--r-- | src/fields/Doc.ts | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts index 81241f9fe..6ec195910 100644 --- a/src/fields/Doc.ts +++ b/src/fields/Doc.ts @@ -960,6 +960,19 @@ export namespace Doc { } } else if (field instanceof PrefetchProxy) { Doc.FindReferences(field.value, references, system); + } else if (field instanceof RichTextField) { + const re = /"docId"\s*:\s*"(.*?)"/g; + let match: string[] | null; + while ((match = re.exec(field.Data)) !== null) { + const urlString = match[1]; + if (urlString) { + const rdoc = DocServer.GetCachedRefField(urlString); + if (rdoc) { + references.add(rdoc); + Doc.FindReferences(rdoc, references, system); + } + } + } } } else if (field instanceof Promise) { // eslint-disable-next-line no-debugger @@ -990,7 +1003,7 @@ export namespace Doc { } else if (field instanceof ObjectField) { const docAtKey = doc[key]; copy[key] = - docAtKey instanceof Doc && key.includes('layout[') + docAtKey instanceof Doc && (key.includes('layout[') || docAtKey.cloneOnCopy) ? new ProxyField(Doc.MakeCopy(docAtKey)) // copy the expanded render template : ObjectField.MakeCopy(field); } else if (field instanceof Promise) { |