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
This commit is contained in:
Eric Lippmann 2020-02-25 15:26:50 +01:00 committed by Johannes Meyer
parent 125bf37ba8
commit 5395b42bab
3 changed files with 7 additions and 6 deletions

View file

@ -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
]);

View file

@ -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
])

View file

@ -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()