Skip to content

Commit e0184fe

Browse files
committed
FEATURE: Props, PropSets, UseCases Container initially work for CPX
1 parent 984b518 commit e0184fe

19 files changed

+418
-84
lines changed

Classes/Controller/ApiController.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,14 @@ public function configurationAction(?string $sitePackageKey = null): void
5656
$value['ui'] = [
5757
'sitePackages' => $allStyleguides,
5858
'styleguides' => $allStyleguides,
59-
'viewportPresets' => $this->configurationService->getSiteConfiguration($styleguideAddress->toString(), 'ui.viewportPresets'),
60-
'localePresets' => $this->configurationService->getSiteConfiguration($styleguideAddress->toString(), 'ui.localePresets'),
61-
'hotkeys' => $this->configurationService->getSiteConfiguration($styleguideAddress->toString(), 'ui.hotkeys'),
62-
'preview' => $this->configurationService->getSiteConfiguration($styleguideAddress->toString(), 'preview')
59+
'viewportPresets' => $this->configurationService->getStyleguideConfiguration($styleguideAddress, 'ui.viewportPresets'),
60+
'localePresets' => $this->configurationService->getStyleguideConfiguration($styleguideAddress, 'ui.localePresets'),
61+
'hotkeys' => $this->configurationService->getStyleguideConfiguration($styleguideAddress, 'ui.hotkeys'),
62+
'preview' => $this->configurationService->getStyleguideConfiguration($styleguideAddress, 'preview')
6363
];
6464
$value['styleguideObjects'] = $styleguide->getStyleguideObjectList();
65+
66+
$this->view->setVariablesToRender(['value']);
6567
$this->view->assign('value', $value);
6668
}
6769

Classes/Controller/ModuleController.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ class ModuleController extends ActionController
3939
*/
4040
public function initializeView(ViewInterface $view)
4141
{
42-
$styleguideAddress = $this->styleguideRepository->getDefault()->address->toString();
42+
$defaultStyleguide = $this->styleguideRepository->getDefault();
43+
$styleguideAddress = $defaultStyleguide->address->toString();
44+
4345
$this->view->assign('defaultStyleguideAddress', $styleguideAddress);
4446
}
4547

Classes/Controller/PreviewController.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,9 @@ class PreviewController extends ActionController
5858
* @param string|null $propSet
5959
* @param string|null $props props as json encoded string
6060
* @param string|null $locales locales-fallback-chain as comma sepertated string
61-
* @param bool|null $showGrid
6261
* @return string
6362
*/
64-
public function indexAction(string $prototypeName, string $sitePackageKey, ?string $useCase = '__default', ?string $propSet = '__default', ?string $props = '', ?string $locales = '', ?bool $showGrid = false): string
63+
public function indexAction(string $prototypeName, string $sitePackageKey, ?string $useCase = '__default', ?string $propSet = '__default', ?string $props = '', ?string $locales = ''): string
6564
{
6665
$renderProps = [];
6766
if ($props) {
@@ -85,10 +84,6 @@ public function indexAction(string $prototypeName, string $sitePackageKey, ?stri
8584
$renderLocales = $this->localeFallback ?: [$this->defaultLocale];
8685
}
8786

88-
// if ($showGrid) {
89-
// $gridConfigurations = $this->configurationService->getSiteConfiguration($sitePackageKey, ['ui', 'grids']);
90-
// }
91-
9287
$styleguide = $this->styleguideRepository->getStyleGuide(StyleguideAddress::fromString($sitePackageKey));
9388
$result = $styleguide->renderStyleguideObject(
9489
StyleguideObjectIdentifier::fromString($prototypeName),

Classes/Domain/StyleguideInterface.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
interface StyleguideInterface
2828
{
29+
public function getStyleguideAddress(): StyleguideAddress;
30+
2931
public function getStyleguideIdentifier(): StyleguideIdentifier;
3032

3133
public function getStyleguideObjectList(): StyleguideObjectCollection;

Classes/Domain/StyleguideMetadataCollection.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,28 @@
2424
final readonly class StyleguideMetadataCollection implements \JsonSerializable, \IteratorAggregate
2525
{
2626
/**
27-
* @var StyleguideMetadata[]
27+
* @var array<string, StyleguideMetadata>
2828
*/
2929
public array $metadataItems;
3030

3131
public function __construct(
3232
StyleguideMetadata ... $metadata
3333
) {
34-
$this->metadataItems = $metadata;
34+
$items = [];
35+
foreach ($metadata as $metadataItem) {
36+
$items[$metadataItem->address->toString()] = $metadataItem;
37+
}
38+
$this->metadataItems = $items;
39+
}
40+
41+
public function byAddress(StyleguideAddress $address): ?StyleguideMetadata
42+
{
43+
return $this->metadataItems[$address->toString()] ?? null;
44+
}
45+
46+
public function first(): ?StyleguideMetadata
47+
{
48+
return $this->metadataItems[array_key_first($this->metadataItems)] ?? null;
3549
}
3650

3751
public static function fromMultiple(StyleguideMetadataCollection ... $metadataCollection): self

Classes/Domain/StyleguideObjects/Props/Editor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Neos\Flow\Annotations as Flow;
1717

1818
#[Flow\Proxy(false)]
19-
final readonly class Editor
19+
final readonly class Editor implements \JsonSerializable
2020
{
2121
public function __construct(
2222
public EditorIdentifier $identifier,

Classes/Domain/StyleguideObjects/Props/Prop.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Neos\Flow\Annotations as Flow;
1717

1818
#[Flow\Proxy(false)]
19-
final readonly class Prop
19+
final readonly class Prop implements \JsonSerializable
2020
{
2121
public function __construct(
2222
public PropName $name,

Classes/Domain/StyleguideObjects/Props/PropsCollection.php

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Neos\Flow\Annotations as Flow;
1717

1818
#[Flow\Proxy(false)]
19-
final readonly class PropsCollection
19+
final readonly class PropsCollection implements \JsonSerializable
2020
{
2121
/**
2222
* @var Prop[]
@@ -31,14 +31,6 @@ public function __construct(Prop ...$props)
3131
$this->props = $props;
3232
}
3333

34-
/**
35-
* @return iterable<mixed,Prop>
36-
*/
37-
public function getProps(): iterable
38-
{
39-
return $this->props;
40-
}
41-
4234
/**
4335
* @return array|Prop[]
4436
*/

Classes/Domain/StyleguideProviderInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ interface StyleguideProviderInterface
1919
{
2020
public function getStyleguideMetadataCollection(StyleguideProviderIdentifier $providerIdentifier): StyleguideMetadataCollection;
2121

22-
public function getStyleguide(StyleguideIdentifier $identifier): StyleguideInterface;
22+
public function getStyleguide(StyleguideAddress $address): StyleguideInterface;
2323
}

Classes/Domain/StyleguideRepository.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,17 @@
55

66
use Neos\Flow\Annotations as Flow;
77
use Neos\Flow\ObjectManagement\ObjectManagerInterface;
8-
use Neos\Flow\Reflection\ReflectionService;
9-
use function PHPUnit\Framework\fileExists;
108

119
#[Flow\Scope("singleton")]
1210
class StyleguideRepository
1311
{
1412
#[Flow\Inject]
1513
protected ObjectManagerInterface $objectManager;
1614

17-
#[Flow\InjectConfiguration(path: 'styleguideProviders')]
15+
#[Flow\InjectConfiguration(package: 'Sitegeist.Monocle', path: 'styleguideProviders')]
1816
protected array $styleguideProviderConfiguration;
1917

20-
#[Flow\InjectConfiguration(path: 'defaultStyleguide')]
18+
#[Flow\InjectConfiguration(package: 'Sitegeist.Monocle', path: 'defaultStyleguide')]
2119
protected ?string $defaultStyleguide;
2220

2321
/**
@@ -28,7 +26,10 @@ class StyleguideRepository
2826
public function getDefault(): StyleguideMetadata
2927
{
3028
$all = $this->getAllStyleGuides();
31-
return $all->metadataItems[array_key_first($all->metadataItems)];
29+
if ($this->defaultStyleguide) {
30+
return $all->byAddress(StyleguideAddress::fromString($this->defaultStyleguide));
31+
}
32+
return $all->first();
3233
}
3334

3435
public function getAllStyleGuides(): StyleguideMetadataCollection
@@ -46,7 +47,7 @@ public function getStyleGuide(StyleguideAddress $address): StyleguideInterface
4647
$providers = $this->getProviders();
4748
$provider = $providers[$address->provider->value] ?? null;
4849
if ($provider instanceof StyleguideProviderInterface) {
49-
return $provider->getStyleguide($address->styleguide);
50+
return $provider->getStyleguide($address);
5051
}
5152

5253
throw new \Exception(sprintf('Styleguide %s in Provider %s was not found', $address->styleguide->value, $address->provider->value));

0 commit comments

Comments
 (0)