fix: #3610522 Instance trace: offer an "Open" link to a parked human node's operator surface (task and operation nodes)

On the process-instance trace, a parked human node offered a "Signal" link per outcome and "Fire timer now" but no "Open" link to its operator surface, unless the node also declared a visitor-facing interaction block. An interaction-task or operation node whose only interaction is its operator surface (an order review, an attendance review) showed no way to open it from the trace, though the same node's open action appears fine on the pending-actions / Orders list.

Cause: the trace's "Open" came only from the token's has_interaction field (the visitor bearer page), which deliberately ignores an interaction task's operator interaction_plugin; the pending-actions list builds its open URL from the node's handler (actUrl), covering every doorway. The two disagreed.

Fix:

  • Add PendingActionsFinder::actUrlFor(): the account-agnostic "Open" URL of a parked human node, resolved through its pending-action handler, the same URL the pending-actions list uses.
  • The trace offers "Open" whenever it is non-NULL, so task and operation modes open uniformly (the target route enforces its own access).
  • Keep the visitor/bearer "Open" only for a pure bearer interaction with no operator surface, guarded so the two never double-add.

Test: PendingActionsFinderTest::testActUrlForOpensEitherDoorway asserts the operation page for a parked operation, the inbox completion form for a parked user task, and NULL once the token is no longer parked. Full orchestra_ui kernel + functional trace tests pass.

Merge request reports

Loading