From 702ff06408282ecf8e234f0f08bc014c31fefc59 Mon Sep 17 00:00:00 2001 From: Sabrina Sauter Date: Thu, 4 Dec 2025 22:01:53 +0100 Subject: [PATCH] [BUGFIX] handling of contentDimensions --- Classes/Controller/ModuleController.php | 8 ++-- .../Fragments/DimensionSelector.fusion | 38 ++++++++++++++++--- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/Classes/Controller/ModuleController.php b/Classes/Controller/ModuleController.php index 7de94fe..07231b4 100644 --- a/Classes/Controller/ModuleController.php +++ b/Classes/Controller/ModuleController.php @@ -180,7 +180,8 @@ public function createVocabularyAction(string $rootNodeAddress, string $name, ar $rootNode = $this->taxonomyService->getNodeByNodeAddress($rootNodeAddress); $subgraph = $this->taxonomyService->getSubgraphForNode($rootNode); - $generalizations = $contentRepository->getVariationGraph()->getRootGeneralizations(); + $generalizations = $contentRepository->getVariationGraph()->getDimensionSpacePoints() ? $contentRepository->getVariationGraph()->getDimensionSpacePoints() : $contentRepository->getVariationGraph()->getRootGeneralizations(); + $nodeAddress = NodeAddress::fromJsonString($rootNodeAddress); $originDimensionSpacePoint = OriginDimensionSpacePoint::fromDimensionSpacePoint($nodeAddress->dimensionSpacePoint); @@ -252,7 +253,6 @@ public function updateVocabularyAction(string $vocabularyNodeAddress, string $na { $vocabularyNode = $this->taxonomyService->getNodeByNodeAddress($vocabularyNodeAddress); $subgraph = $this->contentRepositoryRegistry->subgraphForNode($vocabularyNode); - $rootNode = $this->taxonomyService->findOrCreateRoot($subgraph); $this->contentRepository->handle( SetNodeProperties::create( @@ -283,7 +283,7 @@ public function updateVocabularyAction(string $vocabularyNodeAddress, string $na ); } - $this->redirect('index', null, null, ['rootNodeAddress' => NodeAddress::fromNode($rootNode)]); + $this->redirect('index'); } /** @@ -350,7 +350,7 @@ public function createTaxonomyAction(string $parentNodeAddress, string $name, ar } $subgraph = $this->taxonomyService->getSubgraphForNode($parentNode); - $generalizations = $this->contentRepository->getVariationGraph()->getRootGeneralizations(); + $generalizations = $this->contentRepository->getVariationGraph()->getDimensionSpacePoints() ? $this->contentRepository->getVariationGraph()->getDimensionSpacePoints() : $this->contentRepository->getVariationGraph()->getRootGeneralizations(); $nodeAddress = NodeAddress::fromJsonString($parentNodeAddress); $originDimensionSpacePoint = OriginDimensionSpacePoint::fromDimensionSpacePoint($nodeAddress->dimensionSpacePoint); diff --git a/Resources/Private/Fusion/Backend/Fragments/DimensionSelector.fusion b/Resources/Private/Fusion/Backend/Fragments/DimensionSelector.fusion index b8f2741..6355e4d 100644 --- a/Resources/Private/Fusion/Backend/Fragments/DimensionSelector.fusion +++ b/Resources/Private/Fusion/Backend/Fragments/DimensionSelector.fusion @@ -21,13 +21,41 @@ prototype(Sitegeist.Taxonomy:Views.Fragments.DimensionSelector) < prototype(Neos field.value={Neos.Dimension.currentValue(props.contextNode, dimensionKey).value} attributes.onchange="this.form.submit()" > - {String.firstLetterToUpperCase(dimensionKey)}: {Neos.Dimension.currentValue(props.contextNode, dimensionKey).value} - - {String.firstLetterToUpperCase(dimensionKey)}: {dimensionValue.value} - + - ` } + +prototype(Sitegeist.Taxonomy:Views.Fragments.DimensionSelector.Options) < prototype(Neos.Fusion:Component) { + dimension = null + dimensionKey = null + contextNode = null + + @context { + dimension = ${this.dimension} + dimensionKey = ${this.dimensionKey} + contextNode = ${this.contextNode} + } + + renderer = Neos.Fusion:Case { + dimensionConfigured { + condition = ${dimension.values} + renderer = afx` + + {String.firstLetterToUpperCase(dimensionKey)}: {dimensionValue.value} + + ` + } + default { + condition = ${dimension.rootValues} + renderer = afx` + {String.firstLetterToUpperCase(dimensionKey)}: {Neos.Dimension.currentValue(props.contextNode, dimensionKey).value} + + {String.firstLetterToUpperCase(dimensionKey)}: {dimensionValue.value} + + ` + } + } +} \ No newline at end of file