From 34b7a1c7c9a56926bd47e0b024b443033e397d1c Mon Sep 17 00:00:00 2001 From: naomi Date: Sun, 3 Apr 2022 19:27:43 +0100 Subject: [PATCH] fixed redirect after deleting activity - defaults to target if there's no case --- modules/opencase_cases/opencase_cases.module | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/opencase_cases/opencase_cases.module b/modules/opencase_cases/opencase_cases.module index 2295e38..e131cd6 100644 --- a/modules/opencase_cases/opencase_cases.module +++ b/modules/opencase_cases/opencase_cases.module @@ -7,6 +7,7 @@ declare(strict_types = 1); */ use Drupal\Core\Routing\RouteMatchInterface; +use PHPUnit\Framework\Constraint\IsEmpty; use function PHPUnit\Framework\isEmpty; @@ -183,9 +184,16 @@ function opencase_cases_form_alter(&$form, &$form_state, $form_id) { function _opencase_cases_redirect_to_home($form, &$form_state) { $form_state->setRedirect(''); } + +// Upon deletion of an activity, go to the related case if there is one, otherwise to its target. 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]); + if (!IsEmpty($form_state->getFormObject()->getEntity()->oc_case)) { + $case_id = $form_state->getFormObject()->getEntity()->oc_case->target_id; + $form_state->setRedirect('entity.oc_case.canonical', ['oc_case' => $case_id]); + } else { + $target_actor_id = $form_state->getFormObject()->getEntity()->oc_target->target_id; + $form_state->setRedirect('entity.oc_actor.canonical', ['oc_actor' => $target_actor_id]); + } } /** * Implements hook_theme_suggestions_HOOK().