X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FAdmin%2FForm%2FOptionGroup.php;h=0b76228f1c1c9a8bbd47f389fa027de8f11bbcee;hb=752a3cbc3fd578e398ccd3773cc83b93c28805d8;hp=c1216fcd83c2294b8d88f289009b8114161ac15b;hpb=b993682456d1d272250b03f4b84fc643d8948e46;p=civicrm-core.git diff --git a/CRM/Admin/Form/OptionGroup.php b/CRM/Admin/Form/OptionGroup.php index c1216fcd83..0b76228f1c 100644 --- a/CRM/Admin/Form/OptionGroup.php +++ b/CRM/Admin/Form/OptionGroup.php @@ -78,7 +78,7 @@ class CRM_Admin_Form_OptionGroup extends CRM_Admin_Form { CRM_Core_DAO::getAttribute('CRM_Core_DAO_OptionGroup', 'description') ); - $this->addSelect('data_type', array('options' => CRM_Utils_Type::dataTypes()), TRUE); + $this->addSelect('data_type', array('options' => CRM_Utils_Type::dataTypes()), empty($this->_values['is_reserved'])); $element = $this->add('checkbox', 'is_active', ts('Enabled?')); if ($this->_action & CRM_Core_Action::UPDATE) { @@ -96,8 +96,12 @@ class CRM_Admin_Form_OptionGroup extends CRM_Admin_Form { $element->freeze(); } } + + $this->add('checkbox', 'is_reserved', ts('Reserved?')); + $this->freeze('is_reserved'); + if (!empty($this->_values['is_reserved'])) { - $this->freeze(array('name', 'is_active')); + $this->freeze(array('name', 'is_active', 'data_type')); } } @@ -118,12 +122,13 @@ class CRM_Admin_Form_OptionGroup extends CRM_Admin_Form { // store the submitted values in an array $params = $this->exportValues(); - // If we are adding option group via UI it should not be marked reserved. - if (!isset($params['is_reserved'])) { - $params['is_reserved'] = 0; + if ($this->_action & CRM_Core_Action::ADD) { + // If we are adding option group via UI it should not be marked reserved. + if (!isset($params['is_reserved'])) { + $params['is_reserved'] = 0; + } } - - if ($this->_action & CRM_Core_Action::UPDATE) { + elseif ($this->_action & CRM_Core_Action::UPDATE) { $params['id'] = $this->_id; }