'Select' => 'Select',
'Radio' => 'Radio',
'CheckBox' => 'CheckBox',
- 'Multi-Select' => 'Multi-Select',
'Autocomplete-Select' => 'Autocomplete-Select',
],
['Text' => 'Text', 'Select' => 'Select', 'Radio' => 'Radio'],
['TextArea' => 'TextArea', 'RichTextEditor' => 'RichTextEditor'],
['Date' => 'Select Date'],
['Radio' => 'Radio'],
- ['StateProvince' => 'Select State/Province', 'Multi-Select' => 'Multi-Select State/Province'],
- ['Country' => 'Select Country', 'Multi-Select' => 'Multi-Select Country'],
+ ['StateProvince' => 'Select State/Province'],
+ ['Country' => 'Select Country'],
['File' => 'File'],
['Link' => 'Link'],
['ContactReference' => 'Autocomplete-Select'],
}
if ($isReserved = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $this->_gid, 'is_reserved', 'id')) {
- CRM_Core_Error::fatal("You cannot add or edit fields in a reserved custom field-set.");
+ CRM_Core_Error::statusBounce("You cannot add or edit fields in a reserved custom field-set.");
}
if ($this->_gid) {
'Select' => ts('Select'),
'Radio' => ts('Radio'),
'CheckBox' => ts('CheckBox'),
- 'Multi-Select' => ts('Multi-Select'),
'Autocomplete-Select' => ts('Autocomplete-Select'),
],
[
['TextArea' => ts('TextArea'), 'RichTextEditor' => ts('Rich Text Editor')],
['Date' => ts('Select Date')],
['Radio' => ts('Radio')],
- ['StateProvince' => ts('Select State/Province'), 'Multi-Select' => ts('Multi-Select State/Province')],
- ['Country' => ts('Select Country'), 'Multi-Select' => ts('Multi-Select Country')],
+ ['StateProvince' => ts('Select State/Province')],
+ ['Country' => ts('Select Country')],
['File' => ts('Select File')],
['Link' => ts('Link')],
['ContactReference' => ts('Autocomplete-Select')],
'return' => ['title'],
];
+ $this->add('checkbox', 'serialize', ts('Multi-Select'));
+
if ($this->_action == CRM_Core_Action::UPDATE) {
$this->freeze('data_type');
if (!empty($this->_values['option_group_id'])) {
if (isset($fields['data_type'][1])) {
$dataField = $fields['data_type'][1];
}
- $optionFields = ['Select', 'Multi-Select', 'CheckBox', 'Radio'];
+ $optionFields = ['Select', 'CheckBox', 'Radio'];
if (isset($fields['option_type']) && $fields['option_type'] == 1) {
//capture duplicate Custom option values
$params['is_search_range'] = 0;
}
+ // Serialization cannot be changed on update
+ if ($this->_id) {
+ unset($params['serialize']);
+ }
+ elseif (strpos($params['html_type'], 'Select') === 0) {
+ $params['serialize'] = $params['serialize'] ? CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND : 'null';
+ }
+ else {
+ $params['serialize'] = $params['html_type'] == 'CheckBox' ? CRM_Core_DAO::SERIALIZE_SEPARATOR_BOOKEND : 'null';
+ }
+
$filter = 'null';
if ($dataTypeKey == 11 && !empty($params['filter_selected'])) {
if ($params['filter_selected'] == 'Advance' && trim(CRM_Utils_Array::value('filter', $params))) {