From 3cfdefabaaffc486ad8f8e23d08e144457e9fe47 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Wed, 28 Aug 2024 11:20:39 +0200 Subject: [PATCH 1/2] TASK: remove ui script tag neos 9 followup Remove deprecated interpretation of inline scripts (`data-neos-nodedata`) https://github.com/neos/neos-ui/pull/3770 --- packages/neos-ui-guest-frame/src/initializeGuestFrame.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/neos-ui-guest-frame/src/initializeGuestFrame.js b/packages/neos-ui-guest-frame/src/initializeGuestFrame.js index 07b9b84df5..c4250deff5 100644 --- a/packages/neos-ui-guest-frame/src/initializeGuestFrame.js +++ b/packages/neos-ui-guest-frame/src/initializeGuestFrame.js @@ -60,9 +60,6 @@ export default ({globalRegistry, store}) => function * initializeGuestFrame() { return; } - // Load legacy node data scripts from guest frame - remove with Neos 9.0 - const legacyNodeData = guestFrameWindow['@Neos.Neos.Ui:Nodes'] || {}; - // Load all nodedata for nodes in the guest frame and filter duplicates const {q} = yield backend.get(); const nodeContextPathsInGuestFrame = findAllNodesInGuestFrame().map(node => node.getAttribute('data-__neos-node-contextpath')); @@ -83,7 +80,6 @@ export default ({globalRegistry, store}) => function * initializeGuestFrame() { const nodes = Object.assign( {}, - legacyNodeData, // Merge legacy node data from the guest frame - remove with Neos 9.0 fullyLoadedNodesFromContent, { [documentInformation.metaData.documentNode]: documentInformation.metaData.documentNodeSerialization @@ -93,9 +89,6 @@ export default ({globalRegistry, store}) => function * initializeGuestFrame() { // Merge new nodes into the store yield put(actions.CR.Nodes.merge(nodes)); - // Remove the legacy inline scripts after initialization - remove with Neos 9.0 - Array.prototype.forEach.call(guestFrameWindow.document.querySelectorAll('script[data-neos-nodedata]'), element => element.parentElement.removeChild(element)); - const state = store.getState(); // Set the current document node to the one that is rendered in the guest frame which might be different from the one that is currently selected in the page tree From d82f9471a23206768702b81c25b982ec17f7d834 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:10:26 +0200 Subject: [PATCH 2/2] TASK: Adjust to flow psr controller change see https://github.com/neos/neos-development-collection/pull/4738 see https://github.com/neos/flow-development-collection/pull/3311 --- .../RemoveAdditionalSettingsController.php | 58 ++++++++----------- .../WriteAdditionalSettingsController.php | 58 ++++++++----------- 2 files changed, 46 insertions(+), 70 deletions(-) diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/RemoveAdditionalSettings/Controller/RemoveAdditionalSettingsController.php b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/RemoveAdditionalSettings/Controller/RemoveAdditionalSettingsController.php index badea48a01..db3ddac910 100644 --- a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/RemoveAdditionalSettings/Controller/RemoveAdditionalSettingsController.php +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/RemoveAdditionalSettings/Controller/RemoveAdditionalSettingsController.php @@ -14,12 +14,13 @@ namespace Neos\TestNodeTypes\Application\RemoveAdditionalSettings\Controller; +use GuzzleHttp\Psr7\Response; use Neos\Flow\Annotations as Flow; use Neos\Flow\Mvc\ActionRequest; -use Neos\Flow\Mvc\ActionResponse; use Neos\Flow\Mvc\Controller\ControllerInterface; use Neos\TestNodeTypes\Application\RemoveAdditionalSettings\RemoveAdditionalSettingsCommand; use Neos\TestNodeTypes\Application\RemoveAdditionalSettings\RemoveAdditionalSettingsCommandHandler; +use Psr\Http\Message\ResponseInterface; #[Flow\Scope("singleton")] final class RemoveAdditionalSettingsController implements ControllerInterface @@ -27,46 +28,33 @@ final class RemoveAdditionalSettingsController implements ControllerInterface #[Flow\Inject] protected RemoveAdditionalSettingsCommandHandler $commandHandler; - public function processRequest(ActionRequest $request, ActionResponse $response) + public function processRequest(ActionRequest $request): ResponseInterface { - $request->setDispatched(true); - $response->setContentType('application/json'); - try { $command = RemoveAdditionalSettingsCommand::fromArray($request->getArguments()); $this->commandHandler->handle($command); - - $response->setStatusCode(200); - $response->setContent( - json_encode( - ['success' => true], - JSON_THROW_ON_ERROR - ) - ); + return new Response(status: 200, headers: ['Content-Type' => 'application/json'], body: json_encode( + ['success' => true], + JSON_THROW_ON_ERROR + )); } catch (\InvalidArgumentException $e) { - $response->setStatusCode(400); - $response->setContent( - json_encode( - ['error' => [ - 'type' => $e::class, - 'code' => $e->getCode(), - 'message' => $e->getMessage(), - ]], - JSON_THROW_ON_ERROR - ) - ); + return new Response(status: 400, headers: ['Content-Type' => 'application/json'], body: json_encode( + ['error' => [ + 'type' => $e::class, + 'code' => $e->getCode(), + 'message' => $e->getMessage(), + ]], + JSON_THROW_ON_ERROR + )); } catch (\Exception $e) { - $response->setStatusCode(500); - $response->setContent( - json_encode( - ['error' => [ - 'type' => $e::class, - 'code' => $e->getCode(), - 'message' => $e->getMessage(), - ]], - JSON_THROW_ON_ERROR - ) - ); + return new Response(status: 500, headers: ['Content-Type' => 'application/json'], body: json_encode( + ['error' => [ + 'type' => $e::class, + 'code' => $e->getCode(), + 'message' => $e->getMessage(), + ]], + JSON_THROW_ON_ERROR + )); } } } diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/WriteAdditionalSettings/Controller/WriteAdditionalSettingsController.php b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/WriteAdditionalSettings/Controller/WriteAdditionalSettingsController.php index cfbed1e39a..e2944f2ce0 100644 --- a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/WriteAdditionalSettings/Controller/WriteAdditionalSettingsController.php +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/Application/WriteAdditionalSettings/Controller/WriteAdditionalSettingsController.php @@ -14,12 +14,13 @@ namespace Neos\TestNodeTypes\Application\WriteAdditionalSettings\Controller; +use GuzzleHttp\Psr7\Response; use Neos\Flow\Annotations as Flow; use Neos\Flow\Mvc\ActionRequest; -use Neos\Flow\Mvc\ActionResponse; use Neos\Flow\Mvc\Controller\ControllerInterface; use Neos\TestNodeTypes\Application\WriteAdditionalSettings\WriteAdditionalSettingsCommand; use Neos\TestNodeTypes\Application\WriteAdditionalSettings\WriteAdditionalSettingsCommandHandler; +use Psr\Http\Message\ResponseInterface; #[Flow\Scope("singleton")] final class WriteAdditionalSettingsController implements ControllerInterface @@ -27,46 +28,33 @@ final class WriteAdditionalSettingsController implements ControllerInterface #[Flow\Inject] protected WriteAdditionalSettingsCommandHandler $commandHandler; - public function processRequest(ActionRequest $request, ActionResponse $response) + public function processRequest(ActionRequest $request): ResponseInterface { - $request->setDispatched(true); - $response->setContentType('application/json'); - try { $command = WriteAdditionalSettingsCommand::fromArray($request->getArguments()); $this->commandHandler->handle($command); - - $response->setStatusCode(200); - $response->setContent( - json_encode( - ['success' => true], - JSON_THROW_ON_ERROR - ) - ); + return new Response(status: 200, headers: ['Content-Type' => 'application/json'], body: json_encode( + ['success' => true], + JSON_THROW_ON_ERROR + )); } catch (\InvalidArgumentException $e) { - $response->setStatusCode(400); - $response->setContent( - json_encode( - ['error' => [ - 'type' => $e::class, - 'code' => $e->getCode(), - 'message' => $e->getMessage(), - ]], - JSON_THROW_ON_ERROR - ) - ); + return new Response(status: 400, headers: ['Content-Type' => 'application/json'], body: json_encode( + ['error' => [ + 'type' => $e::class, + 'code' => $e->getCode(), + 'message' => $e->getMessage(), + ]], + JSON_THROW_ON_ERROR + )); } catch (\Exception $e) { - $response->setStatusCode(500); - $response->setContent( - json_encode( - ['error' => [ - 'type' => $e::class, - 'code' => $e->getCode(), - 'message' => $e->getMessage(), - ]], - JSON_THROW_ON_ERROR - ) - ); + return new Response(status: 500, headers: ['Content-Type' => 'application/json'], body: json_encode( + ['error' => [ + 'type' => $e::class, + 'code' => $e->getCode(), + 'message' => $e->getMessage(), + ]], + JSON_THROW_ON_ERROR + )); } } }