From 244eef8ddb0520c9010c71a0030299fc23238f59 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 17 Feb 2022 18:46:06 -0500 Subject: [PATCH] SearchKit - Update APIv3 Extension.get to use APIv4 --- ext/search_kit/Civi/Search/Admin.php | 9 ++++----- .../ang/crmSearchAdmin/crmSearchAdmin.component.js | 4 ++-- .../ang/crmSearchAdmin/crmSearchAdminExport.component.js | 2 +- .../ang/crmSearchAdmin/crmSearchAdminImport.component.js | 2 +- .../crmSearchAdminSearchListing.component.js | 4 ++-- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/ext/search_kit/Civi/Search/Admin.php b/ext/search_kit/Civi/Search/Admin.php index 21f87cfff6..400f987128 100644 --- a/ext/search_kit/Civi/Search/Admin.php +++ b/ext/search_kit/Civi/Search/Admin.php @@ -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') diff --git a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js index f94bd17440..9feafb75ca 100644 --- a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js @@ -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'); diff --git a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminExport.component.js b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminExport.component.js index 542f9b3e19..497400a562 100644 --- a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminExport.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminExport.component.js @@ -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')}, diff --git a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminImport.component.js b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminImport.component.js index 987a52f0c9..909c9d66d1 100644 --- a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminImport.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminImport.component.js @@ -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 diff --git a/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js b/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js index 110ce193a1..ddff68cda3 100644 --- a/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js @@ -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 = { -- 2.25.1