From 6cceb252c45983436c3aec42e2085a9626f1f7fa Mon Sep 17 00:00:00 2001 From: Miguel Angel Date: Mon, 29 Sep 2025 15:44:18 -0400 Subject: [PATCH 1/2] feat: add elementDestination property to ProcessUpdated event --- ProcessMaker/Events/ProcessUpdated.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ProcessMaker/Events/ProcessUpdated.php b/ProcessMaker/Events/ProcessUpdated.php index 01d253303b..a5e91245f3 100644 --- a/ProcessMaker/Events/ProcessUpdated.php +++ b/ProcessMaker/Events/ProcessUpdated.php @@ -26,6 +26,8 @@ class ProcessUpdated implements ShouldBroadcastNow public $activeTokens; + public $elementDestination; + /** * Create a new event instance. * @@ -41,6 +43,7 @@ public function __construct(ProcessRequest $processRequest, $event, TokenInterfa if ($token) { $this->tokenId = $token->getId(); $this->elementType = $token->element_type; + $this->elementDestination = $token->elementDestination; } } From 27f68ddfc47b012f0509ff8abd985f6c9bd1ea03 Mon Sep 17 00:00:00 2001 From: Miguel Angel Date: Mon, 29 Sep 2025 15:48:09 -0400 Subject: [PATCH 2/2] feat: streamline url assignment for conditional redirect --- ProcessMaker/Models/ProcessRequestToken.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ProcessMaker/Models/ProcessRequestToken.php b/ProcessMaker/Models/ProcessRequestToken.php index 75ef5b7546..4385664d8e 100644 --- a/ProcessMaker/Models/ProcessRequestToken.php +++ b/ProcessMaker/Models/ProcessRequestToken.php @@ -1317,10 +1317,17 @@ private function getElementDestination($elementDestinationType, $elementDestinat $result = $this->evaluateConditionalRedirect(app(ConditionalRedirectServiceInterface::class), $conditionalRedirectProp); if ($result) { $elementDestinationType = $result['taskDestination']['value']; + + $url = match ($elementDestinationType) { + 'customDashboard' => $result['customDashboard']['url'] ?? null, + 'externalURL' => $result['externalUrl'] ?? null, + default => null, + }; + $elementDestinationProp = [ 'value' => [ - 'url' => ($result['customDashboard']['url'] ?? null) ?: ($result['externalUrl'] ?? null), - ] + 'url' => $url, + ], ]; } } @@ -1372,6 +1379,7 @@ private function evaluateConditionalRedirect(ConditionalRedirectServiceInterface if (!$conditionalRedirectProp['isEnabled']) { return null; } + return $conditionalRedirectService->resolveForToken($conditionalRedirectProp['conditions'], $this); }