From ed7b99daaad77dc2a2446a85c22f3d35fcdc8108 Mon Sep 17 00:00:00 2001 From: colemanw Date: Tue, 22 Aug 2023 13:50:03 -0400 Subject: [PATCH] Afform - Fix mering autofill data with form data Before: Objects overwritten, breaking references and causing endless loops After: Objects merged correctly --- ext/afform/core/ang/af/afForm.component.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ext/afform/core/ang/af/afForm.component.js b/ext/afform/core/ang/af/afForm.component.js index d711b00b8a..c706043e3b 100644 --- a/ext/afform/core/ang/af/afForm.component.js +++ b/ext/afform/core/ang/af/afForm.component.js @@ -67,10 +67,13 @@ } if (toLoad) { crmApi4('Afform', 'prefill', params) - .then(function(result) { - _.each(result, function(item) { - data[item.name] = data[item.name] || {}; - _.extend(data[item.name], item.values, schema[item.name].data || {}); + .then((result) => { + result.forEach((item) => { + // Use _.each() because item.values could be cast as an object if array keys are not sequential + _.each(item.values, (values, index) => { + data[item.name][index].joins = {}; + angular.merge(data[item.name][index], values, {fields: _.cloneDeep(schema[item.name].data || {})}); + }); }); }); } -- 2.25.1