From 70a8b4ab8075af4d06efb04c083b3bf11636373e Mon Sep 17 00:00:00 2001 From: Tyler Schicke Date: Sat, 16 Feb 2019 19:12:11 -0500 Subject: Fixed issues with Document updates and changed how FieldView layout string works --- src/fields/Document.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/fields') diff --git a/src/fields/Document.ts b/src/fields/Document.ts index fce316b17..3067621be 100644 --- a/src/fields/Document.ts +++ b/src/fields/Document.ts @@ -9,7 +9,7 @@ import { Server } from "../client/Server"; import { Types } from "../server/Message"; export class Document extends Field { - public fields: ObservableMap }> = new ObservableMap(); + public fields: ObservableMap = new ObservableMap(); public _proxies: ObservableMap = new ObservableMap(); constructor(id?: string, save: boolean = true) { @@ -45,17 +45,20 @@ export class Document extends Field { } else { let doc: FieldValue = this; while (doc && doc != FieldWaiting && field != FieldWaiting) { - if (!doc.fields.has(key.Id)) { - if (doc._proxies.has(key.Id)) { + let curField = doc.fields.get(key.Id); + let curProxy = doc._proxies.get(key.Id); + if (!curField || (curProxy && curField.field.Id !== curProxy)) { + if (curProxy) { field = Server.GetDocumentField(doc, key); break; } if ((doc.fields.has(KeyStore.Prototype.Id) || doc._proxies.has(KeyStore.Prototype.Id))) { doc = doc.GetPrototype(); - } else + } else { break; + } } else { - field = doc.fields.get(key.Id)!.field; + field = curField.field; break; } } -- cgit v1.2.3-70-g09d2