SearchKit - Update APIv3 Extension.get to use APIv4
authorColeman Watts <coleman@civicrm.org>
Thu, 17 Feb 2022 23:46:06 +0000 (18:46 -0500)
committerColeman Watts <coleman@civicrm.org>
Thu, 17 Feb 2022 23:46:06 +0000 (18:46 -0500)
ext/search_kit/Civi/Search/Admin.php
ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
ext/search_kit/ang/crmSearchAdmin/crmSearchAdminExport.component.js
ext/search_kit/ang/crmSearchAdmin/crmSearchAdminImport.component.js
ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js

index 21f87cfff69b89fd3440159bbb196e2a35592fb0..400f98712892e6fed6c0565b9e76b832847e12e3 100644 (file)
@@ -12,6 +12,7 @@
 namespace Civi\Search;
 
 use Civi\Api4\Action\SearchDisplay\AbstractRunAction;
+use Civi\Api4\Extension;
 use Civi\Api4\Query\SqlEquation;
 use Civi\Api4\Query\SqlFunction;
 use Civi\Api4\SearchDisplay;
@@ -31,7 +32,8 @@ class Admin {
    */
   public static function getAdminSettings():array {
     $schema = self::getSchema();
-    $extensions = \CRM_Extension_System::singleton()->getMapper();
+    $extensions = Extension::get(FALSE)->addWhere('status', '=', 'installed')
+      ->execute()->indexBy('key')->column('label');
     $data = [
       'schema' => self::addImplicitFKFields($schema),
       'joins' => self::getJoins($schema),
@@ -43,10 +45,7 @@ class Admin {
       'styles' => \CRM_Utils_Array::makeNonAssociative(self::getStyles()),
       'defaultPagerSize' => \Civi::settings()->get('default_pager_size'),
       'defaultDisplay' => SearchDisplay::getDefault(FALSE)->setSavedSearch(['id' => NULL])->execute()->first(),
-      'afformEnabled' => $extensions->isActiveModule('afform'),
-      'afformAdminEnabled' => $extensions->isActiveModule('afform_admin'),
-      // TODO: Add v4 API for Extensions
-      'modules' => array_column(civicrm_api3('Extension', 'get', ['status' => "installed"])['values'], 'label', 'key'),
+      'modules' => $extensions,
       'tags' => Tag::get()
         ->addSelect('id', 'name', 'color', 'is_selectable', 'description')
         ->addWhere('used_for', 'CONTAINS', 'civicrm_saved_search')
index f94bd17440e0a39a5d6991b14c4016aa243624fc..9feafb75ca4106fb43ffee41e8da78e6df6926b8 100644 (file)
@@ -13,8 +13,8 @@
         fieldsForJoinGetters = {};
 
       this.DEFAULT_AGGREGATE_FN = 'GROUP_CONCAT';
-      this.afformEnabled = CRM.crmSearchAdmin.afformEnabled;
-      this.afformAdminEnabled = CRM.crmSearchAdmin.afformAdminEnabled;
+      this.afformEnabled = 'org.civicrm.afform' in CRM.crmSearchAdmin.modules;
+      this.afformAdminEnabled = 'org.civicrm.afform_admin' in CRM.crmSearchAdmin.modules;
       this.displayTypes = _.indexBy(CRM.crmSearchAdmin.displayTypes, 'id');
       this.searchDisplayPath = CRM.url('civicrm/search');
       this.afformPath = CRM.url('civicrm/admin/afform');
index 542f9b3e19eb77dc5b4a102d4b5df79b2ca1ac97..497400a562a0b574b880ecf4388bc49e590b38cd 100644 (file)
@@ -11,7 +11,7 @@
     controller: function ($scope, $element, crmApi4) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this;
-      this.afformEnabled = CRM.crmSearchAdmin.afformEnabled;
+      this.afformEnabled = 'org.civicrm.afform' in CRM.crmSearchAdmin.modules;
 
       this.types = [
         {entity: 'SavedSearch', title: ts('Saved Search')},
index 987a52f0c9c5fab999499f3bc8b1cbb32eecd95a..909c9d66d1e567cf19384e554f01289881d15c30 100644 (file)
@@ -18,7 +18,7 @@
           try {
             var apiCalls = JSON.parse(ctrl.values),
               allowedEntities = ['SavedSearch', 'SearchDisplay', 'Group'];
-            if (CRM.crmSearchAdmin.afformEnabled) {
+            if ('org.civicrm.afform' in CRM.crmSearchAdmin.modules) {
               allowedEntities.push('Afform');
             }
             // Get entity titles for use in status message
index 110ce193a12033a707f9cf8f970f39b466aafa25..ddff68cda3ac9310c2412a44457573e20613d06f 100644 (file)
@@ -16,8 +16,8 @@
 
       this.searchDisplayPath = CRM.url('civicrm/search');
       this.afformPath = CRM.url('civicrm/admin/afform');
-      this.afformEnabled = CRM.crmSearchAdmin.afformEnabled;
-      this.afformAdminEnabled = CRM.crmSearchAdmin.afformAdminEnabled;
+      this.afformEnabled = 'org.civicrm.afform' in CRM.crmSearchAdmin.modules;
+      this.afformAdminEnabled = 'org.civicrm.afform_admin' in CRM.crmSearchAdmin.modules;
 
       this.apiEntity = 'SavedSearch';
       this.search = {