diff --git a/DistributionPackages/Neos.NeosIo/Classes/ContentRepository/Transformation/FlattenCollectionTransformation.php b/DistributionPackages/Neos.NeosIo/Classes/ContentRepository/Transformation/FlattenCollectionTransformation.php new file mode 100644 index 000000000..c445649d7 --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Classes/ContentRepository/Transformation/FlattenCollectionTransformation.php @@ -0,0 +1,81 @@ +contentRepository + ->getContentGraph($node->workspaceName) + ->getSubgraph( + $node->dimensionSpacePoint, + NeosVisibilityConstraints::excludeRemoved() + ); + $collectionNode = $subgraph->findNodeByPath( + NodeName::fromString($this->collectionNodeName), + $node->aggregateId + ); + + if (!$collectionNode) { + return TransformationStep::createEmpty(); + } + + $commands = Commands::fromArray($subgraph->findChildNodes( + $collectionNode->aggregateId, + FindChildNodesFilter::create() + )->map(function (Node $childNode) use ($node, $workspaceNameForWriting) { + return MoveNodeAggregate::create( + $workspaceNameForWriting, + $node->dimensionSpacePoint, + $childNode->aggregateId, + RelationDistributionStrategy::STRATEGY_GATHER_ALL, + $node->aggregateId + ); + })); + + return TransformationStep::fromCommands($commands); + } + }; + } +} diff --git a/DistributionPackages/Neos.NeosIo/Configuration/Settings.ContentRepository.yaml b/DistributionPackages/Neos.NeosIo/Configuration/Settings.ContentRepository.yaml index 8dc26236d..9dde4f5ba 100644 --- a/DistributionPackages/Neos.NeosIo/Configuration/Settings.ContentRepository.yaml +++ b/DistributionPackages/Neos.NeosIo/Configuration/Settings.ContentRepository.yaml @@ -12,6 +12,11 @@ Neos: specializations: de: label: German + + nodeMigration: + transformationFactories: + FlattenCollection: Neos\NeosIo\ContentRepository\Transformation\FlattenCollectionTransformation + Neos: sites: '*': diff --git a/DistributionPackages/Neos.NeosIo/Configuration/Settings.Presets.yaml b/DistributionPackages/Neos.NeosIo/Configuration/Settings.Presets.yaml index cc9c8120f..be97ae135 100644 --- a/DistributionPackages/Neos.NeosIo/Configuration/Settings.Presets.yaml +++ b/DistributionPackages/Neos.NeosIo/Configuration/Settings.Presets.yaml @@ -33,8 +33,8 @@ Neos: u: false underline: false strikethrough: false - sub: false - sup: false + sub: true + sup: true del: false p: true h1: false @@ -73,9 +73,9 @@ Neos: u: true underline: true strikethrough: true - sub: false - sup: false - del: false + sub: true + sup: true + del: true p: true h1: true h2: true diff --git a/DistributionPackages/Neos.NeosIo/Migrations/ContentRepository/Version20250627114423.yaml b/DistributionPackages/Neos.NeosIo/Migrations/ContentRepository/Version20250627114423.yaml new file mode 100644 index 000000000..07c68c68b --- /dev/null +++ b/DistributionPackages/Neos.NeosIo/Migrations/ContentRepository/Version20250627114423.yaml @@ -0,0 +1,10 @@ +comments: 'Flatten badge grid by removing intermittent collection' +migration: + - filters: + - type: 'NodeType' + settings: + nodeType: 'Neos.NeosIo:BadgeGrid' + transformations: + - type: 'FlattenCollection' + settings: + collectionNodeName: 'badges' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/BadgeGrid.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/BadgeGrid.yaml index d6fff2549..f7a3e7569 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Content/BadgeGrid.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Content/BadgeGrid.yaml @@ -1,13 +1,11 @@ 'Neos.NeosIo:BadgeGrid': superTypes: 'Neos.Neos:Content': true - childNodes: - badges: - type: 'Neos.Neos:ContentCollection' - constraints: - nodeTypes: - '*': false - 'Neos.NeosIo:Badge': true + 'Neos.Neos:ContentCollection': true + constraints: + nodeTypes: + '*': false + 'Neos.NeosIo:Badge': true ui: label: 'Badge grid' icon: 'th-large' diff --git a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml index 30a9f9401..0fda8aadd 100644 --- a/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml +++ b/DistributionPackages/Neos.NeosIo/NodeTypes/Override/Mixin/TextMixin.yaml @@ -9,3 +9,5 @@ center: true right: true justify: true + sup: true + sub: true diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/BadgeGrid.fusion b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/BadgeGrid.fusion index f6311e778..4fa90c216 100644 --- a/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/BadgeGrid.fusion +++ b/DistributionPackages/Neos.NeosIo/Resources/Private/Fusion/Content/BadgeGrid.fusion @@ -1,9 +1,7 @@ -prototype(Neos.NeosIo:BadgeGrid) < prototype(Neos.Neos:Content) { - templatePath = 'resource://Neos.NeosIo/Private/Templates/NodeTypes/BadgeGrid.html' - - attributes.class = 'g' - - badges = Neos.Neos:ContentCollection { - nodePath = 'badges' - } +prototype(Neos.NeosIo:BadgeGrid) < prototype(Neos.Neos:ContentComponent) { + renderer = afx` +
+ +
+ ` } diff --git a/DistributionPackages/Neos.NeosIo/Resources/Private/Templates/NodeTypes/BadgeGrid.html b/DistributionPackages/Neos.NeosIo/Resources/Private/Templates/NodeTypes/BadgeGrid.html deleted file mode 100644 index cc77c02db..000000000 --- a/DistributionPackages/Neos.NeosIo/Resources/Private/Templates/NodeTypes/BadgeGrid.html +++ /dev/null @@ -1,3 +0,0 @@ -
f:format.raw()}> - {badges -> f:format.raw()} -