Added config for relatin case types to actor types
This commit is contained in:
parent
ce1d3ca38b
commit
cba43a04e5
@ -111,3 +111,41 @@ function opencase_theme() {
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function opencase_form_oc_case_type_add_form_alter(&$form, $form_state) {
|
||||||
|
opencase_configure_actor_types($form);
|
||||||
|
}
|
||||||
|
|
||||||
|
function opencase_form_oc_case_type_edit_form_alter(&$form, $form_state) {
|
||||||
|
opencase_configure_actor_types($form);
|
||||||
|
$machine_name = $form['id']['#default_value'];
|
||||||
|
|
||||||
|
if ($machine_name) {
|
||||||
|
$conf_name = 'opencase.case_type.actor_types.'.$machine_name;
|
||||||
|
$form['actor_types']['#default_value'] = (array)\Drupal::config($conf_name)->get('actor_types');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function opencase_configure_actor_types(&$form) {
|
||||||
|
$actor_types = \Drupal::service('entity_type.bundle.info')->getBundleInfo('oc_actor');
|
||||||
|
$options = array();
|
||||||
|
foreach($actor_types as $machine_name => $info) {
|
||||||
|
$options[$machine_name] = $info['label'];
|
||||||
|
}
|
||||||
|
$form['actor_types'] = array(
|
||||||
|
'#title' => t('Actor types'),
|
||||||
|
'#description' => t('Types of people that can be involved in this kind of case.'),
|
||||||
|
'#type' => 'checkboxes',
|
||||||
|
'#options' => $options
|
||||||
|
);
|
||||||
|
$form['actions']['submit']['#submit'][] = 'opencase_configure_actor_types_submit';
|
||||||
|
}
|
||||||
|
|
||||||
|
function opencase_configure_actor_types_submit($form, $form_state) {
|
||||||
|
$machine_name = $form['id']['#default_value'] ? $form['id']['#default_value'] : $form_state->getValue('id');
|
||||||
|
$conf_name = 'opencase.case_type.actor_types.'.$machine_name;
|
||||||
|
\Drupal::configFactory()
|
||||||
|
->getEditable($conf_name)
|
||||||
|
->set('actor_types', $form_state->getValue('actor_types'))
|
||||||
|
->save();
|
||||||
|
}
|
||||||
|
13
opencase.schema.yml
Normal file
13
opencase.schema.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Config for storing which types of actors can be
|
||||||
|
# involved in which kinds of cases.
|
||||||
|
# The * is a case_type
|
||||||
|
opencase.case_type.actor_types.*:
|
||||||
|
type: config_entity
|
||||||
|
label: Actor types per case type
|
||||||
|
mapping:
|
||||||
|
actor_types:
|
||||||
|
label: Actor types
|
||||||
|
type: sequence
|
||||||
|
sequence: { }
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user