function webform_group_form_webform_ui_element_form_alter in Webform 8.5
Same name and namespace in other branches
- 6.x modules/webform_group/webform_group.module \webform_group_form_webform_ui_element_form_alter()
Implements hook_form_FORM_ID_alter() for webform ui element form.
File
- modules/
webform_group/ webform_group.module, line 204 - Provides a Webform integration with the Group module.
Code
function webform_group_form_webform_ui_element_form_alter(&$form, FormStateInterface $form_state) {
$default_properties = $form_state
->get('default_properties');
$custom_default_value =& $form['properties']['custom']['properties']['#default_value'];
$operations = [
'create',
'update',
'view',
];
foreach ($operations as $operation) {
$user_roles_property = 'access_' . $operation . '_roles';
$group_roles_property = 'access_' . $operation . '_group_roles';
// Get default value from custom properties.
if (isset($custom_default_value[$group_roles_property])) {
$default_value = $custom_default_value[$group_roles_property];
unset($custom_default_value[$group_roles_property]);
}
else {
$default_value = [];
}
$form['properties']['access']['access_' . $operation][$group_roles_property] = [
'#type' => 'webform_group_roles',
'#title' => t('Group roles'),
'#parents' => [
'properties',
$group_roles_property,
],
'#default_value' => $default_value,
];
$form['properties']['access']['access_' . $operation][$group_roles_property . '_message'] = [
'#type' => 'webform_message',
'#message_message' => t('Anonymous or authenticated users are able to access this element, which will result in group roles being ignored.'),
'#message_type' => 'warning',
'#message_close' => TRUE,
'#message_storage' => WebformMessage::STORAGE_SESSION,
'#states' => [
'visible' => [
[
':input[name="properties[' . $user_roles_property . '][anonymous]"]' => [
'checked' => TRUE,
],
],
'or',
[
':input[name="properties[' . $user_roles_property . '][authenticated]"]' => [
'checked' => TRUE,
],
],
],
],
];
// Set default property so that these custom properties are processed.
$default_properties[$group_roles_property] = [];
}
$form_state
->set('default_properties', $default_properties);
}