Explorar o código

Stashing container template for repeating conmtainers - useful when adding new members

Richard Knight %!s(int64=6) %!d(string=hai) anos
pai
achega
0b2339b42f
Modificáronse 1 ficheiros con 14 adicións e 2 borrados
  1. 14 2
      src/app/dynaform/services/_formdata-utils.ts

+ 14 - 2
src/app/dynaform/services/_formdata-utils.ts

@@ -93,7 +93,14 @@ const combineExtraMeta = (metaG, extraMeta, createFromExtra = false, containerSe
 					)
 				};
 				combinedMeta[key] = combineMetaForField(metaFoG, {}, extra);
-				combinedMeta[key].__defaultContainer = cloneDeep(extra.meta[0]); // Stash for adding extra containers to the repeating container
+				
+				// Stash a 'conbtainer template' for adding extra containers to the repeating container
+				combinedMeta[key].__defaultContainer = combineExtraMeta(
+					cloneDeep(baseObjWithAllKeys),
+					val['meta'][0],
+					false,
+					val['seed'] || containerSeed
+				);
 			}
 			else
 			{
@@ -190,7 +197,12 @@ const buildModeledFieldGroupMember = metaFoG => {
 		modeledGroupMember.meta = _buildFieldSpecificMeta(modeledGroupMember.meta);
 	} else if (isRepeatingContainer(metaFoG)) {
 		modeledGroupMember.meta = modeledGroupMember.meta.map(rcMem => ({ ...rcMem, meta: _buildFieldSpecificMeta(rcMem.meta) }));
-		modeledGroupMember.__defaultContainer = _buildFieldSpecificMeta(modeledGroupMember.__defaultContainer);
+		modeledGroupMember.__defaultContainer = {
+			...modeledGroupMember.meta[0],
+			meta: _buildFieldSpecificMeta(modeledGroupMember.__defaultContainer),
+			name: '__defaultContainer',
+			button: ''
+		};
 	}
 	return modeledGroupMember;
 };