SearchKit - Better user feedback if search entity is missing
authorColeman Watts <coleman@civicrm.org>
Fri, 4 Feb 2022 04:24:42 +0000 (23:24 -0500)
committerColeman Watts <coleman@civicrm.org>
Fri, 4 Feb 2022 04:24:42 +0000 (23:24 -0500)
Before: After disabling the Afform extension, the search display appears editable
but crashes on missing AfformSubmission entity

After: Not editable, shows message that entity is missing.

ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js

index 80fbb1043256ad4fccc136bafd1f3802b6c9cea7..46cea6c5a7816bed49760ed06e32daf74d2947a0 100644 (file)
       this.onPostRun.push(function(result) {
         _.each(result, function(row) {
           row.permissionToEdit = CRM.checkPerm('all CiviCRM permissions and ACLs') || !_.includes(row.data.display_acl_bypass, true);
+          // If main entity doesn't exist, no can edit
+          if (!row.data['api_entity:label']) {
+            row.permissionToEdit = false;
+          }
           // Saves rendering cycles to not show an empty menu of search displays
           if (!row.data.display_name) {
             row.openDisplayMenu = false;
               }),
               searchMeta.fieldToColumn('api_entity:label', {
                 label: ts('For'),
+                empty_value: ts('Missing'),
+                cssRules: [
+                  ['font-italic', 'api_entity:label', 'IS EMPTY']
+                ]
               }),
               {
                 type: 'include',