Afform - Move entity boilerplate out of runtime code & into metadata files
authorColeman Watts <coleman@civicrm.org>
Fri, 22 Jan 2021 21:41:55 +0000 (16:41 -0500)
committerColeman Watts <coleman@civicrm.org>
Sat, 30 Jan 2021 01:41:05 +0000 (20:41 -0500)
ext/afform/admin/afformEntities/Activity.php
ext/afform/admin/afformEntities/Household.php
ext/afform/admin/afformEntities/Individual.php
ext/afform/admin/afformEntities/Organization.php
ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js

index 4d362f1fdac3b91cdbea1f36808f925025fffa6d..32c3b8f02b8b6c55858ae1200854f20cba7cb531 100644 (file)
@@ -3,4 +3,7 @@ return [
   'entity' => 'Activity',
   'label' => ts('Activity'),
   'defaults' => "{'url-autofill': '1'}",
+  'boilerplate' => [
+    ['#tag' => 'af-field', 'name' => 'subject'],
+  ],
 ];
index 0788e51fe1c890dd98834fb4030f61732ff68cb6..abe3253c5f5d13c6f5eb13d712129e052b065188 100644 (file)
@@ -9,4 +9,7 @@ return [
     },
     'url-autofill': '1'
   }",
+  'boilerplate' => [
+    ['#tag' => 'afblock-name-household'],
+  ],
 ];
index 626518f3bf6590992a4852b396b580f87e4f09f6..3d651fc35cb2392be0c5167a561f98deb44b3579 100644 (file)
@@ -9,4 +9,7 @@ return [
     },
     'url-autofill': '1'
   }",
+  'boilerplate' => [
+    ['#tag' => 'afblock-name-individual'],
+  ],
 ];
index 358dcf3cda0f9f544e7e37f9032424166b88f84d..99f0ebbb0f463c9c51a519af5181c02207b3e3b4 100644 (file)
@@ -9,4 +9,7 @@ return [
     },
     'url-autofill': '1'
   }",
+  'boilerplate' => [
+    ['#tag' => 'afblock-name-organization'],
+  ],
 ];
index 5d43f11f4a3a4db1ce6401c1013a480ebd777e15..d2a1f4889a2ce31ac5b5f193886a09551f214f8a 100644 (file)
         var fieldset = _.cloneDeep(afGui.meta.elements.fieldset.element);
         fieldset['af-fieldset'] = type + num;
         fieldset['#children'][0]['#children'][0]['#text'] = meta.label + ' ' + num;
-        // Add default contact name block
-        if (meta.entity === 'Contact') {
-          fieldset['#children'].push({'#tag': 'afblock-name-' + type.toLowerCase()});
-        }
+        // Add boilerplate contents
+        _.each(meta.boilerplate, function(tag) {
+          fieldset['#children'].push(tag);
+        });
         // Attempt to place the new af-fieldset after the last one on the form
         pos = 1 + _.findLastIndex(editor.layout['#children'], 'af-fieldset');
         if (pos) {