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) {
$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'));
}
}
public function postProcess() {
CRM_Utils_System::flushCache();
- $params = $this->exportValues();
if ($this->_action & CRM_Core_Action::DELETE) {
CRM_Core_BAO_OptionGroup::del($this->_id);
CRM_Core_Session::setStatus(ts('Selected option group has been deleted.'), ts('Record Deleted'), 'success');
}
else {
-
- $params = $ids = array();
// store the submitted values in an array
$params = $this->exportValues();
- if ($this->_action & CRM_Core_Action::UPDATE) {
- $ids['optionGroup'] = $this->_id;
+ 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;
+ }
+ }
+ elseif ($this->_action & CRM_Core_Action::UPDATE) {
+ $params['id'] = $this->_id;
}
- $optionGroup = CRM_Core_BAO_OptionGroup::add($params, $ids);
+ $optionGroup = CRM_Core_BAO_OptionGroup::add($params);
CRM_Core_Session::setStatus(ts('The Option Group \'%1\' has been saved.', array(1 => $optionGroup->name)), ts('Saved'), 'success');
}
}