101 lines
2.4 KiB
PHP
101 lines
2.4 KiB
PHP
<?php
|
|
namespace Civi\Angular\Page;
|
|
|
|
/**
|
|
* This page is simply a container; any Angular modules defined by CiviCRM (or by CiviCRM extensions)
|
|
* will be activated on this page.
|
|
*
|
|
* @link https://issues.civicrm.org/jira/browse/CRM-14479
|
|
*/
|
|
class Main extends \CRM_Core_Page {
|
|
|
|
/**
|
|
* The weight to assign to any Angular JS module files.
|
|
*/
|
|
const DEFAULT_MODULE_WEIGHT = 200;
|
|
|
|
/**
|
|
* The resource manager.
|
|
*
|
|
* Do not use publicly. Inject your own copy!
|
|
*
|
|
* @var \CRM_Core_Resources
|
|
* @deprecated
|
|
*/
|
|
public $res;
|
|
|
|
/**
|
|
* The Angular module manager.
|
|
*
|
|
* Do not use publicly. Inject your own copy!
|
|
*
|
|
* @var \Civi\Angular\Manager
|
|
* @deprecated
|
|
*/
|
|
public $angular;
|
|
|
|
/**
|
|
* The region of the page into which JavaScript will be loaded.
|
|
*
|
|
* @var String
|
|
* @deprecated
|
|
*/
|
|
public $region;
|
|
|
|
/**
|
|
* @param string $title
|
|
* Title of the page.
|
|
* @param int $mode
|
|
* Mode of the page.
|
|
* @param \CRM_Core_Resources|null $res
|
|
* Resource manager.
|
|
*/
|
|
public function __construct($title = NULL, $mode = NULL, $res = NULL) {
|
|
parent::__construct($title, $mode);
|
|
$this->res = \CRM_Core_Resources::singleton();
|
|
$this->angular = \Civi::service('angular');
|
|
$this->region = \CRM_Utils_Request::retrieve('snippet', 'String') ? 'ajax-snippet' : 'html-header';
|
|
}
|
|
|
|
/**
|
|
* This function takes care of all the things common to all
|
|
* pages. This typically involves assigning the appropriate
|
|
* smarty variable :)
|
|
*
|
|
* @return string
|
|
* The content generated by running this page
|
|
*/
|
|
public function run() {
|
|
$this->registerResources();
|
|
return parent::run();
|
|
}
|
|
|
|
/**
|
|
* Register resources required by Angular.
|
|
*/
|
|
public function registerResources() {
|
|
$loader = new \Civi\Angular\AngularLoader();
|
|
$loader->setPageName('civicrm/a');
|
|
$loader->setModules(array('crmApp'));
|
|
$loader->load();
|
|
|
|
// If trying to load an Angular page via AJAX, the route must be passed as a
|
|
// URL parameter, since the server doesn't receive information about
|
|
// URL fragments (i.e, what comes after the #).
|
|
\CRM_Core_Resources::singleton()->addSetting(array(
|
|
'crmApp' => array(
|
|
'defaultRoute' => NULL,
|
|
),
|
|
'angularRoute' => \CRM_Utils_Request::retrieve('route', 'String'),
|
|
));
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function getTemplateFileName() {
|
|
return 'Civi/Angular/Page/Main.tpl';
|
|
}
|
|
|
|
}
|