Deleting activity in "No Cases" mode should redirect to first linked person, and other changes

This commit is contained in:
2021-02-05 13:43:11 +00:00
parent 06937b7443
commit 2bc1abc7a7
9 changed files with 437 additions and 24 deletions

View File

@ -62,3 +62,26 @@ function opencase_cases_entity_base_field_info($entity_type) {
public static function opencase_cases_default_activity_case_value() {
return array(\Drupal::request()->query->get('case_id'));
}
/**
* Implementation of hook_form_alter()
* Changes what page is redirected to after deleting things
*/
function opencase_cases_form_alter(&$form, &$form_state, $form_id) {
if (preg_match('/oc_actor_.*_delete_form/', $form_id) or (preg_match('/oc_case_.*_delete_form/', $form_id)) or (preg_match('/oc_organisation_.*_delete_form/', $form_id))) {
$form['actions']['submit']['#submit'][] = '_opencase_cases_redirect_to_home';
$form['actions']['cancel']['#url'] = $form_state->getFormObject()->getEntity()->toUrl();
}
if (preg_match('/oc_activity_.*_delete_form/', $form_id)) {
$form['actions']['submit']['#submit'][] = '_opencase_cases_delete_activity_redirect';
$form['actions']['cancel']['#url'] = $form_state->getFormObject()->getEntity()->toUrl();
}
}
function _opencase_cases_redirect_to_home($form, &$form_state) {
$form_state->setRedirect('<front>');
}
function _opencase_cases_delete_activity_redirect($form, &$form_state) {
$case_id = $form_state->getFormObject()->getEntity()->oc_case->target_id;
$form_state->setRedirect('entity.oc_case.canonical', ['oc_case' => $case_id]);
}