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;
*/
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),
'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')
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');
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')},
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
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 = {