Skip to content
Snippets Groups Projects
Commit 2bc3bd8f authored by totten's avatar totten
Browse files

CRM-13768 - enable_components - Use same logic when toggling components via API and web UI

----------------------------------------
* CRM-13768: CiviCase not fully activated during extension installation
  http://issues.civicrm.org/jira/browse/CRM-13768
parent 076d8c82
No related branches found
No related tags found
No related merge requests found
......@@ -108,19 +108,7 @@ class CRM_Admin_Form_Setting_Component extends CRM_Admin_Form_Setting {
public function postProcess() {
$params = $this->controller->exportValues($this->_name);
// if CiviCase is being enabled,
// load the case related sample data
if (in_array('CiviCase', $params['enableComponents']) &&
!in_array('CiviCase', $this->_defaults['enableComponents'])
) {
$config = CRM_Core_Config::singleton();
CRM_Admin_Form_Setting_Component::loadCaseSampleData($config->dsn, $config->sqlDir . 'case_sample.mysql');
CRM_Admin_Form_Setting_Component::loadCaseSampleData($config->dsn, $config->sqlDir . 'case_sample1.mysql');
if (!CRM_Case_BAO_Case::createCaseViews()) {
$msg = ts("Could not create the MySQL views for CiviCase. Your mysql user needs to have the 'CREATE VIEW' permission");
CRM_Core_Error::fatal($msg);
}
}
CRM_Case_Info::onToggleComponents($this->_defaults['enableComponents'], $params['enableComponents'], NULL);
parent::commonProcess($params);
// reset navigation when components are enabled / disabled
......
......@@ -152,5 +152,29 @@ class CRM_Case_Info extends CRM_Core_Component_Info {
}
}
}
/**
* (Setting Callback)
* Respond to changes in the "enable_components" setting
*
* If CiviCase is being enabled, load the case related sample data
*
* @param array $oldValue List of component names
* @param array $newValue List of component names
* @param array $metadata Specification of the setting (per *.settings.php)
*/
public static function onToggleComponents($oldValue, $newValue, $metadata) {
if (in_array('CiviCase', $newValue) &&
!in_array('CiviCase', $oldValue)
) {
$config = CRM_Core_Config::singleton();
CRM_Admin_Form_Setting_Component::loadCaseSampleData($config->dsn, $config->sqlDir . 'case_sample.mysql');
CRM_Admin_Form_Setting_Component::loadCaseSampleData($config->dsn, $config->sqlDir . 'case_sample1.mysql');
if (!CRM_Case_BAO_Case::createCaseViews()) {
$msg = ts("Could not create the MySQL views for CiviCase. Your mysql user needs to have the 'CREATE VIEW' permission");
CRM_Core_Error::fatal($msg);
}
}
}
}
......@@ -626,6 +626,9 @@ When enabled, statistics about your CiviCRM installation are reported anonymousl
'is_contact' => 0,
'description' => null,
'help_text' => null,
'on_change' => array(
array('CRM_Case_Info', 'onToggleComponents')
),
),
'disable_core_css' => array(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment