From 5395b42bab17c35fd4f9154d84ba6c5e6bd7c86e Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Tue, 25 Feb 2020 15:26:50 +0100 Subject: [PATCH] Fix URL param overrides upon rendering Before, we used setParams() instead of with() to populate the parameters which is especially problematic with imported nodes where the config paramter got overriden for every subsequent node. fixes #228 --- library/Businessprocess/Renderer/Renderer.php | 3 ++- library/Businessprocess/Renderer/TileRenderer.php | 4 ++-- library/Businessprocess/Renderer/TreeRenderer.php | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/library/Businessprocess/Renderer/Renderer.php b/library/Businessprocess/Renderer/Renderer.php index 5d613d7..c6fbbb6 100644 --- a/library/Businessprocess/Renderer/Renderer.php +++ b/library/Businessprocess/Renderer/Renderer.php @@ -214,7 +214,8 @@ abstract class Renderer extends HtmlDocument $paths = $node->getPaths(); } - $url = $this->getUrl()->setParams([ + $url = clone $this->getUrl(); + $url->setParams([ 'config' => $node->getBpConfig()->getName(), 'node' => $name ]); diff --git a/library/Businessprocess/Renderer/TileRenderer.php b/library/Businessprocess/Renderer/TileRenderer.php index 328bc3d..f1f779e 100644 --- a/library/Businessprocess/Renderer/TileRenderer.php +++ b/library/Businessprocess/Renderer/TileRenderer.php @@ -30,7 +30,7 @@ class TileRenderer extends Renderer if ($this->wantsRootNodes()) { $nodesDiv->getAttributes()->add( 'data-action-url', - $this->getUrl()->setParams(['config' => $bp->getName()])->getAbsoluteUrl() + $this->getUrl()->with(['config' => $bp->getName()])->getAbsoluteUrl() ); } else { $nodeName = $this->parent instanceof ImportedNode @@ -39,7 +39,7 @@ class TileRenderer extends Renderer $nodesDiv->getAttributes() ->add('data-node-name', $nodeName) ->add('data-action-url', $this->getUrl() - ->setParams([ + ->with([ 'config' => $this->parent->getBpConfig()->getName(), 'node' => $nodeName ]) diff --git a/library/Businessprocess/Renderer/TreeRenderer.php b/library/Businessprocess/Renderer/TreeRenderer.php index 6936950..8cfed61 100644 --- a/library/Businessprocess/Renderer/TreeRenderer.php +++ b/library/Businessprocess/Renderer/TreeRenderer.php @@ -42,7 +42,7 @@ class TreeRenderer extends Renderer if ($this->wantsRootNodes()) { $tree->getAttributes()->add( 'data-action-url', - $this->getUrl()->setParams(['config' => $bp->getName()])->getAbsoluteUrl() + $this->getUrl()->with(['config' => $bp->getName()])->getAbsoluteUrl() ); } else { $nodeName = $this->parent instanceof ImportedNode @@ -51,7 +51,7 @@ class TreeRenderer extends Renderer $tree->getAttributes() ->add('data-node-name', $nodeName) ->add('data-action-url', $this->getUrl() - ->setParams([ + ->with([ 'config' => $this->parent->getBpConfig()->getName(), 'node' => $nodeName ]) @@ -203,7 +203,7 @@ class TreeRenderer extends Renderer ]), 'data-csrf-token' => CsrfToken::generate(), 'data-action-url' => $this->getUrl() - ->setParams([ + ->with([ 'config' => $node->getBpConfig()->getName(), 'node' => $node instanceof ImportedNode ? $node->getNodeName()