Search ext: Add settingsCallback to searchAdmin module
[civicrm-core.git] / ext / search / CRM / Search / Page / Admin.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 * Angular base page for search admin
14 */
15 class CRM_Search_Page_Admin extends CRM_Core_Page {
16
17 /**
18 * @var string[]
19 */
20 private $allowedEntities = [];
21
22 public function run() {
23 $breadCrumb = [
24 'title' => ts('Search Kit'),
25 'url' => CRM_Utils_System::url('civicrm/search'),
26 ];
27 CRM_Utils_System::appendBreadCrumb([$breadCrumb]);
28
29 $schema = \Civi\Search\Admin::getSchema();
30
31 // If user does not have permission to search any entity, bye bye.
32 if (!$schema) {
33 CRM_Utils_System::permissionDenied();
34 }
35
36 // Add client-side vars for the search UI
37 $vars = [
38 'schema' => $schema,
39 'links' => \Civi\Search\Admin::getLinks(array_column($schema, 'name')),
40 ];
41
42 Civi::resources()
43 ->addBundle('bootstrap3')
44 ->addVars('search', $vars);
45
46 // Load angular module
47 $loader = new Civi\Angular\AngularLoader();
48 $loader->setModules(['searchAdmin']);
49 $loader->setPageName('civicrm/search');
50 $loader->useApp([
51 'defaultRoute' => '/create/Contact',
52 ]);
53 $loader->load();
54 parent::run();
55 }
56
57 }