Commit | Line | Data |
---|---|---|
e5afbdad TO |
1 | <?php |
2 | ||
3 | namespace Civi\Angular\Page; | |
4 | ||
5 | /** | |
6 | * This page returns HTML partials used by Angular. | |
7 | */ | |
8 | class Modules extends \CRM_Core_Page { | |
9 | ||
10 | /** | |
11 | * This page aggregates HTML partials used by Angular. | |
12 | */ | |
13 | public function run() { | |
14 | //$config = \CRM_Core_Config::singleton(); | |
15 | //\CRM_Core_Page_AJAX::setJsHeaders($config->debug ? 30 : NULL); | |
16 | \CRM_Core_Page_AJAX::setJsHeaders(); | |
17 | ||
18 | /** | |
19 | * @var \Civi\Angular\Manager $angular | |
20 | */ | |
21 | $angular = \Civi\Core\Container::singleton()->get('angular'); | |
22 | $modules = $angular->getModules(); | |
23 | ||
24 | $modulesExpr = \CRM_Utils_Request::retrieve('modules', 'String'); | |
25 | if ($modulesExpr) { | |
26 | $moduleNames = preg_grep( | |
27 | '/^[a-zA-Z0-9\-_\.]+$/', | |
28 | explode(',', $modulesExpr) | |
29 | ); | |
30 | } | |
31 | else { | |
32 | $moduleNames = array_keys($modules); | |
33 | } | |
34 | ||
35 | $result = array(); | |
36 | foreach ($moduleNames as $moduleName) { | |
37 | if (isset($modules[$moduleName])) { | |
38 | $result[$moduleName] = array(); | |
39 | $result[$moduleName]['js'] = $angular->getScriptUrls($moduleName); | |
40 | $result[$moduleName]['css'] = $angular->getStyleUrls($moduleName); | |
41 | $result[$moduleName]['partials'] = $angular->getPartials($moduleName); | |
42 | $result[$moduleName]['strings'] = $angular->getTranslatedStrings($moduleName); | |
43 | } | |
44 | } | |
45 | ||
46 | echo json_encode($result); | |
47 | \CRM_Utils_System::civiExit(); | |
48 | } | |
49 | ||
50 | } |