From 8456e727dd876adbb9013c88c0a2e46bfaf5dc2a Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 18 May 2017 20:39:11 -0700 Subject: [PATCH] CRM-20600 - Move Angular metadata to civix-style files This PR moves the metadata about Angular modules out of Civi\Angular\Manager and into standalone files (`ang/*.ang.php`). This uses the same structure as `civix`. Also, this makes it easier to navigate between the JS/HTML/CSS/PHP content. To test that these changes were safe, I ran the following command before and after this commit: $ cv ev 'var_dump(Civi::service("angular")->getModules());' The results were substantively identical. --- CRM/Case/Info.php | 15 ++---- CRM/Mailing/Info.php | 30 ++--------- Civi/Angular/Manager.php | 99 +++++++---------------------------- ang/angularFileUpload.ang.php | 9 ++++ ang/crmApp.ang.php | 9 ++++ ang/crmAttachment.ang.php | 14 +++++ ang/crmAutosave.ang.php | 9 ++++ ang/crmCaseType.ang.php | 19 +++++++ ang/crmCxn.ang.php | 11 ++++ ang/crmD3.ang.php | 15 ++++++ ang/crmExample.ang.php | 10 ++++ ang/crmMailing.ang.php | 17 ++++++ ang/crmMailingAB.ang.php | 18 +++++++ ang/crmResource.ang.php | 10 ++++ ang/crmStatusPage.ang.php | 14 +++++ ang/crmUi.ang.php | 10 ++++ ang/crmUtil.ang.php | 9 ++++ ang/dialogService.ang.php | 11 ++++ ang/ngRoute.ang.php | 9 ++++ ang/ngSanitize.ang.php | 9 ++++ ang/ui.sortable.ang.php | 9 ++++ ang/ui.utils.ang.php | 9 ++++ ang/unsavedChanges.ang.php | 9 ++++ 23 files changed, 257 insertions(+), 117 deletions(-) create mode 100644 ang/angularFileUpload.ang.php create mode 100644 ang/crmApp.ang.php create mode 100644 ang/crmAttachment.ang.php create mode 100644 ang/crmAutosave.ang.php create mode 100644 ang/crmCaseType.ang.php create mode 100644 ang/crmCxn.ang.php create mode 100644 ang/crmD3.ang.php create mode 100644 ang/crmExample.ang.php create mode 100644 ang/crmMailing.ang.php create mode 100644 ang/crmMailingAB.ang.php create mode 100644 ang/crmResource.ang.php create mode 100644 ang/crmStatusPage.ang.php create mode 100644 ang/crmUi.ang.php create mode 100644 ang/crmUtil.ang.php create mode 100644 ang/dialogService.ang.php create mode 100644 ang/ngRoute.ang.php create mode 100644 ang/ngSanitize.ang.php create mode 100644 ang/ui.sortable.ang.php create mode 100644 ang/ui.utils.ang.php create mode 100644 ang/unsavedChanges.ang.php diff --git a/CRM/Case/Info.php b/CRM/Case/Info.php index 21ef6a32e6..b0dbf9bb76 100644 --- a/CRM/Case/Info.php +++ b/CRM/Case/Info.php @@ -59,19 +59,10 @@ class CRM_Case_Info extends CRM_Core_Component_Info { * @inheritDoc */ public function getAngularModules() { - $result = array(); - $result['crmCaseType'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmCaseType.js'), - 'css' => array('ang/crmCaseType.css'), - 'partials' => array('ang/crmCaseType'), - ); + global $civicrm_root; - CRM_Core_Resources::singleton()->addSetting(array( - 'crmCaseType' => array( - 'REL_TYPE_CNAME' => CRM_Case_XMLProcessor::REL_TYPE_CNAME, - ), - )); + $result = array(); + $result['crmCaseType'] = include "$civicrm_root/ang/crmCaseType.ang.php"; return $result; } diff --git a/CRM/Mailing/Info.php b/CRM/Mailing/Info.php index f902b526c7..78557a7408 100644 --- a/CRM/Mailing/Info.php +++ b/CRM/Mailing/Info.php @@ -71,6 +71,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info { ) { return array(); } + global $civicrm_root; $reportIds = array(); $reportTypes = array('detail', 'opened', 'bounce', 'clicks'); @@ -81,32 +82,9 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info { $reportIds[$report] = $result['values'][0]['id']; } $result = array(); - $result['crmMailing'] = array( - 'ext' => 'civicrm', - 'js' => array( - 'ang/crmMailing.js', - 'ang/crmMailing/*.js', - ), - 'css' => array('ang/crmMailing.css'), - 'partials' => array('ang/crmMailing'), - ); - $result['crmMailingAB'] = array( - 'ext' => 'civicrm', - 'js' => array( - 'ang/crmMailingAB.js', - 'ang/crmMailingAB/*.js', - 'ang/crmMailingAB/*/*.js', - ), - 'css' => array('ang/crmMailingAB.css'), - 'partials' => array('ang/crmMailingAB'), - ); - $result['crmD3'] = array( - 'ext' => 'civicrm', - 'js' => array( - 'ang/crmD3.js', - 'bower_components/d3/d3.min.js', - ), - ); + $result['crmMailing'] = include "$civicrm_root/ang/crmMailing.ang.php"; + $result['crmMailingAB'] = include "$civicrm_root/ang/crmMailingAB.ang.php"; + $result['crmD3'] = include "$civicrm_root/ang/crmD3.ang.php"; $config = CRM_Core_Config::singleton(); $session = CRM_Core_Session::singleton(); diff --git a/Civi/Angular/Manager.php b/Civi/Angular/Manager.php index 9982b21c6b..8542d32c23 100644 --- a/Civi/Angular/Manager.php +++ b/Civi/Angular/Manager.php @@ -58,87 +58,28 @@ class Manager { public function getModules() { if ($this->modules === NULL) { $config = \CRM_Core_Config::singleton(); + global $civicrm_root; - $angularModules = array(); - $angularModules['angularFileUpload'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-file-upload/angular-file-upload.min.js'), - ); - $angularModules['crmApp'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmApp.js'), - ); - $angularModules['crmAttachment'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmAttachment.js'), - 'css' => array('ang/crmAttachment.css'), - 'partials' => array('ang/crmAttachment'), - 'settings' => array( - 'token' => \CRM_Core_Page_AJAX_Attachment::createToken(), - ), - ); - $angularModules['crmAutosave'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmAutosave.js'), - ); - $angularModules['crmCxn'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmCxn.js', 'ang/crmCxn/*.js'), - 'css' => array('ang/crmCxn.css'), - 'partials' => array('ang/crmCxn'), - ); - //$angularModules['crmExample'] = array( - // 'ext' => 'civicrm', - // 'js' => array('ang/crmExample.js'), - // 'partials' => array('ang/crmExample'), - //); - $angularModules['crmResource'] = array( - 'ext' => 'civicrm', - // 'js' => array('js/angular-crmResource/byModule.js'), // One HTTP request per module. - 'js' => array('js/angular-crmResource/all.js'), // One HTTP request for all modules. - ); - $angularModules['crmUi'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmUi.js'), - 'partials' => array('ang/crmUi'), - ); - $angularModules['crmUtil'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmUtil.js'), - ); - // https://github.com/jwstadler/angular-jquery-dialog-service - $angularModules['dialogService'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-jquery-dialog-service/dialog-service.js'), - ); - $angularModules['ngRoute'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-route/angular-route.min.js'), - ); - $angularModules['ngSanitize'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-sanitize/angular-sanitize.min.js'), - ); - $angularModules['ui.utils'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-ui-utils/ui-utils.min.js'), - ); - $angularModules['ui.sortable'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-ui-sortable/sortable.min.js'), - ); - $angularModules['unsavedChanges'] = array( - 'ext' => 'civicrm', - 'js' => array('bower_components/angular-unsavedChanges/dist/unsavedChanges.min.js'), - ); + // Note: It would be nice to just glob("$civicrm_root/ang/*.ang.php"), but at time + // of writing CiviMail and CiviCase have special conditionals. - $angularModules['statuspage'] = array( - 'ext' => 'civicrm', - 'js' => array('ang/crmStatusPage.js', 'ang/crmStatusPage/*.js'), - 'css' => array('ang/crmStatusPage.css'), - 'partials' => array('ang/crmStatusPage'), - 'settings' => array(), - ); + $angularModules = array(); + $angularModules['angularFileUpload'] = include "$civicrm_root/ang/angularFileUpload.ang.php"; + $angularModules['crmApp'] = include "$civicrm_root/ang/crmApp.ang.php"; + $angularModules['crmAttachment'] = include "$civicrm_root/ang/crmAttachment.ang.php"; + $angularModules['crmAutosave'] = include "$civicrm_root/ang/crmAutosave.ang.php"; + $angularModules['crmCxn'] = include "$civicrm_root/ang/crmCxn.ang.php"; + // $angularModules['crmExample'] = include "$civicrm_root/ang/crmExample.ang.php"; + $angularModules['crmResource'] = include "$civicrm_root/ang/crmResource.ang.php"; + $angularModules['crmUi'] = include "$civicrm_root/ang/crmUi.ang.php"; + $angularModules['crmUtil'] = include "$civicrm_root/ang/crmUtil.ang.php"; + $angularModules['dialogService'] = include "$civicrm_root/ang/dialogService.ang.php"; + $angularModules['ngRoute'] = include "$civicrm_root/ang/ngRoute.ang.php"; + $angularModules['ngSanitize'] = include "$civicrm_root/ang/ngSanitize.ang.php"; + $angularModules['ui.utils'] = include "$civicrm_root/ang/ui.utils.ang.php"; + $angularModules['ui.sortable'] = include "$civicrm_root/ang/ui.sortable.ang.php"; + $angularModules['unsavedChanges'] = include "$civicrm_root/ang/unsavedChanges.ang.php"; + $angularModules['statuspage'] = include "$civicrm_root/ang/crmStatusPage.ang.php"; foreach (\CRM_Core_Component::getEnabledComponents() as $component) { $angularModules = array_merge($angularModules, $component->getAngularModules()); diff --git a/ang/angularFileUpload.ang.php b/ang/angularFileUpload.ang.php new file mode 100644 index 0000000000..b8c99761a1 --- /dev/null +++ b/ang/angularFileUpload.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('bower_components/angular-file-upload/angular-file-upload.min.js'), +); diff --git a/ang/crmApp.ang.php b/ang/crmApp.ang.php new file mode 100644 index 0000000000..5139e80a54 --- /dev/null +++ b/ang/crmApp.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('ang/crmApp.js'), +); diff --git a/ang/crmAttachment.ang.php b/ang/crmAttachment.ang.php new file mode 100644 index 0000000000..d598c8a1c2 --- /dev/null +++ b/ang/crmAttachment.ang.php @@ -0,0 +1,14 @@ + 'civicrm', + 'js' => array('ang/crmAttachment.js'), + 'css' => array('ang/crmAttachment.css'), + 'partials' => array('ang/crmAttachment'), + 'settings' => array( + 'token' => \CRM_Core_Page_AJAX_Attachment::createToken(), + ), +); diff --git a/ang/crmAutosave.ang.php b/ang/crmAutosave.ang.php new file mode 100644 index 0000000000..95794db5c7 --- /dev/null +++ b/ang/crmAutosave.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('ang/crmAutosave.js'), +); diff --git a/ang/crmCaseType.ang.php b/ang/crmCaseType.ang.php new file mode 100644 index 0000000000..62101830b3 --- /dev/null +++ b/ang/crmCaseType.ang.php @@ -0,0 +1,19 @@ +addSetting(array( + 'crmCaseType' => array( + 'REL_TYPE_CNAME' => CRM_Case_XMLProcessor::REL_TYPE_CNAME, + ), +)); + +return array( + 'ext' => 'civicrm', + 'js' => array('ang/crmCaseType.js'), + 'css' => array('ang/crmCaseType.css'), + 'partials' => array('ang/crmCaseType'), +); diff --git a/ang/crmCxn.ang.php b/ang/crmCxn.ang.php new file mode 100644 index 0000000000..eb67e0f168 --- /dev/null +++ b/ang/crmCxn.ang.php @@ -0,0 +1,11 @@ + 'civicrm', + 'js' => array('ang/crmCxn.js', 'ang/crmCxn/*.js'), + 'css' => array('ang/crmCxn.css'), + 'partials' => array('ang/crmCxn'), +); diff --git a/ang/crmD3.ang.php b/ang/crmD3.ang.php new file mode 100644 index 0000000000..ad2047ac6c --- /dev/null +++ b/ang/crmD3.ang.php @@ -0,0 +1,15 @@ + 'civicrm', + 'js' => array( + 'ang/crmD3.js', + 'bower_components/d3/d3.min.js', + ), +); diff --git a/ang/crmExample.ang.php b/ang/crmExample.ang.php new file mode 100644 index 0000000000..41081ab57c --- /dev/null +++ b/ang/crmExample.ang.php @@ -0,0 +1,10 @@ + 'civicrm', + 'js' => array('ang/crmExample.js'), + 'partials' => array('ang/crmExample'), +); diff --git a/ang/crmMailing.ang.php b/ang/crmMailing.ang.php new file mode 100644 index 0000000000..3ea6a7b16f --- /dev/null +++ b/ang/crmMailing.ang.php @@ -0,0 +1,17 @@ + 'civicrm', + 'js' => array( + 'ang/crmMailing.js', + 'ang/crmMailing/*.js', + ), + 'css' => array('ang/crmMailing.css'), + 'partials' => array('ang/crmMailing'), +); diff --git a/ang/crmMailingAB.ang.php b/ang/crmMailingAB.ang.php new file mode 100644 index 0000000000..b89adee213 --- /dev/null +++ b/ang/crmMailingAB.ang.php @@ -0,0 +1,18 @@ + 'civicrm', + 'js' => array( + 'ang/crmMailingAB.js', + 'ang/crmMailingAB/*.js', + 'ang/crmMailingAB/*/*.js', + ), + 'css' => array('ang/crmMailingAB.css'), + 'partials' => array('ang/crmMailingAB'), +); diff --git a/ang/crmResource.ang.php b/ang/crmResource.ang.php new file mode 100644 index 0000000000..f63cc54c54 --- /dev/null +++ b/ang/crmResource.ang.php @@ -0,0 +1,10 @@ + 'civicrm', + // 'js' => array('js/angular-crmResource/byModule.js'), // One HTTP request per module. + 'js' => array('js/angular-crmResource/all.js'), // One HTTP request for all modules. +); diff --git a/ang/crmStatusPage.ang.php b/ang/crmStatusPage.ang.php new file mode 100644 index 0000000000..6175657943 --- /dev/null +++ b/ang/crmStatusPage.ang.php @@ -0,0 +1,14 @@ + 'civicrm', + 'js' => array('ang/crmStatusPage.js', 'ang/crmStatusPage/*.js'), + 'css' => array('ang/crmStatusPage.css'), + 'partials' => array('ang/crmStatusPage'), + 'settings' => array(), +); diff --git a/ang/crmUi.ang.php b/ang/crmUi.ang.php new file mode 100644 index 0000000000..8ab314e19a --- /dev/null +++ b/ang/crmUi.ang.php @@ -0,0 +1,10 @@ + 'civicrm', + 'js' => array('ang/crmUi.js'), + 'partials' => array('ang/crmUi'), +); diff --git a/ang/crmUtil.ang.php b/ang/crmUtil.ang.php new file mode 100644 index 0000000000..95f618d839 --- /dev/null +++ b/ang/crmUtil.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('ang/crmUtil.js'), +); diff --git a/ang/dialogService.ang.php b/ang/dialogService.ang.php new file mode 100644 index 0000000000..afeb6c98f2 --- /dev/null +++ b/ang/dialogService.ang.php @@ -0,0 +1,11 @@ + 'civicrm', + 'js' => array('bower_components/angular-jquery-dialog-service/dialog-service.js'), +); diff --git a/ang/ngRoute.ang.php b/ang/ngRoute.ang.php new file mode 100644 index 0000000000..96fea4591e --- /dev/null +++ b/ang/ngRoute.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('bower_components/angular-route/angular-route.min.js'), +); diff --git a/ang/ngSanitize.ang.php b/ang/ngSanitize.ang.php new file mode 100644 index 0000000000..8de9a66a39 --- /dev/null +++ b/ang/ngSanitize.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('bower_components/angular-sanitize/angular-sanitize.min.js'), +); diff --git a/ang/ui.sortable.ang.php b/ang/ui.sortable.ang.php new file mode 100644 index 0000000000..818f091014 --- /dev/null +++ b/ang/ui.sortable.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('bower_components/angular-ui-sortable/sortable.min.js'), +); diff --git a/ang/ui.utils.ang.php b/ang/ui.utils.ang.php new file mode 100644 index 0000000000..ab74e45b98 --- /dev/null +++ b/ang/ui.utils.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('bower_components/angular-ui-utils/ui-utils.min.js'), +); diff --git a/ang/unsavedChanges.ang.php b/ang/unsavedChanges.ang.php new file mode 100644 index 0000000000..3a862fcd28 --- /dev/null +++ b/ang/unsavedChanges.ang.php @@ -0,0 +1,9 @@ + 'civicrm', + 'js' => array('bower_components/angular-unsavedChanges/dist/unsavedChanges.min.js'), +); -- 2.25.1