-
-
Notifications
You must be signed in to change notification settings - Fork 135
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
!!!FEATURE: Introduce
ApplicationView
to replace Fusion for bootstr…
…apping the UI The `ApplicationView` builds the foundational HTML document (via string concatenation) for bootstrapping the Neos UI. Formerly, Fusion was used to retrieve and render the initial data for the UI. This task has been delegated to a set of dedicated classes, namely: - `ConfigurationProvider` - retrieves the `nodeTree` and `structureTree` segments from `Neos.Neos.userInterface.navigateComponent` settings, `allowedTargetWorkspaces` from the ContentRepository's `WorkspaceService` as well as the `nodeTypeSchema` and `translations` endpoints. - `RoutesProviderInterface` - retrieves all other routes/endpoints required for communication with the Neos server application - `FrontendConfigurationProvider` - reads and preprocesses the `Neos.Neos.Ui.frontendConfiguration` settings that are mostly used by third-party plugins to share data between server and client - `NodeTypesProvider` - retrieves information about node type roles and node type groups. Roles are a dedicated UI-concept that is meant to distinguish between document, content and collection nodes. Groups refer the grouping of node types in the creation dialog. - `MenuProvider` - retrieves all data needed to render the main burger menu located in the top left corner of the UI. - `InitialStateProvider` - reads and preprocesses the `Neos.Neos.Ui.frontendConfiguration` settings that are used to hydrate the UI's redux store The responsibilities of these classes is entirely derived from their former Fusion counterparts. All of them have been marked `@internal` to allow for later removal. Nonetheless, it remains possible to implement their accompanying interfaces and replace their implementations via `Objects.yaml`. This enables rare edge cases and unplanned extensibility. The splash screen, formerly a Fluid template, is now hard-coded into the `ApplicationView` class, which renders the `Neos.Neos.Ui.splashScreen` setting obsolete. It has therefore been removed.
- Loading branch information
Showing
20 changed files
with
1,107 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
Classes/Domain/CacheConfigurationVersionProviderInterface.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface CacheConfigurationVersionProviderInterface | ||
{ | ||
public function getCacheConfigurationVersion(): string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
use Neos\ContentRepository\Core\ContentRepository; | ||
use Neos\Flow\Mvc\Routing\UriBuilder; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface ConfigurationProviderInterface | ||
{ | ||
/** | ||
* @return array{nodeTree:mixed,structureTree:mixed,allowedTargetWorkspaces:mixed,endpoints:array{nodeTypeSchema:string,translations:string}} | ||
*/ | ||
public function getConfiguration( | ||
ContentRepository $contentRepository, | ||
UriBuilder $uriBuilder, | ||
): array; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
use Neos\Flow\Mvc\Controller\ControllerContext; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface FrontendConfigurationProviderInterface | ||
{ | ||
/** @return array<mixed> */ | ||
public function getFrontendConfiguration( | ||
ControllerContext $controllerContext | ||
): array; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
use Neos\ContentRepository\Core\Factory\ContentRepositoryId; | ||
use Neos\ContentRepository\Core\Projection\ContentGraph\Node; | ||
use Neos\Flow\Mvc\Controller\ControllerContext; | ||
use Neos\Neos\Domain\Model\User; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface InitialStateProviderInterface | ||
{ | ||
/** @return array<mixed> */ | ||
public function getInitialState( | ||
ControllerContext $controllerContext, | ||
ContentRepositoryId $contentRepositoryId, | ||
?Node $documentNode, | ||
?Node $site, | ||
User $user, | ||
): array; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
use Neos\Flow\Mvc\Controller\ControllerContext; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface MenuProviderInterface | ||
{ | ||
/** | ||
* @return array<int,array{label:string,icon:string,uri:string,target:string,children:array<int,array{icon:string,label:string,uri:string,position?:string,isActive:bool,target:string,skipI18n:bool}>}> | ||
*/ | ||
public function getMenu(ControllerContext $controllerContext): array; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface NodeTypesProviderInterface | ||
{ | ||
/** | ||
* @return array{roles:mixed,groups:mixed} | ||
*/ | ||
public function getNodeTypes(): array; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the Neos.Neos.Ui package. | ||
* | ||
* (c) Contributors of the Neos Project - www.neos.io | ||
* | ||
* This package is Open Source Software. For the full copyright and license | ||
* information, please view the LICENSE file which was distributed with this | ||
* source code. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Neos\Neos\Ui\Domain; | ||
|
||
use Neos\Flow\Mvc\Routing\UriBuilder; | ||
|
||
/** | ||
* @internal | ||
*/ | ||
interface RoutesProviderInterface | ||
{ | ||
/** @return array<mixed> */ | ||
public function getRoutes(UriBuilder $uriBuilder): array; | ||
} |
Oops, something went wrong.