Rename blocks & require form name
authorColeman Watts <coleman@civicrm.org>
Sat, 4 Jan 2020 01:42:59 +0000 (20:42 -0500)
committerCiviCRM <info@civicrm.org>
Wed, 16 Sep 2020 02:13:20 +0000 (19:13 -0700)
19 files changed:
ext/afform/core/ang/afblockNameHousehold.aff.html [moved from ext/afform/core/ang/blockNameHousehold.aff.html with 100% similarity]
ext/afform/core/ang/afblockNameHousehold.aff.json [moved from ext/afform/core/ang/blockNameHousehold.aff.json with 100% similarity]
ext/afform/core/ang/afblockNameIndividual.aff.html [moved from ext/afform/core/ang/blockNameIndividual.aff.html with 100% similarity]
ext/afform/core/ang/afblockNameIndividual.aff.json [moved from ext/afform/core/ang/blockNameIndividual.aff.json with 100% similarity]
ext/afform/core/ang/afblockNameOrganization.aff.html [moved from ext/afform/core/ang/blockNameOrganization.aff.html with 100% similarity]
ext/afform/core/ang/afblockNameOrganization.aff.json [moved from ext/afform/core/ang/blockNameOrganization.aff.json with 100% similarity]
ext/afform/core/ang/afjoinAddressDefault.aff.html [moved from ext/afform/core/ang/blockAddressDefault.aff.html with 100% similarity]
ext/afform/core/ang/afjoinAddressDefault.aff.json [moved from ext/afform/core/ang/blockAddressDefault.aff.json with 100% similarity]
ext/afform/core/ang/afjoinEmailDefault.aff.html [moved from ext/afform/core/ang/blockEmailDefault.aff.html with 100% similarity]
ext/afform/core/ang/afjoinEmailDefault.aff.json [moved from ext/afform/core/ang/blockEmailDefault.aff.json with 63% similarity]
ext/afform/core/ang/afjoinIMDefault.aff.html [moved from ext/afform/core/ang/blockIMDefault.aff.html with 100% similarity]
ext/afform/core/ang/afjoinIMDefault.aff.json [moved from ext/afform/core/ang/blockIMDefault.aff.json with 64% similarity]
ext/afform/core/ang/afjoinPhoneDefault.aff.html [moved from ext/afform/core/ang/blockPhoneDefault.aff.html with 100% similarity]
ext/afform/core/ang/afjoinPhoneDefault.aff.json [moved from ext/afform/core/ang/blockPhoneDefault.aff.json with 63% similarity]
ext/afform/core/ang/afjoinWebsiteDefault.aff.html [moved from ext/afform/core/ang/blockWebsiteDefault.aff.html with 100% similarity]
ext/afform/core/ang/afjoinWebsiteDefault.aff.json [moved from ext/afform/core/ang/blockWebsiteDefault.aff.json with 62% similarity]
ext/afform/gui/ang/afGuiEditor.js
ext/afform/gui/ang/afGuiEditor/canvas.html
ext/afform/gui/ang/afGuiEditor/config-form.html

similarity index 63%
rename from ext/afform/core/ang/blockEmailDefault.aff.json
rename to ext/afform/core/ang/afjoinEmailDefault.aff.json
index 107756e1c15ba2d449f5077090a0621946f59229..b09da6a075b7cd4055fe5af11dec24d4c40486a9 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "title": "Email Block (default)",
+  "title": "Email (default)",
   "block": "Contact",
   "join": "Email",
   "repeat": true
similarity index 64%
rename from ext/afform/core/ang/blockIMDefault.aff.json
rename to ext/afform/core/ang/afjoinIMDefault.aff.json
index 261df8a830cc9e5d8ad33c7111350d855c811624..2ef6b577cba5c25fe11e0a3e34e514ac75c2a206 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "title": "IM Block (default)",
+  "title": "IM (default)",
   "block": "Contact",
   "join": "IM",
   "repeat": true
similarity index 63%
rename from ext/afform/core/ang/blockPhoneDefault.aff.json
rename to ext/afform/core/ang/afjoinPhoneDefault.aff.json
index 9419dbdb17fe807ff0a1548e243aa8e52d4e18e8..c40af8dcb2ca8567b96dca37ed940221d083ffc1 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "title": "Phone Block (default)",
+  "title": "Phone (default)",
   "block": "Contact",
   "join": "Phone",
   "repeat": true
similarity index 62%
rename from ext/afform/core/ang/blockWebsiteDefault.aff.json
rename to ext/afform/core/ang/afjoinWebsiteDefault.aff.json
index 71b1e68a78a2fd04d126c250aca2f377e497aa8d..4819bc92d84870e7e2b89c67da09fd34ac927d7f 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "title": "Website Block (default)",
+  "title": "Website (default)",
   "block": "Contact",
   "join": "Website",
   "repeat": true
index 609de11e2f71ded7947ec83d50759be8a5f67449..d8316b713cb38a52ef5ee944e03eb9ad10a3b703 100644 (file)
         $scope.saving = false;
         $scope.selectedEntityName = null;
         $scope.meta = this.meta = CRM.afformAdminData;
-        _.each($scope.meta.blocks, function(block) {
-          evaluate(block.layout);
-        });
         this.scope = $scope;
         var editor = $scope.editor = this;
         var newForm = {
-          title: ts('Untitled Form'),
+          title: '',
           permission: 'access CiviCRM',
           layout: [{
             '#tag': 'af-form',
           if (!$scope.afform) {
             $scope.afform = _.cloneDeep(newForm);
             if ($scope.afGuiEditor.name != '0') {
-              alert('Error: could not find form ' + $scope.afGuiEditor.name);
+              alert('Error: unknown form "' + $scope.afGuiEditor.name + '"');
             }
           }
-          $scope.changesSaved = 1;
           $scope.layout = findRecursive($scope.afform.layout, {'#tag': 'af-form'})[0];
           $scope.entities = findRecursive($scope.layout['#children'], {'#tag': 'af-entity'}, 'name');
 
@@ -75,6 +71,7 @@
           }
 
           // Set changesSaved to true on initial load, false thereafter whenever changes are made to the model
+          $scope.changesSaved = $scope.afGuiEditor.name == '0' ? false : 1;
           $scope.$watch('afform', function () {
             $scope.changesSaved = $scope.changesSaved === 1;
           }, true);
           };
           // Add default contact name block
           if (meta.entity === 'Contact') {
-            fieldset['#children'].push({'#tag': 'block-name-' + type.toLowerCase()});
+            fieldset['#children'].push({'#tag': 'afblock-name-' + type.toLowerCase()});
           }
           // Attempt to place the new af-fieldset after the last one on the form
           pos = 1 + _.findLastIndex($scope.layout['#children'], 'af-fieldset');
index 5dbad937dcabe53a1b7f0e453216918add2ee0a1..10e3950b050436998307721d1b87655f87dc35da 100644 (file)
@@ -2,7 +2,7 @@
   <div class="panel-heading">
     <form class="form-inline">
       <div class="btn-group btn-group-md pull-right">
-        <button class="btn" ng-class="{'btn-primary': !changesSaved && !saving, 'btn-warning': saving, 'btn-success': changesSaved}" ng-disabled="changesSaved || saving" ng-click="save()">
+        <button type="submit" class="btn" ng-class="{'btn-primary': !changesSaved && !saving, 'btn-warning': saving, 'btn-success': changesSaved}" ng-disabled="changesSaved || saving || !afform.title" ng-click="save()">
           <i class="crm-i" ng-class="{'fa-check': !saving, 'fa-spin fa-spinner': saving}"></i>
           <span ng-if="changesSaved && !saving">{{ ts('Saved') }}</span>
           <span ng-if="!changesSaved && !saving">{{ ts('Save') }}</span>
index 8b602aee3180b32ff7a3ebb7affca77bd914ef19..a3169e8bb204d78f9b53cf1edb10cfa33d9f2731 100644 (file)
@@ -1,7 +1,7 @@
 <label for="af_config_form_title">
-  {{ ts('Title:') }}
+  {{ ts('Title:') }} <span class="crm-marker">*</span>
 </label>
-<input ng-model="afform.title" class="form-control" id="af_config_form_title" />
+<input ng-model="afform.title" class="form-control" id="af_config_form_title" required />
 <label for="af_config_form_description">
   {{ ts('Description:') }}
 </label>