From c05740b8c2508c30f1a87e91f34749f162b378f7 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:01:04 +0200 Subject: [PATCH 01/20] IBX-10414: Dropped save and close from ContentTypeGroup actions --- .../Controller/ContentTypeGroupController.php | 16 ------- .../content_type_group/create.html.twig | 2 - .../content_type_group/edit.html.twig | 2 - .../ContentTypeGroupCreateType.php | 7 +--- .../ContentTypeGroupUpdateType.php | 7 +--- ...tentTypeGroupCreateRightSidebarBuilder.php | 42 ++----------------- ...ontentTypeGroupEditRightSidebarBuilder.php | 40 ++---------------- 7 files changed, 8 insertions(+), 108 deletions(-) diff --git a/src/bundle/Controller/ContentTypeGroupController.php b/src/bundle/Controller/ContentTypeGroupController.php index e85435f84c..0fdc096718 100644 --- a/src/bundle/Controller/ContentTypeGroupController.php +++ b/src/bundle/Controller/ContentTypeGroupController.php @@ -103,14 +103,6 @@ public function createAction(Request $request): Response 'ibexa_content_type' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === ContentTypeGroupCreateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.content_type_group.update', [ - 'contentTypeGroupId' => $group->id, - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.content_type_group.view', [ 'contentTypeGroupId' => $group->id, ])); @@ -151,14 +143,6 @@ public function updateAction(Request $request, ContentTypeGroup $group): Respons 'ibexa_content_type' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === ContentTypeGroupCreateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.content_type_group.update', [ - 'contentTypeGroupId' => $group->id, - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.content_type_group.view', [ 'contentTypeGroupId' => $group->id, ])); diff --git a/src/bundle/Resources/views/themes/admin/content_type/content_type_group/create.html.twig b/src/bundle/Resources/views/themes/admin/content_type/content_type_group/create.html.twig index 42bfed0584..91c0d4ae70 100644 --- a/src/bundle/Resources/views/themes/admin/content_type/content_type_group/create.html.twig +++ b/src/bundle/Resources/views/themes/admin/content_type/content_type_group/create.html.twig @@ -6,7 +6,6 @@ {% block header_admin %} {% set content_type_group_create_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.content_type_group_create.sidebar_right', [], { - save_id: form.save.vars.id, save_and_close_id: form.create.vars.id, }) %} @@ -27,7 +26,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.create, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/content_type/content_type_group/edit.html.twig b/src/bundle/Resources/views/themes/admin/content_type/content_type_group/edit.html.twig index 04d514c73e..c44887f2e1 100644 --- a/src/bundle/Resources/views/themes/admin/content_type/content_type_group/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/content_type/content_type_group/edit.html.twig @@ -6,7 +6,6 @@ {% block header_admin %} {% set content_type_group_edit_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.content_type_group_edit.sidebar_right', [], { - save_id: form.save.vars.id, save_and_close_id: form.update.vars.id, }) %} @@ -28,7 +27,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.update, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php index 1c3550603c..f2ab2328ae 100644 --- a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php +++ b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php @@ -18,8 +18,6 @@ class ContentTypeGroupCreateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -27,10 +25,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'label' => /** @Desc("Name") */ 'content_type_group.create.name', ]) ->add('create', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'content_type_group.create.submit', - ]) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'content_type_group.create.save', + 'label' => /** @Desc("Save") */ 'content_type_group.create.submit', ]); } diff --git a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php index c3fac9da0a..c2b32959b1 100644 --- a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php +++ b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php @@ -18,8 +18,6 @@ class ContentTypeGroupUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -27,10 +25,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'label' => /** @Desc("Name") */ 'content_type_group.update.name', ]) ->add('update', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'content_type_group.update.submit', - ]) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'content_type_group.update.save', + 'label' => /** @Desc("Save") */ 'content_type_group.update.submit', ]); } diff --git a/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php index b030e17489..7a1c4e3ea9 100644 --- a/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php @@ -17,33 +17,11 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class ContentTypeGroupCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ public const ITEM__CREATE = 'content_type_group_create__sidebar_right__create'; - public const ITEM__CREATE_AND_EDIT = 'content_type_group_create__sidebar_right__create_and_edit'; public const ITEM__CANCEL = 'content_type_group_create__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::CONTENT_TYPE_GROUP_CREATE_SIDEBAR_RIGHT; @@ -52,16 +30,13 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface { - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -71,17 +46,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__CREATE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -105,8 +70,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CREATE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php b/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php index b8affcf32f..ec6c4e0c92 100644 --- a/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php @@ -17,33 +17,11 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class ContentTypeGroupEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'content_type_group_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'content_type_group_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'content_type_group_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::CONTENT_TYPE_GROUP_EDIT_SIDEBAR_RIGHT; @@ -60,8 +38,7 @@ protected function getConfigureEventName(): string */ public function createStructure(array $options): ItemInterface { - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -71,17 +48,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -105,8 +72,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } From ab0450ba289bdb93ecc383a52b0cc7003b9210dd Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:01:48 +0200 Subject: [PATCH 02/20] IBX-10414: Dropped save and close from Language actions --- src/bundle/Controller/LanguageController.php | 16 ------- .../themes/admin/language/create.html.twig | 2 - .../themes/admin/language/edit.html.twig | 2 - .../Form/Type/Language/LanguageCreateType.php | 9 +--- .../Form/Type/Language/LanguageUpdateType.php | 9 +--- .../LanguageCreateRightSidebarBuilder.php | 45 ++----------------- .../LanguageEditRightSidebarBuilder.php | 45 ++----------------- 7 files changed, 8 insertions(+), 120 deletions(-) diff --git a/src/bundle/Controller/LanguageController.php b/src/bundle/Controller/LanguageController.php index 24b4c06193..1bae439560 100644 --- a/src/bundle/Controller/LanguageController.php +++ b/src/bundle/Controller/LanguageController.php @@ -162,14 +162,6 @@ public function createAction(Request $request): Response 'ibexa_language' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === LanguageCreateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.language.edit', [ - 'languageId' => $language->getId(), - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.language.view', [ 'languageId' => $language->getId(), ])); @@ -211,14 +203,6 @@ public function editAction(Request $request, Language $language): Response 'ibexa_language' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === LanguageUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.language.edit', [ - 'languageId' => $language->getId(), - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.language.view', [ 'languageId' => $language->getId(), ])); diff --git a/src/bundle/Resources/views/themes/admin/language/create.html.twig b/src/bundle/Resources/views/themes/admin/language/create.html.twig index fda35440ea..d54ec16e03 100644 --- a/src/bundle/Resources/views/themes/admin/language/create.html.twig +++ b/src/bundle/Resources/views/themes/admin/language/create.html.twig @@ -6,7 +6,6 @@ {% block header_admin %} {% set language_create_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.language_create.sidebar_right', [], { - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -29,7 +28,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/language/edit.html.twig b/src/bundle/Resources/views/themes/admin/language/edit.html.twig index 0fa99632ca..a0d9e1728d 100644 --- a/src/bundle/Resources/views/themes/admin/language/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/language/edit.html.twig @@ -6,7 +6,6 @@ {% block header_admin %} {% set language_edit_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.language_edit.sidebar_right', [], { - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -27,7 +26,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/lib/Form/Type/Language/LanguageCreateType.php b/src/lib/Form/Type/Language/LanguageCreateType.php index f4443c0af5..52cd680670 100644 --- a/src/lib/Form/Type/Language/LanguageCreateType.php +++ b/src/lib/Form/Type/Language/LanguageCreateType.php @@ -17,8 +17,6 @@ class LanguageCreateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -40,15 +38,10 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'required' => false, ] ) - ->add( - self::BTN_SAVE, - SubmitType::class, - ['label' => /** @Desc("Save") */ 'language.create.save'] - ) ->add( 'save_and_close', SubmitType::class, - ['label' => /** @Desc("Save and close") */ 'language.create.save_and_close'] + ['label' => /** @Desc("Save") */ 'language.create.save_and_close'] ); } diff --git a/src/lib/Form/Type/Language/LanguageUpdateType.php b/src/lib/Form/Type/Language/LanguageUpdateType.php index abe02b5a5c..91527a8e4a 100644 --- a/src/lib/Form/Type/Language/LanguageUpdateType.php +++ b/src/lib/Form/Type/Language/LanguageUpdateType.php @@ -17,8 +17,6 @@ class LanguageUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -40,15 +38,10 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'required' => false, ] ) - ->add( - self::BTN_SAVE, - SubmitType::class, - ['label' => /** @Desc("Save") */ 'ezplatform.language.update.save'] - ) ->add( 'save_and_close', SubmitType::class, - ['label' => /** @Desc("Save and close") */ 'language.update.save_and_close'] + ['label' => /** @Desc("Save") */ 'language.update.save_and_close'] ); } diff --git a/src/lib/Menu/Admin/Language/LanguageCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/Language/LanguageCreateRightSidebarBuilder.php index 091eadd5af..cdba80221d 100644 --- a/src/lib/Menu/Admin/Language/LanguageCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Language/LanguageCreateRightSidebarBuilder.php @@ -9,41 +9,16 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class LanguageCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ public const ITEM__CREATE = 'language_create__sidebar_right__create'; - public const ITEM__CREATE_AND_EDIT = 'language_create__sidebar_right__create_and_edit'; public const ITEM__CANCEL = 'language_create__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::LANGUAGE_CREATE_SIDEBAR_RIGHT; @@ -52,16 +27,13 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface { - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -71,17 +43,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__CREATE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -105,8 +67,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CREATE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/Admin/Language/LanguageEditRightSidebarBuilder.php b/src/lib/Menu/Admin/Language/LanguageEditRightSidebarBuilder.php index 056aca81db..0e78403bd6 100644 --- a/src/lib/Menu/Admin/Language/LanguageEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Language/LanguageEditRightSidebarBuilder.php @@ -9,41 +9,16 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class LanguageEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'language_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'language_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'language_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::LANGUAGE_EDIT_SIDEBAR_RIGHT; @@ -52,16 +27,13 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface { - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -71,17 +43,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -105,8 +67,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } From 5571b027f600fc949851b2fb358a1c27fbf40e05 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:02:32 +0200 Subject: [PATCH 03/20] IBX-10414: Dropped save and close from LinkManager actions --- .../Controller/LinkManagerController.php | 8 ----- .../themes/admin/link_manager/edit.html.twig | 2 -- src/lib/Form/Type/URL/URLEditType.php | 5 ---- src/lib/Menu/URLEditRightSidebarBuilder.php | 29 +------------------ 4 files changed, 1 insertion(+), 43 deletions(-) diff --git a/src/bundle/Controller/LinkManagerController.php b/src/bundle/Controller/LinkManagerController.php index 1f5d7e94e2..6edfa9d780 100644 --- a/src/bundle/Controller/LinkManagerController.php +++ b/src/bundle/Controller/LinkManagerController.php @@ -62,14 +62,6 @@ public function editAction(Request $request, int $urlId): Response 'ibexa_linkmanager' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === URLEditType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.link_manager.edit', [ - 'urlId' => $url->getId(), - ]); - } - return $this->redirectToRoute('ibexa.url_management'); }); diff --git a/src/bundle/Resources/views/themes/admin/link_manager/edit.html.twig b/src/bundle/Resources/views/themes/admin/link_manager/edit.html.twig index c3f2a4a489..22e6d803ce 100644 --- a/src/bundle/Resources/views/themes/admin/link_manager/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/link_manager/edit.html.twig @@ -7,7 +7,6 @@ {% block header %} {% set url_create_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.url_edit.sidebar_right', [], { save_and_close_selector: '#' ~ form.save_and_close.vars.id, - save_selector: '#' ~ form.save.vars.id, url: url }) %} @@ -31,7 +30,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} diff --git a/src/lib/Form/Type/URL/URLEditType.php b/src/lib/Form/Type/URL/URLEditType.php index 13c19ff6b4..ac70a49dfe 100644 --- a/src/lib/Form/Type/URL/URLEditType.php +++ b/src/lib/Form/Type/URL/URLEditType.php @@ -16,14 +16,9 @@ class URLEditType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('url', TextType::class) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'url.save', - ]) ->add('save_and_close', SubmitType::class, [ 'label' => /** @Desc("Save and close") */ 'url.save_and_close', ]); diff --git a/src/lib/Menu/URLEditRightSidebarBuilder.php b/src/lib/Menu/URLEditRightSidebarBuilder.php index c4bc31197d..77e790a2b3 100644 --- a/src/lib/Menu/URLEditRightSidebarBuilder.php +++ b/src/lib/Menu/URLEditRightSidebarBuilder.php @@ -18,22 +18,9 @@ class URLEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'url_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'url_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'url_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } protected function getConfigureEventName(): string { @@ -42,9 +29,6 @@ protected function getConfigureEventName(): string protected function createStructure(array $options): ItemInterface { - /** @var \Ibexa\Contracts\Core\Repository\Values\URL\URL $url */ - $url = $options['url']; - /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -58,16 +42,6 @@ protected function createStructure(array $options): ItemInterface ] ); - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => $options['save_selector'], - ], - ] - ); - $menu->setChildren([ self::ITEM__SAVE_AND_CLOSE => $saveAndCloseItem, self::ITEM__CANCEL => $this->createMenuItem( @@ -84,8 +58,7 @@ protected function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } From e3c6f4cee03338ce93156ebc71d6b3110cd7aba6 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:03:06 +0200 Subject: [PATCH 04/20] IBX-10414: Dropped save and close from ObjectState actions --- .../Controller/ObjectStateController.php | 16 ------- .../Controller/ObjectStateGroupController.php | 16 ------- .../ObjectState/ObjectStateCreateType.php | 5 --- .../ObjectStateGroupCreateType.php | 5 --- .../ObjectStateGroupUpdateType.php | 5 --- .../ObjectState/ObjectStateUpdateType.php | 5 --- .../ObjectStateCreateRightSidebarBuilder.php | 24 +---------- .../ObjectStateEditRightSidebarBuilder.php | 29 ++----------- ...ectStateGroupCreateRightSidebarBuilder.php | 37 +--------------- ...bjectStateGroupEditRightSidebarBuilder.php | 42 ++----------------- 10 files changed, 9 insertions(+), 175 deletions(-) diff --git a/src/bundle/Controller/ObjectStateController.php b/src/bundle/Controller/ObjectStateController.php index fb3888150a..0f55563ae0 100644 --- a/src/bundle/Controller/ObjectStateController.php +++ b/src/bundle/Controller/ObjectStateController.php @@ -116,14 +116,6 @@ function (ObjectStateCreateData $data) use ($defaultLanguageCode, $objectStateGr 'ibexa_object_state' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === ObjectStateCreateType::BTN_CREATE_AND_EDIT - ) { - return $this->redirectToRoute('ibexa.object_state.state.update', [ - 'objectStateId' => $objectState->id, - ]); - } - return $this->redirectToRoute('ibexa.object_state.state.view', [ 'objectStateId' => $objectState->id, ]); @@ -232,14 +224,6 @@ public function updateAction(Request $request, ObjectState $objectState): Respon 'ibexa_object_state' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === ObjectStateUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.object_state.state.update', [ - 'objectStateId' => $objectState->id, - ]); - } - return $this->redirectToRoute('ibexa.object_state.state.view', [ 'objectStateId' => $objectState->id, ]); diff --git a/src/bundle/Controller/ObjectStateGroupController.php b/src/bundle/Controller/ObjectStateGroupController.php index 329226cce9..3cdffdedac 100644 --- a/src/bundle/Controller/ObjectStateGroupController.php +++ b/src/bundle/Controller/ObjectStateGroupController.php @@ -103,14 +103,6 @@ function (ObjectStateGroupCreateData $data) use ($defaultLanguageCode, $form): R 'ibexa_object_state' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === ObjectStateGroupCreateType::BTN_CREATE_AND_EDIT - ) { - return $this->redirectToRoute('ibexa.object_state.group.update', [ - 'objectStateGroupId' => $group->id, - ]); - } - return $this->redirectToRoute('ibexa.object_state.group.view', [ 'objectStateGroupId' => $group->id, ]); @@ -213,14 +205,6 @@ public function updateAction(Request $request, ObjectStateGroup $group): Respons 'ibexa_object_state' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === ObjectStateUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.object_state.group.update', [ - 'objectStateGroupId' => $group->id, - ]); - } - return $this->redirectToRoute('ibexa.object_state.group.view', [ 'objectStateGroupId' => $group->id, ]); diff --git a/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php b/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php index f252f5d81b..0e3c9ba77f 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php @@ -18,8 +18,6 @@ class ObjectStateCreateType extends AbstractType { - public const BTN_CREATE_AND_EDIT = 'create_and_edit'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -31,9 +29,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ]) ->add('create', SubmitType::class, [ 'label' => /** @Desc("Save and close") */ 'object_state.create.create', - ]) - ->add(self::BTN_CREATE_AND_EDIT, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'object_state.create.create_and_edit', ]); } diff --git a/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php b/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php index 311607b2b2..3c29527fb8 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php @@ -18,8 +18,6 @@ class ObjectStateGroupCreateType extends AbstractType { - public const BTN_CREATE_AND_EDIT = 'create_and_edit'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -31,9 +29,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ]) ->add('create', SubmitType::class, [ 'label' => /** @Desc("Save and close") */ 'object_state_group.create.create', - ]) - ->add(self::BTN_CREATE_AND_EDIT, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'object_state_group.create.create_and_edit', ]); } diff --git a/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php b/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php index 0c833460c1..fc146e875a 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php @@ -18,8 +18,6 @@ class ObjectStateGroupUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -29,9 +27,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('name', TextType::class, [ 'label' => /** @Desc("Name") */ 'object_state_group.update.name', ]) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'object_state_group.update.save', - ]) ->add('save_and_close', SubmitType::class, [ 'label' => /** @Desc("Save and close") */ 'object_state_group.update.save_and_close', ]); diff --git a/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php b/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php index ea5f9f3080..75e09fc55f 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php @@ -18,8 +18,6 @@ class ObjectStateUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -29,9 +27,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('name', TextType::class, [ 'label' => /** @Desc("Name") */ 'object_state.update.name', ]) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'object_state.update.save', - ]) ->add('save_and_close', SubmitType::class, [ 'label' => /** @Desc("Save and close") */ 'object_state.update.save_and_close', ]); diff --git a/src/lib/Menu/Admin/ObjectState/ObjectStateCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/ObjectState/ObjectStateCreateRightSidebarBuilder.php index 947a4f9ff6..4e489dda03 100644 --- a/src/lib/Menu/Admin/ObjectState/ObjectStateCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ObjectState/ObjectStateCreateRightSidebarBuilder.php @@ -15,21 +15,12 @@ use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class ObjectStateCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { /* Menu items */ public const ITEM__CREATE = 'object_state_create__sidebar_right__create'; - public const ITEM__CREATE_AND_EDIT = 'object_state_create__sidebar_right__create_and_edit'; public const ITEM__CANCEL = 'object_state_create__sidebar_right__cancel'; - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::OBJECT_STATE_CREATE_SIDEBAR_RIGHT; @@ -38,8 +29,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -61,16 +50,6 @@ public function createStructure(array $options): ItemInterface ] ); - $createItem->addChild( - self::ITEM__CREATE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => '#object_state_create_create_and_edit', - ], - ] - ); - $menu->setChildren([ self::ITEM__CREATE => $createItem, self::ITEM__CANCEL => $this->createMenuItem( @@ -93,8 +72,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CREATE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } diff --git a/src/lib/Menu/Admin/ObjectState/ObjectStateEditRightSidebarBuilder.php b/src/lib/Menu/Admin/ObjectState/ObjectStateEditRightSidebarBuilder.php index 55633c3d2b..873058db64 100644 --- a/src/lib/Menu/Admin/ObjectState/ObjectStateEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ObjectState/ObjectStateEditRightSidebarBuilder.php @@ -15,15 +15,8 @@ use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class ObjectStateEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'object_state_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'object_state_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'object_state_edit__sidebar_right__cancel'; @@ -38,8 +31,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -47,8 +38,7 @@ protected function getConfigureEventName(): string public function createStructure(array $options): ItemInterface { $groupId = $options['group_id']; - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -58,23 +48,13 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); $menu->setChildren([ - self::ITEM__SAVE => $saveAndCloseItem, + self::ITEM__SAVE_AND_CLOSE => $saveAndCloseItem, self::ITEM__CANCEL => $this->createMenuItem( self::ITEM__CANCEL, [ @@ -95,8 +75,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } diff --git a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php index e2f93d1c54..2d3613ddd9 100644 --- a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php @@ -18,33 +18,11 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class ObjectStateGroupCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ public const ITEM__CREATE = 'object_state_group_create__sidebar_right__create'; - public const ITEM__CREATE_AND_EDIT = 'object_state_group_create__sidebar_right__create_and_edit'; public const ITEM__CANCEL = 'object_state_group_create__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::OBJECT_STATE_GROUP_CREATE_SIDEBAR_RIGHT; @@ -53,8 +31,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -74,16 +50,6 @@ public function createStructure(array $options): ItemInterface ] ); - $createItem->addChild( - self::ITEM__CREATE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => '#object_state_group_create_create_and_edit', - ], - ] - ); - $menu->setChildren([ self::ITEM__CREATE => $createItem, self::ITEM__CANCEL => $this->createMenuItem( @@ -103,8 +69,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CREATE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php index 0e30a43d97..dc0e3f3b96 100644 --- a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php @@ -18,33 +18,11 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class ObjectStateGroupEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'object_state_group_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'object_state_group_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'object_state_group_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::OBJECT_STATE_GROUP_EDIT_SIDEBAR_RIGHT; @@ -53,16 +31,13 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface { - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -72,17 +47,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -106,8 +71,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } From e88ee2d38fb095ce33209db98ce67313a2529a99 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:04:04 +0200 Subject: [PATCH 05/20] IBX-10414: Dropped save and close from Role&Policy actions --- src/bundle/Controller/PolicyController.php | 9 ---- src/bundle/Controller/RoleController.php | 16 ------- src/lib/Form/Type/Policy/PolicyUpdateType.php | 9 +--- src/lib/Form/Type/Role/RoleCreateType.php | 9 +--- src/lib/Form/Type/Role/RoleUpdateType.php | 7 +-- .../Role/PolicyCreateRightSidebarBuilder.php | 13 +----- .../Role/PolicyEditRightSidebarBuilder.php | 30 ++----------- ...oleAssignmentCreateRightSidebarBuilder.php | 12 +---- .../Role/RoleCreateRightSidebarBuilder.php | 41 ++--------------- .../Role/RoleEditRightSidebarBuilder.php | 44 ++----------------- 10 files changed, 14 insertions(+), 176 deletions(-) diff --git a/src/bundle/Controller/PolicyController.php b/src/bundle/Controller/PolicyController.php index 7649531a05..da2e2b5d1e 100644 --- a/src/bundle/Controller/PolicyController.php +++ b/src/bundle/Controller/PolicyController.php @@ -216,15 +216,6 @@ public function updateAction(Request $request, Role $role, Policy $policy): Resp 'ibexa_role' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === PolicyUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.policy.update', [ - 'roleId' => $roleDraft->id, - 'policyId' => $policy->id, - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.role.view', [ 'roleId' => $role->id, ])); diff --git a/src/bundle/Controller/RoleController.php b/src/bundle/Controller/RoleController.php index c5e8abcf28..6311988c83 100644 --- a/src/bundle/Controller/RoleController.php +++ b/src/bundle/Controller/RoleController.php @@ -119,14 +119,6 @@ public function createAction(Request $request): Response 'ibexa_role' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === RoleCreateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.role.update', [ - 'roleId' => $roleDraft->id, - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.role.view', [ 'roleId' => $roleDraft->id, ])); @@ -204,14 +196,6 @@ public function updateAction(Request $request, Role $role): Response 'ibexa_role' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === RoleUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.role.update', [ - 'roleId' => $role->id, - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.role.view', [ 'roleId' => $role->id, ])); diff --git a/src/lib/Form/Type/Policy/PolicyUpdateType.php b/src/lib/Form/Type/Policy/PolicyUpdateType.php index bd3e44c275..73fa54488b 100644 --- a/src/lib/Form/Type/Policy/PolicyUpdateType.php +++ b/src/lib/Form/Type/Policy/PolicyUpdateType.php @@ -22,8 +22,6 @@ class PolicyUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - private RoleService $roleService; public function __construct(RoleService $roleService) @@ -43,15 +41,10 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'disabled' => true, ] ) - ->add( - self::BTN_SAVE, - SubmitType::class, - ['label' => /** @Desc("Save") */ 'policy_update.save'] - ) ->add( 'save_and_close', SubmitType::class, - ['label' => /** @Desc("Save and close") */ 'policy_update.save_and_close'] + ['label' => /** @Desc("Save") */ 'policy_update.save_and_close'] ); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options): void { diff --git a/src/lib/Form/Type/Role/RoleCreateType.php b/src/lib/Form/Type/Role/RoleCreateType.php index 35b8e8b41f..d5bf5cbacd 100644 --- a/src/lib/Form/Type/Role/RoleCreateType.php +++ b/src/lib/Form/Type/Role/RoleCreateType.php @@ -17,8 +17,6 @@ class RoleCreateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -27,15 +25,10 @@ public function buildForm(FormBuilderInterface $builder, array $options): void TextType::class, ['label' => /** @Desc("Name") */ 'role_create.name'] ) - ->add( - self::BTN_SAVE, - SubmitType::class, - ['label' => /** @Desc("Save") */ 'role_create.save'] - ) ->add( 'save_and_close', SubmitType::class, - ['label' => /** @Desc("Save and close") */ 'role_create.save_and_close'] + ['label' => /** @Desc("Save") */ 'role_create.save_and_close'] ); } diff --git a/src/lib/Form/Type/Role/RoleUpdateType.php b/src/lib/Form/Type/Role/RoleUpdateType.php index cdb5b4eba7..9ea83432fc 100644 --- a/src/lib/Form/Type/Role/RoleUpdateType.php +++ b/src/lib/Form/Type/Role/RoleUpdateType.php @@ -17,8 +17,6 @@ class RoleUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -27,11 +25,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void TextType::class, ['label' => /** @Desc("Name") */ 'role_update.name'] ) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'role_update.save', - ]) ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'role_update.save_and_close', + 'label' => /** @Desc("Save") */ 'role_update.save_and_close', ]); } diff --git a/src/lib/Menu/Admin/Role/PolicyCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/PolicyCreateRightSidebarBuilder.php index b1b957a192..0357cd1938 100644 --- a/src/lib/Menu/Admin/Role/PolicyCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/PolicyCreateRightSidebarBuilder.php @@ -14,20 +14,11 @@ use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class PolicyCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ public const ITEM__CREATE = 'policy_create__sidebar_right__create'; public const ITEM__CANCEL = 'policy_create__sidebar_right__cancel'; - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::POLICY_CREATE_SIDEBAR_RIGHT; @@ -36,8 +27,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -81,7 +70,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/Admin/Role/PolicyEditRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/PolicyEditRightSidebarBuilder.php index fdfcc5a135..7786a5467c 100644 --- a/src/lib/Menu/Admin/Role/PolicyEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/PolicyEditRightSidebarBuilder.php @@ -14,21 +14,11 @@ use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class PolicyEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'policy_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'policy_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'policy_edit__sidebar_right__cancel'; - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::POLICY_EDIT_SIDEBAR_RIGHT; @@ -37,8 +27,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -47,8 +35,7 @@ public function createStructure(array $options): ItemInterface { /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $section */ $role = $options['role']; - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -58,17 +45,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -95,8 +72,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } diff --git a/src/lib/Menu/Admin/Role/RoleAssignmentCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/RoleAssignmentCreateRightSidebarBuilder.php index 9ca134aac8..b3350866fd 100644 --- a/src/lib/Menu/Admin/Role/RoleAssignmentCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/RoleAssignmentCreateRightSidebarBuilder.php @@ -14,20 +14,12 @@ use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class RoleAssignmentCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { /* Menu items */ public const ITEM__SAVE = 'role_assignment_create__sidebar_right__save'; public const ITEM__CANCEL = 'role_assignment_create__sidebar_right__cancel'; - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::ROLE_ASSIGNMENT_CREATE_SIDEBAR_RIGHT; @@ -36,8 +28,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -81,7 +71,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php index dde9698479..731c06ec9a 100644 --- a/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php @@ -17,33 +17,12 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class RoleCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { /* Menu items */ public const ITEM__CREATE = 'role_create__sidebar_right__create'; - public const ITEM__CREATE_AND_EDIT = 'role_create__sidebar_right__create_and_edit'; public const ITEM__CANCEL = 'role_create__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::ROLE_CREATE_SIDEBAR_RIGHT; @@ -52,16 +31,13 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface { - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -71,17 +47,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__CREATE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -105,8 +71,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CREATE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php index 904f19e5bc..4d3196fc17 100644 --- a/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php @@ -17,33 +17,11 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class RoleEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'role_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'role_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'role_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::ROLE_EDIT_SIDEBAR_RIGHT; @@ -52,18 +30,13 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface { - /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $role */ - $role = $options['role']; - $saveId = $options['save_id']; - $saveAncCloseId = $options['save_and_close_id']; + $saveAndCloseId = $options['save_and_close_id']; /** @var \Knp\Menu\ItemInterface|\Knp\Menu\ItemInterface[] $menu */ $menu = $this->factory->createItem('root'); @@ -73,17 +46,7 @@ public function createStructure(array $options): ItemInterface [ 'attributes' => [ 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveAncCloseId), - ], - ] - ); - - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#%s', $saveId), + 'data-click' => sprintf('#%s', $saveAndCloseId), ], ] ); @@ -107,8 +70,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } From 33f98155bfa51d7386b546f6164481fa2aab5ff2 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:05:59 +0200 Subject: [PATCH 06/20] IBX-10414: Dropped save and close from Sections actions --- src/bundle/Controller/SectionController.php | 16 --------- .../Form/Type/Section/SectionCreateType.php | 6 ---- .../Form/Type/Section/SectionUpdateType.php | 8 +---- .../Menu/SectionCreateRightSidebarBuilder.php | 36 +------------------ .../Menu/SectionEditRightSidebarBuilder.php | 35 +----------------- 5 files changed, 3 insertions(+), 98 deletions(-) diff --git a/src/bundle/Controller/SectionController.php b/src/bundle/Controller/SectionController.php index 37b4b093a5..febe309739 100644 --- a/src/bundle/Controller/SectionController.php +++ b/src/bundle/Controller/SectionController.php @@ -331,14 +331,6 @@ public function createAction(Request $request): Response 'ibexa_section' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === SectionCreateType::BTN_CREATE_AND_EDIT - ) { - return $this->redirectToRoute('ibexa.section.update', [ - 'sectionId' => $section->getId(), - ]); - } - return new RedirectResponse($this->generateUrl('ibexa.section.view', [ 'sectionId' => $section->getId(), ])); @@ -375,14 +367,6 @@ public function updateAction(Request $request, Section $section): Response ['%name%' => $section->name], 'ibexa_section' ); - - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === SectionUpdateType::BTN_UPDATE - ) { - return new RedirectResponse($this->generateUrl('ibexa.section.view', [ - 'sectionId' => $section->id, - ])); - } } catch (Exception $e) { $this->notificationHandler->error(/** @Ignore */ $e->getMessage() diff --git a/src/lib/Form/Type/Section/SectionCreateType.php b/src/lib/Form/Type/Section/SectionCreateType.php index 22dc1385bb..43350b38fe 100644 --- a/src/lib/Form/Type/Section/SectionCreateType.php +++ b/src/lib/Form/Type/Section/SectionCreateType.php @@ -15,8 +15,6 @@ class SectionCreateType extends AbstractType { - public const BTN_CREATE_AND_EDIT = 'create_and_edit'; - protected SectionType $sectionType; public function __construct(SectionType $sectionType) @@ -32,10 +30,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('create', SubmitType::class, [ 'label' => /** @Desc("Create") */ 'section_create_form.create', - ]) - ->add(self::BTN_CREATE_AND_EDIT, SubmitType::class, [ - 'label' => /** @Desc("Save and edit") */ - 'section_create_form.create_and_edit', ]); } diff --git a/src/lib/Form/Type/Section/SectionUpdateType.php b/src/lib/Form/Type/Section/SectionUpdateType.php index b5be2c491a..bf37910fde 100644 --- a/src/lib/Form/Type/Section/SectionUpdateType.php +++ b/src/lib/Form/Type/Section/SectionUpdateType.php @@ -15,8 +15,6 @@ class SectionUpdateType extends AbstractType { - public const BTN_UPDATE = 'update'; - protected SectionType $sectionType; public function __construct(SectionType $sectionType) @@ -29,12 +27,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $this->sectionType->buildForm($builder, $options); $builder - ->add(self::BTN_UPDATE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ - 'section_update_form.update', - ]) ->add('update_and_edit', SubmitType::class, [ - 'label' => /** @Desc("Save and edit") */ + 'label' => /** @Desc("Save") */ 'section_create_form.update_and_edit', ]); } diff --git a/src/lib/Menu/SectionCreateRightSidebarBuilder.php b/src/lib/Menu/SectionCreateRightSidebarBuilder.php index 77410f8e61..665f28d244 100644 --- a/src/lib/Menu/SectionCreateRightSidebarBuilder.php +++ b/src/lib/Menu/SectionCreateRightSidebarBuilder.php @@ -17,33 +17,12 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class SectionCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { /* Menu items */ public const ITEM__CREATE = 'section_create__sidebar_right__create'; - public const ITEM__CREATE_AND_EDIT = 'section_create__sidebar_right__create_and_edit'; public const ITEM__CANCEL = 'section_create__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::SECTION_CREATE_SIDEBAR_RIGHT; @@ -52,8 +31,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -73,16 +50,6 @@ public function createStructure(array $options): ItemInterface ] ); - $createItem->addChild( - self::ITEM__CREATE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => '#section_create_create_and_edit', - ], - ] - ); - $menu->setChildren([ self::ITEM__CREATE => $createItem, self::ITEM__CANCEL => $this->createMenuItem( @@ -102,8 +69,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CREATE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__CREATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/SectionEditRightSidebarBuilder.php b/src/lib/Menu/SectionEditRightSidebarBuilder.php index 07785bfee0..5e7a25db23 100644 --- a/src/lib/Menu/SectionEditRightSidebarBuilder.php +++ b/src/lib/Menu/SectionEditRightSidebarBuilder.php @@ -18,33 +18,11 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI Section Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class SectionEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'section_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'section_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'section_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::SECTION_EDIT_SIDEBAR_RIGHT; @@ -77,16 +55,6 @@ public function createStructure(array $options): ItemInterface ] ); - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => sprintf('#update-section-%d_update_and_edit', $section->id), - ], - ] - ); - $menu->setChildren([ self::ITEM__SAVE_AND_CLOSE => $saveAndCloseItem, self::ITEM__CANCEL => $this->createMenuItem( @@ -106,8 +74,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } From 07502857295032cf4486e26f3cc7017784dfa9d7 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:08:27 +0200 Subject: [PATCH 07/20] IBX-10414: Dropped save and close from urlWildcards actions --- .../Controller/URLWildcardController.php | 18 +---------- .../admin/url_wildcard/update.html.twig | 2 -- .../URLWildcard/URLWildcardUpdateType.php | 7 +--- .../URLWildcardEditRightSidebarBuilder.php | 32 +------------------ 4 files changed, 3 insertions(+), 56 deletions(-) diff --git a/src/bundle/Controller/URLWildcardController.php b/src/bundle/Controller/URLWildcardController.php index 7ed2ac07e9..3384ec6fa7 100644 --- a/src/bundle/Controller/URLWildcardController.php +++ b/src/bundle/Controller/URLWildcardController.php @@ -44,7 +44,7 @@ public function addAction(Request $request): Response if ($form->isSubmitted()) { $this->submitHandler->handle($form, function (URLWildcardData $data) use ($form): Response { - $urlWildcard = $this->urlWildcardService->create( + $this->urlWildcardService->create( $data->getSourceURL() ?? '', $data->getDestinationUrl() ?? '', (bool) $data->getForward() @@ -57,14 +57,6 @@ public function addAction(Request $request): Response 'ibexa_url_wildcard' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === URLWildcardUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.url_wildcard.update', [ - 'urlWildcardId' => $urlWildcard->id, - ]); - } - return $this->redirectToRoute('ibexa.url_management', [ '_fragment' => URLWildcardsTab::URI_FRAGMENT, ]); @@ -106,14 +98,6 @@ function (URLWildcardUpdateData $data) use ($urlWildcard, $form): Response { 'ibexa_url_wildcard' ); - if ($form->getClickedButton() instanceof Button - && $form->getClickedButton()->getName() === URLWildcardUpdateType::BTN_SAVE - ) { - return $this->redirectToRoute('ibexa.url_wildcard.update', [ - 'urlWildcardId' => $urlWildcard->id, - ]); - } - return $this->redirectToRoute('ibexa.url_management', [ '_fragment' => URLWildcardsTab::URI_FRAGMENT, ]); diff --git a/src/bundle/Resources/views/themes/admin/url_wildcard/update.html.twig b/src/bundle/Resources/views/themes/admin/url_wildcard/update.html.twig index f5b7cd9901..a594103b62 100644 --- a/src/bundle/Resources/views/themes/admin/url_wildcard/update.html.twig +++ b/src/bundle/Resources/views/themes/admin/url_wildcard/update.html.twig @@ -16,7 +16,6 @@ {% block context_menu %} {% set url_create_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu_configure.url_wildcard_edit_sidebar_right', [], { submit_selector: '#' ~ form.save_and_close.vars.id, - save_selector: '#' ~ form.save.vars.id, }) %} {{ knp_menu_render(url_create_sidebar_right, {'template': '@ibexadesign/ui/menu/context_menu.html.twig'}) }} @@ -57,7 +56,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' } }) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' } }) }} {{ form_end(form) }} diff --git a/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php b/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php index 8a94d04007..541e99d379 100644 --- a/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php +++ b/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php @@ -19,8 +19,6 @@ final class URLWildcardUpdateType extends AbstractType { - public const BTN_SAVE = 'save'; - /** * {@inheritdoc} */ @@ -37,11 +35,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'label' => false, 'required' => false, ]) - ->add(self::BTN_SAVE, SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'url_wildcard.save', - ]) ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'url_wildcard.save_and_close', + 'label' => /** @Desc("Save") */ 'url_wildcard.save_and_close', ]); } diff --git a/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php b/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php index b5ef4662e6..1267e80576 100644 --- a/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php +++ b/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php @@ -19,33 +19,13 @@ final class URLWildcardEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { - /* Menu items */ - public const ITEM__SAVE = 'url_wildcard_edit__sidebar_right__save'; public const ITEM__SAVE_AND_CLOSE = 'url_wildcard_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'url_wildcard_edit__sidebar_right__cancel'; - private TranslatorInterface $translator; - - /** - * @param \Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface $menuItemFactory - * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher - * @param \Symfony\Contracts\Translation\TranslatorInterface $translator - */ - public function __construct( - MenuItemFactoryInterface $menuItemFactory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($menuItemFactory, $eventDispatcher); - - $this->translator = $translator; - } - public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), - (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__SAVE_AND_CLOSE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard changes'), ]; } @@ -70,16 +50,6 @@ protected function createStructure(array $options): ItemInterface ] ); - $saveAndCloseItem->addChild( - self::ITEM__SAVE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => $options['save_selector'], - ], - ] - ); - $menu->setChildren([ self::ITEM__SAVE_AND_CLOSE => $saveAndCloseItem, self::ITEM__CANCEL => $this->createMenuItem( From 665da0e44de658d218d6fbcde570b046d338eb1f Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:08:57 +0200 Subject: [PATCH 08/20] IBX-10414: Dropped save and close from user related actions --- .../admin/account/settings/update.html.twig | 1 - .../themes/admin/user/policy/edit.html.twig | 2 -- .../themes/admin/user/role/add.html.twig | 2 -- .../themes/admin/user/role/edit.html.twig | 2 -- .../UserPasswordChangeRightSidebarBuilder.php | 21 +----------- .../UserSettingUpdateRightSidebarBuilder.php | 32 +------------------ 6 files changed, 2 insertions(+), 58 deletions(-) diff --git a/src/bundle/Resources/views/themes/admin/account/settings/update.html.twig b/src/bundle/Resources/views/themes/admin/account/settings/update.html.twig index 3ef7954e80..f86d23c591 100644 --- a/src/bundle/Resources/views/themes/admin/account/settings/update.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/settings/update.html.twig @@ -28,7 +28,6 @@ ) }} {% endfor %} {{ form_widget(form.update, {'attr': {'hidden': 'hidden'}}) }} - {{ form_widget(form.update_and_edit, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/user/policy/edit.html.twig b/src/bundle/Resources/views/themes/admin/user/policy/edit.html.twig index 5863f5c217..2333a0c844 100644 --- a/src/bundle/Resources/views/themes/admin/user/policy/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/user/policy/edit.html.twig @@ -7,7 +7,6 @@ {% block header_admin %} {% set policy_edit_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.policy_edit.sidebar_right', [], { role, - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -35,7 +34,6 @@ {% endfor %} - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/user/role/add.html.twig b/src/bundle/Resources/views/themes/admin/user/role/add.html.twig index 2d7e3ba1b9..5d3fe83165 100644 --- a/src/bundle/Resources/views/themes/admin/user/role/add.html.twig +++ b/src/bundle/Resources/views/themes/admin/user/role/add.html.twig @@ -6,7 +6,6 @@ {% block header_admin %} {% set role_create_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.role_create.sidebar_right', [], { - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -26,7 +25,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/user/role/edit.html.twig b/src/bundle/Resources/views/themes/admin/user/role/edit.html.twig index 6433ac4735..e3a8181a89 100644 --- a/src/bundle/Resources/views/themes/admin/user/role/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/user/role/edit.html.twig @@ -7,7 +7,6 @@ {% block header_admin %} {% set role_edit_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.role_edit.sidebar_right', [], { role, - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -27,7 +26,6 @@ - {{ form_widget(form.save, { attr: { hidden: 'hidden' }}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php b/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php index 877c89c517..4e12ca6e2f 100644 --- a/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php +++ b/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php @@ -18,29 +18,12 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for AdminUI change password contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class UserPasswordChangeRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { /* Menu items */ public const ITEM__UPDATE = 'user_password_change__sidebar_right__update'; public const ITEM__CANCEL = 'user_password_change__sidebar_right__cancel'; - private TranslatorInterface $translator; - - public function __construct( - MenuItemFactoryInterface $factory, - EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator - ) { - parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; - } - /** * @return string */ @@ -52,8 +35,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException * @throws ApiExceptions\BadStateException * @throws \InvalidArgumentException @@ -93,7 +74,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__UPDATE, 'ibexa_menu'))->setDesc('Save and close'), + (new Message(self::ITEM__UPDATE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } diff --git a/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php b/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php index 644bc302a3..9eeb690f8a 100644 --- a/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php +++ b/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php @@ -17,33 +17,19 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * KnpMenuBundle Menu Builder service implementation for User Setting Edit contextual sidebar menu. - * - * @see https://symfony.com/doc/current/bundles/KnpMenuBundle/menu_builder_service.html - */ class UserSettingUpdateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { /* Menu items */ public const ITEM__SAVE = 'user_setting_update__sidebar_right__save'; - public const ITEM__SAVE_AND_EDIT = 'user_setting_update__sidebar_right__save_end_edit'; public const ITEM__CANCEL = 'user_setting_update__sidebar_right__cancel'; - private TranslatorInterface $translator; - public function __construct( MenuItemFactoryInterface $factory, EventDispatcherInterface $eventDispatcher, - TranslatorInterface $translator ) { parent::__construct($factory, $eventDispatcher); - - $this->translator = $translator; } - /** - * @return string - */ protected function getConfigureEventName(): string { return ConfigureMenuEvent::USER_SETTING_UPDATE_SIDEBAR_RIGHT; @@ -52,8 +38,6 @@ protected function getConfigureEventName(): string /** * @param array $options * - * @return \Knp\Menu\ItemInterface - * * @throws \InvalidArgumentException */ public function createStructure(array $options): ItemInterface @@ -71,19 +55,6 @@ public function createStructure(array $options): ItemInterface ] ); - $saveItem->addChild( - self::ITEM__SAVE_AND_EDIT, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => '#user_setting_update_update_and_edit', - ], - 'extras' => [ - 'orderNumber' => 10, - ], - ] - ); - $menu->setChildren([ self::ITEM__SAVE => $saveItem, self::ITEM__CANCEL => $this->createMenuItem( @@ -103,8 +74,7 @@ public function createStructure(array $options): ItemInterface public static function getTranslationMessages(): array { return [ - (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__SAVE_AND_EDIT, 'ibexa_menu'))->setDesc('Save'), + (new Message(self::ITEM__SAVE, 'ibexa_menu'))->setDesc('Save'), (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), ]; } From dca92b9c6ffb809937678c242797963feb5ae483 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 1 Aug 2025 14:09:21 +0200 Subject: [PATCH 09/20] IBX-10414: Dropped save and close from object state and section templates --- .../Resources/views/themes/admin/object_state/add.html.twig | 1 - .../Resources/views/themes/admin/object_state/edit.html.twig | 2 -- .../themes/admin/object_state/object_state_group/add.html.twig | 1 - .../themes/admin/object_state/object_state_group/edit.html.twig | 2 -- .../Resources/views/themes/admin/section/create.html.twig | 1 - .../Resources/views/themes/admin/section/update.html.twig | 1 - 6 files changed, 8 deletions(-) diff --git a/src/bundle/Resources/views/themes/admin/object_state/add.html.twig b/src/bundle/Resources/views/themes/admin/object_state/add.html.twig index 3d5431b0ef..afbc37e56a 100644 --- a/src/bundle/Resources/views/themes/admin/object_state/add.html.twig +++ b/src/bundle/Resources/views/themes/admin/object_state/add.html.twig @@ -29,6 +29,5 @@ {{ form_widget(form.create, { 'attr': { 'hidden': 'hidden' } }) }} - {{ form_widget(form.create_and_edit, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/object_state/edit.html.twig b/src/bundle/Resources/views/themes/admin/object_state/edit.html.twig index a6d42c7517..24ecae68b4 100644 --- a/src/bundle/Resources/views/themes/admin/object_state/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/object_state/edit.html.twig @@ -8,7 +8,6 @@ {% set object_state_edit_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.object_state_edit.sidebar_right', [], { group_id: object_state_group.id, - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -30,7 +29,6 @@ - {{ form_widget(form.save, { 'attr': { 'hidden': 'hidden' } }) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/object_state/object_state_group/add.html.twig b/src/bundle/Resources/views/themes/admin/object_state/object_state_group/add.html.twig index 900399820e..2af99c2f1c 100644 --- a/src/bundle/Resources/views/themes/admin/object_state/object_state_group/add.html.twig +++ b/src/bundle/Resources/views/themes/admin/object_state/object_state_group/add.html.twig @@ -25,6 +25,5 @@ {{ form_widget(form.create, { 'attr': { 'hidden': 'hidden' } }) }} - {{ form_widget(form.create_and_edit, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/object_state/object_state_group/edit.html.twig b/src/bundle/Resources/views/themes/admin/object_state/object_state_group/edit.html.twig index 670514192f..ce9a80b789 100644 --- a/src/bundle/Resources/views/themes/admin/object_state/object_state_group/edit.html.twig +++ b/src/bundle/Resources/views/themes/admin/object_state/object_state_group/edit.html.twig @@ -7,7 +7,6 @@ {% block header_admin %} {% set object_state_group_edit_sidebar_right = knp_menu_get('ezplatform_admin_ui.menu.object_state_group_edit.sidebar_right', [], { - save_id: form.save.vars.id, save_and_close_id: form.save_and_close.vars.id, }) %} @@ -29,7 +28,6 @@ - {{ form_widget(form.save, {"attr": {"hidden": "hidden"}}) }} {{ form_widget(form.save_and_close, { attr: { hidden: 'hidden' }}) }} {{ form_end(form) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/section/create.html.twig b/src/bundle/Resources/views/themes/admin/section/create.html.twig index 301f76a980..a59ed6ff6d 100644 --- a/src/bundle/Resources/views/themes/admin/section/create.html.twig +++ b/src/bundle/Resources/views/themes/admin/section/create.html.twig @@ -23,6 +23,5 @@ {{ form_widget(form_section_create.create, {'attr': {'hidden': 'hidden'}}) }} - {{ form_widget(form_section_create.create_and_edit, { attr: { hidden: 'hidden' }}) }} {{ form_end(form_section_create) }} {% endblock %} diff --git a/src/bundle/Resources/views/themes/admin/section/update.html.twig b/src/bundle/Resources/views/themes/admin/section/update.html.twig index aff99ec47f..7a0d13ac61 100644 --- a/src/bundle/Resources/views/themes/admin/section/update.html.twig +++ b/src/bundle/Resources/views/themes/admin/section/update.html.twig @@ -25,6 +25,5 @@ {{ form_widget(form_section_update.update, {'attr': {'hidden': 'hidden'}}) }} - {{ form_widget(form_section_update.update_and_edit, { attr: { hidden: 'hidden' }}) }} {{ form_end(form_section_update) }} {% endblock %} From 1627131e4acc659a5e53d3fe27d312ab74cebf9a Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 07:32:54 +0200 Subject: [PATCH 10/20] translations --- .../Resources/translations/forms.en.xliff | 36 +---- .../ibexa_content_forms_role.en.xliff | 7 +- .../ibexa_content_forms_url.en.xliff | 5 - .../translations/ibexa_content_type.en.xliff | 10 -- .../translations/ibexa_menu.en.xliff | 124 ++++-------------- .../translations/ibexa_object_state.en.xliff | 20 --- .../translations/ibexa_url_wildcard.en.xliff | 7 +- 7 files changed, 27 insertions(+), 182 deletions(-) diff --git a/src/bundle/Resources/translations/forms.en.xliff b/src/bundle/Resources/translations/forms.en.xliff index 9499b1a36a..03e25210f9 100644 --- a/src/bundle/Resources/translations/forms.en.xliff +++ b/src/bundle/Resources/translations/forms.en.xliff @@ -86,11 +86,6 @@ Name key: ezplatform.language.update.name - - Save - Save - key: ezplatform.language.update.save - Sub-items Sub-items @@ -111,11 +106,6 @@ Asset Fields(s) key: form.trash_assets_non_unique.label - - Save - Save - key: language.create.save - Save and close Save and close @@ -236,11 +226,6 @@ Name key: role_create.name - - Save - Save - key: role_create.save - Save and close Save and close @@ -256,14 +241,9 @@ Name key: role_update.name - + Save Save - key: role_update.save - - - Save and close - Save and close key: role_update.save_and_close @@ -286,14 +266,9 @@ Create key: section_create_form.create - - Save and edit - Save and edit - key: section_create_form.create_and_edit - - Save and edit - Save and edit + Save + Save key: section_create_form.update_and_edit @@ -316,11 +291,6 @@ Change section key: section_subtree_assign_form.assign - - Save - Save - key: section_update_form.update - Delete Sections Delete Sections diff --git a/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff b/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff index d135857ff0..8f5f00932b 100644 --- a/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff +++ b/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff @@ -36,14 +36,9 @@ Delete key: policy_delete.delete - + Save Save - key: policy_update.save - - - Save and close - Save and close key: policy_update.save_and_close diff --git a/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff b/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff index 8df7f2987f..2153d36de9 100644 --- a/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff +++ b/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff @@ -6,11 +6,6 @@ The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. - - Save - Save - key: url.save - Save and close Save and close diff --git a/src/bundle/Resources/translations/ibexa_content_type.en.xliff b/src/bundle/Resources/translations/ibexa_content_type.en.xliff index b23c20505c..533b186459 100644 --- a/src/bundle/Resources/translations/ibexa_content_type.en.xliff +++ b/src/bundle/Resources/translations/ibexa_content_type.en.xliff @@ -386,11 +386,6 @@ Name key: content_type_group.create.name - - Save - Save - key: content_type_group.create.save - Save and close Save and close @@ -426,11 +421,6 @@ Name key: content_type_group.update.name - - Save - Save - key: content_type_group.update.save - Save and close Save and close diff --git a/src/bundle/Resources/translations/ibexa_menu.en.xliff b/src/bundle/Resources/translations/ibexa_menu.en.xliff index 7a21ad38a2..c313858d93 100644 --- a/src/bundle/Resources/translations/ibexa_menu.en.xliff +++ b/src/bundle/Resources/translations/ibexa_menu.en.xliff @@ -172,28 +172,18 @@ key: content_type_group_create__sidebar_right__cancel - Save and close - Save and close - key: content_type_group_create__sidebar_right__create - - Save Save - key: content_type_group_create__sidebar_right__create_and_edit + key: content_type_group_create__sidebar_right__create Discard changes Discard changes key: content_type_group_edit__sidebar_right__cancel - + Save Save - key: content_type_group_edit__sidebar_right__save - - - Save and close - Save and close key: content_type_group_edit__sidebar_right__save_and_close @@ -222,28 +212,18 @@ key: language_create__sidebar_right__cancel - Save and close - Save and close - key: language_create__sidebar_right__create - - Save Save - key: language_create__sidebar_right__create_and_edit + key: language_create__sidebar_right__create Discard changes Discard changes key: language_edit__sidebar_right__cancel - + Save Save - key: language_edit__sidebar_right__save - - - Save and close - Save and close key: language_edit__sidebar_right__save_and_close @@ -332,28 +312,18 @@ key: object_state_create__sidebar_right__cancel - Save and close - Save and close - key: object_state_create__sidebar_right__create - - Save Save - key: object_state_create__sidebar_right__create_and_edit + key: object_state_create__sidebar_right__create Discard changes Discard changes key: object_state_edit__sidebar_right__cancel - + Save Save - key: object_state_edit__sidebar_right__save - - - Save and close - Save and close key: object_state_edit__sidebar_right__save_and_close @@ -362,28 +332,18 @@ key: object_state_group_create__sidebar_right__cancel - Save and close - Save and close - key: object_state_group_create__sidebar_right__create - - Save Save - key: object_state_group_create__sidebar_right__create_and_edit + key: object_state_group_create__sidebar_right__create Discard changes Discard changes key: object_state_group_edit__sidebar_right__cancel - + Save Save - key: object_state_group_edit__sidebar_right__save - - - Save and close - Save and close key: object_state_group_edit__sidebar_right__save_and_close @@ -392,8 +352,8 @@ key: policy_create__sidebar_right__cancel - Save and close - Save and close + Save + Save key: policy_create__sidebar_right__create @@ -401,14 +361,9 @@ Discard changes key: policy_edit__sidebar_right__cancel - + Save Save - key: policy_edit__sidebar_right__save - - - Save and close - Save and close key: policy_edit__sidebar_right__save_and_close @@ -417,8 +372,8 @@ key: role_assignment_create__sidebar_right__cancel - Save and close - Save and close + Save + Save key: role_assignment_create__sidebar_right__save @@ -437,28 +392,18 @@ key: role_create__sidebar_right__cancel - Save and close - Save and close - key: role_create__sidebar_right__create - - Save Save - key: role_create__sidebar_right__create_and_edit + key: role_create__sidebar_right__create Discard changes Discard changes key: role_edit__sidebar_right__cancel - + Save Save - key: role_edit__sidebar_right__save - - - Save and close - Save and close key: role_edit__sidebar_right__save_and_close @@ -467,28 +412,18 @@ key: section_create__sidebar_right__cancel - Save and close - Save and close - key: section_create__sidebar_right__create - - Save Save - key: section_create__sidebar_right__create_and_edit + key: section_create__sidebar_right__create Discard changes Discard changes key: section_edit__sidebar_right__cancel - + Save Save - key: section_edit__sidebar_right__save - - - Save and close - Save and close key: section_edit__sidebar_right__save_and_close @@ -516,14 +451,9 @@ Discard changes key: url_edit__sidebar_right__cancel - + Save Save - key: url_edit__sidebar_right__save - - - Save and close - Save and close key: url_edit__sidebar_right__save_and_close @@ -531,14 +461,9 @@ Discard changes key: url_wildcard_edit__sidebar_right__cancel - + Save Save - key: url_wildcard_edit__sidebar_right__save - - - Save and close - Save and close key: url_wildcard_edit__sidebar_right__save_and_close @@ -582,8 +507,8 @@ key: user_password_change__sidebar_right__cancel - Save and close - Save and close + Save + Save key: user_password_change__sidebar_right__update @@ -592,14 +517,9 @@ key: user_setting_update__sidebar_right__cancel - Save and close - Save and close - key: user_setting_update__sidebar_right__save - - Save Save - key: user_setting_update__sidebar_right__save_end_edit + key: user_setting_update__sidebar_right__save diff --git a/src/bundle/Resources/translations/ibexa_object_state.en.xliff b/src/bundle/Resources/translations/ibexa_object_state.en.xliff index 50e4599314..eb251a4b02 100644 --- a/src/bundle/Resources/translations/ibexa_object_state.en.xliff +++ b/src/bundle/Resources/translations/ibexa_object_state.en.xliff @@ -41,11 +41,6 @@ Save and close key: object_state.create.create - - Save - Save - key: object_state.create.create_and_edit - Identifier Identifier @@ -106,11 +101,6 @@ Name key: object_state.update.name - - Save - Save - key: object_state.update.save - Save and close Save and close @@ -161,11 +151,6 @@ Save and close key: object_state_group.create.create - - Save - Save - key: object_state_group.create.create_and_edit - Identifier Identifier @@ -241,11 +226,6 @@ Name key: object_state_group.update.name - - Save - Save - key: object_state_group.update.save - Save and close Save and close diff --git a/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff b/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff index beac85605c..85468ecdba 100644 --- a/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff +++ b/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff @@ -111,14 +111,9 @@ URL wildcard key: url_wildcard.modal.create.url.wildcard - + Save Save - key: url_wildcard.save - - - Save and close - Save and close key: url_wildcard.save_and_close From b3b0a44cafc685fb03a23647482191401e21cc7f Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 07:33:20 +0200 Subject: [PATCH 11/20] dropped duplicated password change listener/builder --- ...UserPasswordChangeRightSidebarListener.php | 77 ------------------- 1 file changed, 77 deletions(-) delete mode 100644 src/lib/EventListener/UserPasswordChangeRightSidebarListener.php diff --git a/src/lib/EventListener/UserPasswordChangeRightSidebarListener.php b/src/lib/EventListener/UserPasswordChangeRightSidebarListener.php deleted file mode 100644 index 4223d421d0..0000000000 --- a/src/lib/EventListener/UserPasswordChangeRightSidebarListener.php +++ /dev/null @@ -1,77 +0,0 @@ -translator = $translator; - } - - /** - * @return array - */ - public static function getSubscribedEvents(): array - { - return [ConfigureMenuEvent::USER_PASSWORD_CHANGE_SIDEBAR_RIGHT => 'onUserPasswordChangeRightSidebarConfigure']; - } - - /** - * @param \Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent $event - */ - public function onUserPasswordChangeRightSidebarConfigure(ConfigureMenuEvent $event): void - { - $menu = $event->getMenu(); - - $menu->addChild( - self::ITEM__UPDATE, - [ - 'attributes' => [ - 'class' => 'ibexa-btn--trigger', - 'data-click' => '#user_password_change_change', - ], - 'extras' => ['translation_domain' => 'ibexa_menu'], - ] - ); - $menu->addChild( - self::ITEM__CANCEL, - [ - 'extras' => ['translation_domain' => 'ibexa_menu'], - 'route' => 'ibexa.user_settings.list', - 'routeParameters' => [ - '_fragment' => 'ibexa-tab-my-account-settings', - ], - ] - ); - } - - /** - * @return \JMS\TranslationBundle\Model\Message[] - */ - public static function getTranslationMessages(): array - { - return [ - (new Message(self::ITEM__UPDATE, 'ibexa_menu'))->setDesc('Save and close'), - (new Message(self::ITEM__CANCEL, 'ibexa_menu'))->setDesc('Discard'), - ]; - } -} From 88d06b97c6aaf6aa202d1151137eaad3c615f405 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 08:06:01 +0200 Subject: [PATCH 12/20] fixed code style --- src/bundle/Controller/ContentTypeGroupController.php | 2 -- src/bundle/Controller/LanguageController.php | 3 --- src/bundle/Controller/LinkManagerController.php | 2 -- src/bundle/Controller/ObjectStateController.php | 1 - src/bundle/Controller/ObjectStateGroupController.php | 3 --- src/bundle/Controller/PolicyController.php | 2 -- src/bundle/Controller/RoleController.php | 3 --- src/bundle/Controller/SectionController.php | 3 --- src/bundle/Controller/URLWildcardController.php | 2 -- .../ContentType/ContentTypeGroupCreateRightSidebarBuilder.php | 3 --- .../ContentType/ContentTypeGroupEditRightSidebarBuilder.php | 3 --- .../ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php | 3 --- .../ObjectState/ObjectStateGroupEditRightSidebarBuilder.php | 3 --- src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php | 3 --- src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php | 3 --- src/lib/Menu/SectionCreateRightSidebarBuilder.php | 3 --- src/lib/Menu/SectionEditRightSidebarBuilder.php | 4 ---- src/lib/Menu/URLEditRightSidebarBuilder.php | 4 ---- src/lib/Menu/URLWildcardEditRightSidebarBuilder.php | 3 --- src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php | 3 --- .../Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php | 1 - 21 files changed, 57 deletions(-) diff --git a/src/bundle/Controller/ContentTypeGroupController.php b/src/bundle/Controller/ContentTypeGroupController.php index 0fdc096718..a0e7d9decb 100644 --- a/src/bundle/Controller/ContentTypeGroupController.php +++ b/src/bundle/Controller/ContentTypeGroupController.php @@ -14,7 +14,6 @@ use Ibexa\AdminUi\Form\Data\ContentTypeGroup\ContentTypeGroupUpdateData; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\ContentTypeGroup\ContentTypeGroupCreateType; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; use Ibexa\Contracts\Core\Repository\ContentTypeService; @@ -24,7 +23,6 @@ use JMS\TranslationBundle\Annotation\Desc; use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Pagerfanta; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/LanguageController.php b/src/bundle/Controller/LanguageController.php index 1bae439560..76e6217224 100644 --- a/src/bundle/Controller/LanguageController.php +++ b/src/bundle/Controller/LanguageController.php @@ -15,8 +15,6 @@ use Ibexa\AdminUi\Form\DataMapper\LanguageCreateMapper; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\Language\LanguageCreateType; -use Ibexa\AdminUi\Form\Type\Language\LanguageUpdateType; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; use Ibexa\Contracts\Core\Repository\LanguageService; @@ -26,7 +24,6 @@ use JMS\TranslationBundle\Annotation\Desc; use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Pagerfanta; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/LinkManagerController.php b/src/bundle/Controller/LinkManagerController.php index 6edfa9d780..09d54595a8 100644 --- a/src/bundle/Controller/LinkManagerController.php +++ b/src/bundle/Controller/LinkManagerController.php @@ -12,7 +12,6 @@ use Ibexa\AdminUi\Form\Data\URL\URLUpdateData; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\URL\URLEditType; use Ibexa\AdminUi\Pagination\Pagerfanta\URLUsagesAdapter; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; @@ -20,7 +19,6 @@ use Ibexa\Core\MVC\Symfony\Security\Authorization\Attribute; use JMS\TranslationBundle\Annotation\Desc; use Pagerfanta\Pagerfanta; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/ObjectStateController.php b/src/bundle/Controller/ObjectStateController.php index 0f55563ae0..6ee0cc66a0 100644 --- a/src/bundle/Controller/ObjectStateController.php +++ b/src/bundle/Controller/ObjectStateController.php @@ -29,7 +29,6 @@ use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Symfony\Security\Authorization\Attribute; use JMS\TranslationBundle\Annotation\Desc; -use Symfony\Component\Form\Button; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/ObjectStateGroupController.php b/src/bundle/Controller/ObjectStateGroupController.php index 3cdffdedac..6c14e9c808 100644 --- a/src/bundle/Controller/ObjectStateGroupController.php +++ b/src/bundle/Controller/ObjectStateGroupController.php @@ -14,8 +14,6 @@ use Ibexa\AdminUi\Form\Data\ObjectState\ObjectStateGroupUpdateData; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\ObjectState\ObjectStateGroupCreateType; -use Ibexa\AdminUi\Form\Type\ObjectState\ObjectStateUpdateType; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; use Ibexa\Contracts\Core\Repository\ObjectStateService; @@ -23,7 +21,6 @@ use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Symfony\Security\Authorization\Attribute; use JMS\TranslationBundle\Annotation\Desc; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/PolicyController.php b/src/bundle/Controller/PolicyController.php index da2e2b5d1e..b18a006b15 100644 --- a/src/bundle/Controller/PolicyController.php +++ b/src/bundle/Controller/PolicyController.php @@ -16,7 +16,6 @@ use Ibexa\AdminUi\Form\DataMapper\PolicyUpdateMapper; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\Policy\PolicyUpdateType; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; @@ -28,7 +27,6 @@ use JMS\TranslationBundle\Annotation\Desc; use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Pagerfanta; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/RoleController.php b/src/bundle/Controller/RoleController.php index 6311988c83..14c1887959 100644 --- a/src/bundle/Controller/RoleController.php +++ b/src/bundle/Controller/RoleController.php @@ -19,8 +19,6 @@ use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; use Ibexa\AdminUi\Form\Type\Role\RoleCopyType; -use Ibexa\AdminUi\Form\Type\Role\RoleCreateType; -use Ibexa\AdminUi\Form\Type\Role\RoleUpdateType; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; use Ibexa\Contracts\Core\Repository\RoleService; @@ -30,7 +28,6 @@ use JMS\TranslationBundle\Annotation\Desc; use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Pagerfanta; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/SectionController.php b/src/bundle/Controller/SectionController.php index febe309739..e990727744 100644 --- a/src/bundle/Controller/SectionController.php +++ b/src/bundle/Controller/SectionController.php @@ -18,8 +18,6 @@ use Ibexa\AdminUi\Form\DataMapper\SectionUpdateMapper; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\Section\SectionCreateType; -use Ibexa\AdminUi\Form\Type\Section\SectionUpdateType; use Ibexa\AdminUi\UI\Service\PathService; use Ibexa\Bundle\AdminUi\View\IbexaPagerfantaView; use Ibexa\Bundle\AdminUi\View\Template\IbexaPagerfantaTemplate; @@ -41,7 +39,6 @@ use JMS\TranslationBundle\Annotation\Ignore; use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Pagerfanta; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/bundle/Controller/URLWildcardController.php b/src/bundle/Controller/URLWildcardController.php index 3384ec6fa7..852b0a1411 100644 --- a/src/bundle/Controller/URLWildcardController.php +++ b/src/bundle/Controller/URLWildcardController.php @@ -13,7 +13,6 @@ use Ibexa\AdminUi\Form\Data\URLWildcard\URLWildcardUpdateData; use Ibexa\AdminUi\Form\Factory\FormFactory; use Ibexa\AdminUi\Form\SubmitHandler; -use Ibexa\AdminUi\Form\Type\URLWildcard\URLWildcardUpdateType; use Ibexa\AdminUi\Tab\URLManagement\URLWildcardsTab; use Ibexa\Contracts\AdminUi\Controller\Controller; use Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface; @@ -21,7 +20,6 @@ use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardUpdateStruct; use JMS\TranslationBundle\Annotation\Desc; -use Symfony\Component\Form\Button; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php index 7a1c4e3ea9..15db1a2b62 100644 --- a/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php @@ -9,13 +9,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class ContentTypeGroupCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php b/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php index ec6c4e0c92..72175adbf0 100644 --- a/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php @@ -9,13 +9,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class ContentTypeGroupEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php index 2d3613ddd9..d035cff5a4 100644 --- a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php @@ -10,13 +10,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class ObjectStateGroupCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php index dc0e3f3b96..6d7718c12f 100644 --- a/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php @@ -10,13 +10,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class ObjectStateGroupEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php index 731c06ec9a..83da6cfad6 100644 --- a/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php @@ -9,13 +9,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class RoleCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php b/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php index 4d3196fc17..26d064f276 100644 --- a/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php +++ b/src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php @@ -9,13 +9,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class RoleEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/SectionCreateRightSidebarBuilder.php b/src/lib/Menu/SectionCreateRightSidebarBuilder.php index 665f28d244..52d6972076 100644 --- a/src/lib/Menu/SectionCreateRightSidebarBuilder.php +++ b/src/lib/Menu/SectionCreateRightSidebarBuilder.php @@ -9,13 +9,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class SectionCreateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/SectionEditRightSidebarBuilder.php b/src/lib/Menu/SectionEditRightSidebarBuilder.php index 5e7a25db23..cb64ca4960 100644 --- a/src/lib/Menu/SectionEditRightSidebarBuilder.php +++ b/src/lib/Menu/SectionEditRightSidebarBuilder.php @@ -9,14 +9,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; -use Ibexa\Contracts\Core\Repository\Values\Content\Section; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class SectionEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/URLEditRightSidebarBuilder.php b/src/lib/Menu/URLEditRightSidebarBuilder.php index 77e790a2b3..1233ab1232 100644 --- a/src/lib/Menu/URLEditRightSidebarBuilder.php +++ b/src/lib/Menu/URLEditRightSidebarBuilder.php @@ -9,19 +9,15 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class URLEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { public const ITEM__SAVE_AND_CLOSE = 'url_edit__sidebar_right__save_and_close'; public const ITEM__CANCEL = 'url_edit__sidebar_right__cancel'; - protected function getConfigureEventName(): string { return ConfigureMenuEvent::URL_EDIT_SIDEBAR_RIGHT; diff --git a/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php b/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php index 1267e80576..8e0f7d2608 100644 --- a/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php +++ b/src/lib/Menu/URLWildcardEditRightSidebarBuilder.php @@ -10,12 +10,9 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\AdminUi\Tab\URLManagement\URLWildcardsTab; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; final class URLWildcardEditRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php b/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php index 4e12ca6e2f..56443567c5 100644 --- a/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php +++ b/src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php @@ -10,13 +10,10 @@ use Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent; use Ibexa\Contracts\AdminUi\Menu\AbstractBuilder; -use Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface; use Ibexa\Contracts\Core\Repository\Exceptions as ApiExceptions; use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class UserPasswordChangeRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { diff --git a/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php b/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php index 9eeb690f8a..cb2cdb751a 100644 --- a/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php +++ b/src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php @@ -15,7 +15,6 @@ use JMS\TranslationBundle\Translation\TranslationContainerInterface; use Knp\Menu\ItemInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Contracts\Translation\TranslatorInterface; class UserSettingUpdateRightSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface { From 2ac80e6def26114c31f049ed4678dd4752fac043 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 08:14:52 +0200 Subject: [PATCH 13/20] removed leftover use $form in anon function calls --- phpstan-baseline.neon | 30 +++++++++++++++++-- .../Controller/ContentTypeGroupController.php | 4 +-- src/bundle/Controller/LanguageController.php | 4 +-- .../Controller/LinkManagerController.php | 2 +- .../Controller/ObjectStateController.php | 4 +-- .../Controller/ObjectStateGroupController.php | 4 +-- src/bundle/Controller/PolicyController.php | 2 +- src/bundle/Controller/RoleController.php | 4 +-- .../Controller/URLWildcardController.php | 4 +-- 9 files changed, 41 insertions(+), 17 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 7a4ab7dcce..e4d49e3be7 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -267,7 +267,7 @@ parameters: - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroup\|null\.$#' identifier: property.nonObject - count: 2 + count: 1 path: src/bundle/Controller/ContentTypeGroupController.php - @@ -402,6 +402,18 @@ parameters: count: 1 path: src/bundle/Controller/LanguageController.php + - + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$id\.$#' + identifier: property.protected + count: 1 + path: src/bundle/Controller/LinkManagerController.php + + - + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$url\.$#' + identifier: property.protected + count: 1 + path: src/bundle/Controller/LinkManagerController.php + - message: '#^PHPDoc tag @var with type Symfony\\Component\\Form\\Form is not subtype of native type Symfony\\Component\\Form\\FormInterface\.$#' identifier: varTag.nativeType @@ -537,7 +549,7 @@ parameters: - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState\|null\.$#' identifier: property.nonObject - count: 2 + count: 1 path: src/bundle/Controller/ObjectStateController.php - @@ -627,7 +639,7 @@ parameters: - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroup\|null\.$#' identifier: property.nonObject - count: 2 + count: 1 path: src/bundle/Controller/ObjectStateGroupController.php - @@ -5694,6 +5706,18 @@ parameters: count: 1 path: src/lib/Menu/URLWildcardEditRightSidebarBuilder.php + - + message: '#^Method Ibexa\\AdminUi\\Menu\\URLEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Menu/URLEditRightSidebarBuilder.php + + - + message: '#^Method Ibexa\\AdminUi\\Menu\\URLWildcardEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Menu/URLWildcardEditRightSidebarBuilder.php + - message: '#^Method Ibexa\\AdminUi\\Menu\\UserCreateRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue diff --git a/src/bundle/Controller/ContentTypeGroupController.php b/src/bundle/Controller/ContentTypeGroupController.php index a0e7d9decb..a0eed2b265 100644 --- a/src/bundle/Controller/ContentTypeGroupController.php +++ b/src/bundle/Controller/ContentTypeGroupController.php @@ -88,7 +88,7 @@ public function createAction(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (ContentTypeGroupCreateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (ContentTypeGroupCreateData $data): Response { $createStruct = $this->contentTypeService->newContentTypeGroupCreateStruct( $data->getIdentifier() ); @@ -127,7 +127,7 @@ public function updateAction(Request $request, ContentTypeGroup $group): Respons $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (ContentTypeGroupUpdateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (ContentTypeGroupUpdateData $data): Response { $group = $data->getContentTypeGroup(); $updateStruct = $this->contentTypeService->newContentTypeGroupUpdateStruct(); $updateStruct->identifier = $data->getIdentifier(); diff --git a/src/bundle/Controller/LanguageController.php b/src/bundle/Controller/LanguageController.php index 76e6217224..3dcfe97fc3 100644 --- a/src/bundle/Controller/LanguageController.php +++ b/src/bundle/Controller/LanguageController.php @@ -148,7 +148,7 @@ public function createAction(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (LanguageCreateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (LanguageCreateData $data): Response { $languageCreateStruct = $this->languageCreateMapper->reverseMap($data); $language = $this->languageService->createLanguage($languageCreateStruct); @@ -184,7 +184,7 @@ public function editAction(Request $request, Language $language): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (LanguageUpdateData $data) use ($language, $form): Response { + $result = $this->submitHandler->handle($form, function (LanguageUpdateData $data) use ($language): Response { if ($data->getName() !== null) { $this->languageService->updateLanguageName($language, $data->getName()); } diff --git a/src/bundle/Controller/LinkManagerController.php b/src/bundle/Controller/LinkManagerController.php index 09d54595a8..7453f79656 100644 --- a/src/bundle/Controller/LinkManagerController.php +++ b/src/bundle/Controller/LinkManagerController.php @@ -51,7 +51,7 @@ public function editAction(Request $request, int $urlId): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (URLUpdateData $data) use ($url, $form): Response { + $result = $this->submitHandler->handle($form, function (URLUpdateData $data) use ($url): Response { $this->urlService->updateUrl($url, $data); $this->notificationHandler->success( /** @Desc("URL updated") */ diff --git a/src/bundle/Controller/ObjectStateController.php b/src/bundle/Controller/ObjectStateController.php index 6ee0cc66a0..dec70e147d 100644 --- a/src/bundle/Controller/ObjectStateController.php +++ b/src/bundle/Controller/ObjectStateController.php @@ -100,7 +100,7 @@ public function addAction(Request $request, ObjectStateGroup $objectStateGroup): if ($form->isSubmitted()) { $result = $this->submitHandler->handle( $form, - function (ObjectStateCreateData $data) use ($defaultLanguageCode, $objectStateGroup, $form): Response { + function (ObjectStateCreateData $data) use ($defaultLanguageCode, $objectStateGroup): Response { $createStruct = $this->objectStateService->newObjectStateCreateStruct( $data->getIdentifier() ?? '' ); @@ -208,7 +208,7 @@ public function updateAction(Request $request, ObjectState $objectState): Respon $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (ObjectStateUpdateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (ObjectStateUpdateData $data): Response { $objectState = $data->getObjectState(); $updateStruct = $this->objectStateService->newObjectStateUpdateStruct(); $updateStruct->identifier = $data->getIdentifier(); diff --git a/src/bundle/Controller/ObjectStateGroupController.php b/src/bundle/Controller/ObjectStateGroupController.php index 6c14e9c808..b13cd1d792 100644 --- a/src/bundle/Controller/ObjectStateGroupController.php +++ b/src/bundle/Controller/ObjectStateGroupController.php @@ -85,7 +85,7 @@ public function addAction(Request $request): Response if ($form->isSubmitted()) { $result = $this->submitHandler->handle( $form, - function (ObjectStateGroupCreateData $data) use ($defaultLanguageCode, $form): Response { + function (ObjectStateGroupCreateData $data) use ($defaultLanguageCode): Response { $createStruct = $this->objectStateService->newObjectStateGroupCreateStruct( $data->getIdentifier() ); @@ -187,7 +187,7 @@ public function updateAction(Request $request, ObjectStateGroup $group): Respons $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (ObjectStateGroupUpdateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (ObjectStateGroupUpdateData $data): Response { $group = $data->getObjectStateGroup(); $updateStruct = $this->objectStateService->newObjectStateGroupUpdateStruct(); $updateStruct->identifier = $data->getIdentifier(); diff --git a/src/bundle/Controller/PolicyController.php b/src/bundle/Controller/PolicyController.php index b18a006b15..55cc3e88cb 100644 --- a/src/bundle/Controller/PolicyController.php +++ b/src/bundle/Controller/PolicyController.php @@ -194,7 +194,7 @@ public function updateAction(Request $request, Role $role, Policy $policy): Resp $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (PolicyUpdateData $data) use ($role, $policy, $form): Response { + $result = $this->submitHandler->handle($form, function (PolicyUpdateData $data) use ($role, $policy): Response { $policyUpdateStruct = $this->policyUpdateMapper->reverseMap($data); $roleDraft = $this->roleService->createRoleDraft($role); diff --git a/src/bundle/Controller/RoleController.php b/src/bundle/Controller/RoleController.php index 14c1887959..af4fd14448 100644 --- a/src/bundle/Controller/RoleController.php +++ b/src/bundle/Controller/RoleController.php @@ -104,7 +104,7 @@ public function createAction(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (RoleCreateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (RoleCreateData $data): Response { $roleCreateStruct = $this->roleCreateMapper->reverseMap($data); $roleDraft = $this->roleService->createRole($roleCreateStruct); $this->roleService->publishRoleDraft($roleDraft); @@ -176,7 +176,7 @@ public function updateAction(Request $request, Role $role): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $result = $this->submitHandler->handle($form, function (RoleUpdateData $data) use ($form): Response { + $result = $this->submitHandler->handle($form, function (RoleUpdateData $data): Response { /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $role */ $role = $data->getRole(); diff --git a/src/bundle/Controller/URLWildcardController.php b/src/bundle/Controller/URLWildcardController.php index 852b0a1411..5c9d7fc3b0 100644 --- a/src/bundle/Controller/URLWildcardController.php +++ b/src/bundle/Controller/URLWildcardController.php @@ -41,7 +41,7 @@ public function addAction(Request $request): Response $form->handleRequest($request); if ($form->isSubmitted()) { - $this->submitHandler->handle($form, function (URLWildcardData $data) use ($form): Response { + $this->submitHandler->handle($form, function (URLWildcardData $data): Response { $this->urlWildcardService->create( $data->getSourceURL() ?? '', $data->getDestinationUrl() ?? '', @@ -78,7 +78,7 @@ public function updateAction(URLWildcard $urlWildcard, Request $request): Respon if ($form->isSubmitted()) { $result = $this->submitHandler->handle( $form, - function (URLWildcardUpdateData $data) use ($urlWildcard, $form): Response { + function (URLWildcardUpdateData $data) use ($urlWildcard): Response { $urlWildcardUpdateStruct = new URLWildcardUpdateStruct(); $urlWildcardUpdateStruct->destinationUrl = $data->getDestinationUrl(); $urlWildcardUpdateStruct->sourceUrl = $data->getSourceURL(); From 093d766c54dd95273f65aa12cb7cbd0d277bfa64 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 08:32:30 +0200 Subject: [PATCH 14/20] Adjusted behat tests --- features/personas/ChangePassword.feature | 2 +- features/standard/ContentTypeGroup.feature | 4 ++-- features/standard/Languages.feature | 8 ++++---- features/standard/ObjectStates.feature | 14 +++++++------- features/standard/Roles.feature | 16 ++++++++-------- features/standard/Sections.feature | 10 +++++----- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/features/personas/ChangePassword.feature b/features/personas/ChangePassword.feature index be9d89a1a0..e64cb2a879 100644 --- a/features/personas/ChangePassword.feature +++ b/features/personas/ChangePassword.feature @@ -8,7 +8,7 @@ Feature: Verify that an User allowed to change password can change his password And I switch to "Account settings" tab in User settings And I click on the change password button And I change password from "Passw0rd-42" to "Passw0rd-43" - And I perform the "Save and close" action + And I perform the "Save" action Then success notification that "Your password has been successfully changed." appears And I should be on "User settings" page diff --git a/features/standard/ContentTypeGroup.feature b/features/standard/ContentTypeGroup.feature index 0e4d869c8a..572bbf0c5d 100644 --- a/features/standard/ContentTypeGroup.feature +++ b/features/standard/ContentTypeGroup.feature @@ -25,7 +25,7 @@ Feature: Content type groups management And I set fields | label | value | | Name | Test content type Group | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on content type group page for "Test content type Group" group And there're no content types for that group @@ -50,7 +50,7 @@ Feature: Content type groups management And I set fields | label | value | | Name | Test content type Group edited | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on content type group page for "Test content type Group edited" group And success notification that "Updated content type group 'Test content type Group'." appears diff --git a/features/standard/Languages.feature b/features/standard/Languages.feature index 0cc2ea4b3d..b1fb7862b1 100644 --- a/features/standard/Languages.feature +++ b/features/standard/Languages.feature @@ -26,7 +26,7 @@ Feature: Languages management | label | value | | Name | Deutsch | | Language code | de-DE | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Deutsch" Language page And Language has proper attributes | Name | Language code | Enabled | @@ -39,7 +39,7 @@ Feature: Languages management | label | value | | Name | Deutsch Second | | Language code | de-DE | - And I perform the "Save and close" action + And I perform the "Save" action Then error notification that 'language with the "de-DE" language code already exists' appears @javascript @@ -62,7 +62,7 @@ Feature: Languages management | label | value | | Name | Edited Deutsch | | Enabled | false | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Edited Deutsch" Language page And notification that "Language" "Deutsch" is updated appears And Language has proper attributes @@ -79,7 +79,7 @@ Feature: Languages management And I set fields | label | value | | Enabled | true | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Edited Deutsch" Language page And notification that "Language" "Edited Deutsch" is updated appears And Language has proper attributes diff --git a/features/standard/ObjectStates.feature b/features/standard/ObjectStates.feature index 83003a2dd2..2688e7d2ce 100644 --- a/features/standard/ObjectStates.feature +++ b/features/standard/ObjectStates.feature @@ -27,7 +27,7 @@ Feature: Object States management | label | value | | Name | Test Object State Group | | Identifier | TestObjectStateGroupIdentifier | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Object State Group" Object State group page And "Test Object State Group" Object State group has no Object States And Object State group has proper attributes @@ -57,7 +57,7 @@ Feature: Object States management And I set fields | label | value | | Name | Test Object State Group edited | - And I perform the "Save and close" action + And I perform the "Save" action Then notification that "Object state group" "Test Object State Group edited" is updated appears And I should be on "Test Object State Group edited" Object State group page @@ -80,7 +80,7 @@ Feature: Object States management And I set fields | label | value | | Name | Test Object State Group edited2 | - And I perform the "Save and close" action + And I perform the "Save" action Then notification that "Object state group" "Test Object State Group edited2" is updated appears And I should be on "Test Object State Group edited2" Object State group page @@ -104,7 +104,7 @@ Feature: Object States management | label | value | | Name | Test Object State | | Identifier | TestObjectStateIdentifier | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Object State" Object State page And Object State has proper attributes | label | value | @@ -131,7 +131,7 @@ Feature: Object States management And I set fields | label | value | | Name | Test Object State edited | - And I perform the "Save and close" action + And I perform the "Save" action Then notification that "Object state" "Test Object State edited" is updated appears And I should be on "Test Object State edited" Object State page And Object State has proper attributes @@ -158,7 +158,7 @@ Feature: Object States management And I set fields | label | value | | Name | Test Object State edited2 | - And I perform the "Save and close" action + And I perform the "Save" action Then notification that "Object state" "Test Object State edited2" is updated appears And I should be on "Test Object State edited2" Object State page And Object State has proper attributes @@ -174,7 +174,7 @@ Feature: Object States management | label | value | | Name | Test Object State 2 | | Identifier | TestObjectStateIdentifier2 | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Object State 2" Object State page And Object State has proper attributes | label | value | diff --git a/features/standard/Roles.feature b/features/standard/Roles.feature index 52e8358bdb..1bb4dc73c1 100644 --- a/features/standard/Roles.feature +++ b/features/standard/Roles.feature @@ -24,7 +24,7 @@ Feature: Roles management And I set fields | label | value | | Name | Test Role | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Role" Role page And Policies list is empty And Assignments list is empty @@ -51,7 +51,7 @@ Feature: Roles management And I set fields | label | value | | Name | Anonymous edited | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Anonymous edited" Role page @javascript @@ -85,7 +85,7 @@ Feature: Roles management | path | | Users/Editors | And I select limitation "Media/Images" for assignment through UDW - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Role" Role page And Policies list is empty And there are assignments on the "Test Role" assignments list @@ -102,7 +102,7 @@ Feature: Roles management And I assign groups to role | path | | Users | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Role" Role page And Policies list is empty And there are assignments on the "Test Role" assignments list @@ -146,12 +146,12 @@ Feature: Roles management And I open "Test Role" Role page in admin SiteAccess When I start creating a new Policy And I select policy "Content / Read" - And I perform the "Save and close" action + And I perform the "Save" action And success notification that "Now you can set Limitations for the Policy." appears And I select limitation for "Content type" | option | | File | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Role" Role page And there is a policy "Content/Read" with "Content type: File" limitation on the "Test Role" policies list And there are assignments on the "Test Role" assignments list @@ -164,7 +164,7 @@ Feature: Roles management And I open "Test Role" Role page in admin SiteAccess When I start creating a new Policy And I select policy "User / Password" - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Role" Role page And there is a policy "User/Password" with "None" limitation on the "Test Role" policies list And there are assignments on the "Test Role" assignments list @@ -184,7 +184,7 @@ Feature: Roles management And I select limitation for "State" | option | | Lock:Locked | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Role" Role page And there are policies on the "Test Role" policies list | policy | limitation | diff --git a/features/standard/Sections.feature b/features/standard/Sections.feature index 88ef721b63..96dc125f37 100644 --- a/features/standard/Sections.feature +++ b/features/standard/Sections.feature @@ -27,7 +27,7 @@ Feature: Sections management | label | value | | Name | Test Section | | Identifier | TestSectionIdentifier | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Section" Section page And Content items list in is empty for Section And Section has proper attributes @@ -84,7 +84,7 @@ Feature: Sections management And I set fields | label | value | | Name | Test Section edited | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Section edited" Section page And notification that "Section" "Test Section edited" is updated appears @@ -107,7 +107,7 @@ Feature: Sections management And I set fields | label | value | | Name | Test Section edited2 | - And I perform the "Save and close" action + And I perform the "Save" action Then I should be on "Test Section edited2" Section page And notification that "Section" "Test Section edited2" is updated appears @@ -125,7 +125,7 @@ Feature: Sections management | label | value | | Name | TestSectionAssign | | Identifier | TestSectionAssignIdentifier | - And I perform the "Save and close" action + And I perform the "Save" action And I open "TestSectionAssign" Section page in admin SiteAccess When I start assigning to "TestSectionAssign" Section And I select content "Media/TestSection" through UDW @@ -154,7 +154,7 @@ Feature: Sections management | label | value | | Name | Test Section | | Identifier | TestSectionIdentifier2 | - And I perform the "Save and close" action + And I perform the "Save" action And notification that "Section" "Test Section" is created appears When I delete the section Then notification that "Section" "Test Section" is removed appears From c04a0e4a7b2bed9424c50cf1f1628c308c238f97 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 09:00:46 +0200 Subject: [PATCH 15/20] fixed section update save button --- src/bundle/Resources/translations/forms.en.xliff | 10 +++++----- src/lib/Form/Type/Section/SectionUpdateType.php | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bundle/Resources/translations/forms.en.xliff b/src/bundle/Resources/translations/forms.en.xliff index 03e25210f9..0094b00f69 100644 --- a/src/bundle/Resources/translations/forms.en.xliff +++ b/src/bundle/Resources/translations/forms.en.xliff @@ -266,11 +266,6 @@ Create key: section_create_form.create - - Save - Save - key: section_create_form.update_and_edit - Delete Delete @@ -291,6 +286,11 @@ Change section key: section_subtree_assign_form.assign + + Save + Save + key: section_update_form.update + Delete Sections Delete Sections diff --git a/src/lib/Form/Type/Section/SectionUpdateType.php b/src/lib/Form/Type/Section/SectionUpdateType.php index bf37910fde..975386b86f 100644 --- a/src/lib/Form/Type/Section/SectionUpdateType.php +++ b/src/lib/Form/Type/Section/SectionUpdateType.php @@ -27,9 +27,9 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $this->sectionType->buildForm($builder, $options); $builder - ->add('update_and_edit', SubmitType::class, [ + ->add('update', SubmitType::class, [ 'label' => /** @Desc("Save") */ - 'section_create_form.update_and_edit', + 'section_update_form.update', ]); } From 4f20f39b0886710a4f1ffc3bf790cf4f728f099d Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 09:24:53 +0200 Subject: [PATCH 16/20] adjusted section update redirect --- src/bundle/Controller/SectionController.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/bundle/Controller/SectionController.php b/src/bundle/Controller/SectionController.php index e990727744..be42665741 100644 --- a/src/bundle/Controller/SectionController.php +++ b/src/bundle/Controller/SectionController.php @@ -371,10 +371,9 @@ public function updateAction(Request $request, Section $section): Response } } - return $this->render('@ibexadesign/section/update.html.twig', [ - 'section' => $section, - 'form_section_update' => $form, - ]); + return new RedirectResponse($this->generateUrl('ibexa.section.view', [ + 'sectionId' => $section->id, + ])); } /** From c91f66c147b2dbc0d5ad89cc7876af464dfa0c73 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 09:47:51 +0200 Subject: [PATCH 17/20] fixed section update save button v2 --- src/bundle/Controller/SectionController.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/bundle/Controller/SectionController.php b/src/bundle/Controller/SectionController.php index be42665741..0d858e4829 100644 --- a/src/bundle/Controller/SectionController.php +++ b/src/bundle/Controller/SectionController.php @@ -364,6 +364,11 @@ public function updateAction(Request $request, Section $section): Response ['%name%' => $section->name], 'ibexa_section' ); + + return new RedirectResponse($this->generateUrl('ibexa.section.view', [ + 'sectionId' => $section->id, + ])); + } catch (Exception $e) { $this->notificationHandler->error(/** @Ignore */ $e->getMessage() @@ -371,9 +376,10 @@ public function updateAction(Request $request, Section $section): Response } } - return new RedirectResponse($this->generateUrl('ibexa.section.view', [ - 'sectionId' => $section->id, - ])); + return $this->render('@ibexadesign/section/update.html.twig', [ + 'section' => $section, + 'form_section_update' => $form, + ]); } /** From 0014ab549b4c9b568ca27704e2229b09984bbf1d Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 4 Aug 2025 10:11:01 +0200 Subject: [PATCH 18/20] fixed action name for settings update --- features/standard/Autosave.feature | 2 +- src/bundle/Controller/SectionController.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/features/standard/Autosave.feature b/features/standard/Autosave.feature index a4c53fabe5..71d8db2e94 100644 --- a/features/standard/Autosave.feature +++ b/features/standard/Autosave.feature @@ -38,7 +38,7 @@ Feature: Content Items creation And I'm on Content view Page for root And I go to user settings And I disable autosave - And I perform the "Save and close" action + And I perform the "Save" action And I'm on Content view Page for root When I start creating a new content "Article" And I set content fields diff --git a/src/bundle/Controller/SectionController.php b/src/bundle/Controller/SectionController.php index 0d858e4829..a0bb8004e7 100644 --- a/src/bundle/Controller/SectionController.php +++ b/src/bundle/Controller/SectionController.php @@ -368,7 +368,6 @@ public function updateAction(Request $request, Section $section): Response return new RedirectResponse($this->generateUrl('ibexa.section.view', [ 'sectionId' => $section->id, ])); - } catch (Exception $e) { $this->notificationHandler->error(/** @Ignore */ $e->getMessage() From 62ce308df50bd93e28570f897fe597a8a3e4bf61 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Tue, 19 Aug 2025 08:33:25 +0200 Subject: [PATCH 19/20] regenerated baseline after rebase --- phpstan-baseline.neon | 126 ------------------------------------------ 1 file changed, 126 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e4d49e3be7..41815708e5 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -402,18 +402,6 @@ parameters: count: 1 path: src/bundle/Controller/LanguageController.php - - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$id\.$#' - identifier: property.protected - count: 1 - path: src/bundle/Controller/LinkManagerController.php - - - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$url\.$#' - identifier: property.protected - count: 1 - path: src/bundle/Controller/LinkManagerController.php - - message: '#^PHPDoc tag @var with type Symfony\\Component\\Form\\Form is not subtype of native type Symfony\\Component\\Form\\FormInterface\.$#' identifier: varTag.nativeType @@ -708,12 +696,6 @@ parameters: count: 1 path: src/bundle/Controller/PolicyController.php - - - message: '#^Call to an undefined method Symfony\\Component\\Form\\FormInterface\:\:getClickedButton\(\)\.$#' - identifier: method.notFound - count: 2 - path: src/bundle/Controller/PolicyController.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' identifier: argument.type @@ -1782,18 +1764,6 @@ parameters: count: 1 path: src/lib/EventListener/SetViewParametersListener.php - - - message: '#^Method Ibexa\\AdminUi\\EventListener\\UserPasswordChangeRightSidebarListener\:\:getSubscribedEvents\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/lib/EventListener/UserPasswordChangeRightSidebarListener.php - - - - message: '#^Property Ibexa\\AdminUi\\EventListener\\UserPasswordChangeRightSidebarListener\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/EventListener/UserPasswordChangeRightSidebarListener.php - - message: '#^Method Ibexa\\AdminUi\\Exception\\ContentTypeIconNotFoundException\:\:__construct\(\) has parameter \$code with no type specified\.$#' identifier: missingType.parameter @@ -5412,48 +5382,24 @@ parameters: count: 1 path: src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\ContentType\\ContentTypeGroupCreateRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/ContentType/ContentTypeGroupCreateRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\Admin\\ContentType\\ContentTypeGroupEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\ContentType\\ContentTypeGroupEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/ContentType/ContentTypeGroupEditRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\Admin\\Language\\LanguageCreateRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/Admin/Language/LanguageCreateRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\Language\\LanguageCreateRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/Language/LanguageCreateRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\Admin\\Language\\LanguageEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/Admin/Language/LanguageEditRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\Language\\LanguageEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/Language/LanguageEditRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\Admin\\ObjectState\\ObjectStateCreateRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -5472,24 +5418,12 @@ parameters: count: 1 path: src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\ObjectState\\ObjectStateGroupCreateRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/ObjectState/ObjectStateGroupCreateRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\Admin\\ObjectState\\ObjectStateGroupEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\ObjectState\\ObjectStateGroupEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/ObjectState/ObjectStateGroupEditRightSidebarBuilder.php - - message: '#^Parameter \#1 \$item of method Knp\\Menu\\Util\\MenuManipulator\:\:moveToLastPosition\(\) expects Knp\\Menu\\ItemInterface, Knp\\Menu\\ItemInterface\|null given\.$#' identifier: argument.type @@ -5532,24 +5466,12 @@ parameters: count: 1 path: src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\Role\\RoleCreateRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/Role/RoleCreateRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\Admin\\Role\\RoleEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\Admin\\Role\\RoleEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/Admin/Role/RoleEditRightSidebarBuilder.php - - message: '#^Access to an undefined property Ibexa\\AdminUi\\Menu\\ContentCreateRightSidebarBuilder\:\:\$translator\.$#' identifier: property.notFound @@ -5652,24 +5574,12 @@ parameters: count: 1 path: src/lib/Menu/SectionCreateRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\SectionCreateRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/SectionCreateRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\SectionEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/SectionEditRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\SectionEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/SectionEditRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\TrashRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -5694,30 +5604,6 @@ parameters: count: 1 path: src/lib/Menu/TrashRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\URLEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/URLEditRightSidebarBuilder.php - - - - message: '#^Property Ibexa\\AdminUi\\Menu\\URLWildcardEditRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/URLWildcardEditRightSidebarBuilder.php - - - - message: '#^Method Ibexa\\AdminUi\\Menu\\URLEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/lib/Menu/URLEditRightSidebarBuilder.php - - - - message: '#^Method Ibexa\\AdminUi\\Menu\\URLWildcardEditRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/lib/Menu/URLWildcardEditRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\UserCreateRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -5742,24 +5628,12 @@ parameters: count: 1 path: src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\UserPasswordChangeRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/UserPasswordChangeRightSidebarBuilder.php - - message: '#^Method Ibexa\\AdminUi\\Menu\\UserSetting\\UserSettingUpdateRightSidebarBuilder\:\:createStructure\(\) has parameter \$options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php - - - message: '#^Property Ibexa\\AdminUi\\Menu\\UserSetting\\UserSettingUpdateRightSidebarBuilder\:\:\$translator is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: src/lib/Menu/UserSetting/UserSettingUpdateRightSidebarBuilder.php - - message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#' identifier: method.notFound From 498123d97e7ddb205ab60d1ac802e12cb1e80533 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Tue, 19 Aug 2025 11:46:35 +0200 Subject: [PATCH 20/20] dropped form translations as they come from menu builders --- .../Resources/translations/forms.en.xliff | 30 ------------------- .../ibexa_content_forms_role.en.xliff | 5 ---- .../ibexa_content_forms_url.en.xliff | 5 ---- .../translations/ibexa_content_type.en.xliff | 10 ------- .../translations/ibexa_object_state.en.xliff | 20 ------------- .../translations/ibexa_url_wildcard.en.xliff | 5 ---- .../ContentTypeGroupCreateType.php | 4 +-- .../ContentTypeGroupUpdateType.php | 4 +-- .../Form/Type/Language/LanguageCreateType.php | 3 +- .../Form/Type/Language/LanguageUpdateType.php | 3 +- .../ObjectState/ObjectStateCreateType.php | 4 +-- .../ObjectStateGroupCreateType.php | 4 +-- .../ObjectStateGroupUpdateType.php | 4 +-- .../ObjectState/ObjectStateUpdateType.php | 4 +-- src/lib/Form/Type/Policy/PolicyUpdateType.php | 3 +- src/lib/Form/Type/Role/RoleCreateType.php | 3 +- src/lib/Form/Type/Role/RoleUpdateType.php | 4 +-- .../Form/Type/Section/SectionCreateType.php | 5 +--- .../Form/Type/Section/SectionUpdateType.php | 5 +--- src/lib/Form/Type/URL/URLEditType.php | 4 +-- .../URLWildcard/URLWildcardUpdateType.php | 4 +-- 21 files changed, 15 insertions(+), 118 deletions(-) diff --git a/src/bundle/Resources/translations/forms.en.xliff b/src/bundle/Resources/translations/forms.en.xliff index 0094b00f69..2420cf6921 100644 --- a/src/bundle/Resources/translations/forms.en.xliff +++ b/src/bundle/Resources/translations/forms.en.xliff @@ -106,16 +106,6 @@ Asset Fields(s) key: form.trash_assets_non_unique.label - - Save and close - Save and close - key: language.create.save_and_close - - - Save and close - Save and close - key: language.update.save_and_close - Delete languages Delete languages @@ -226,11 +216,6 @@ Name key: role_create.name - - Save and close - Save and close - key: role_create.save_and_close - Delete Delete @@ -241,11 +226,6 @@ Name key: role_update.name - - Save - Save - key: role_update.save_and_close - Delete Role Delete Role @@ -261,11 +241,6 @@ Assign content key: section_content_assign_form.locations - - Create - Create - key: section_create_form.create - Delete Delete @@ -286,11 +261,6 @@ Change section key: section_subtree_assign_form.assign - - Save - Save - key: section_update_form.update - Delete Sections Delete Sections diff --git a/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff b/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff index 8f5f00932b..b969b77b55 100644 --- a/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff +++ b/src/bundle/Resources/translations/ibexa_content_forms_role.en.xliff @@ -36,11 +36,6 @@ Delete key: policy_delete.delete - - Save - Save - key: policy_update.save_and_close - Select Locations Select Locations diff --git a/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff b/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff index 2153d36de9..58e6449abf 100644 --- a/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff +++ b/src/bundle/Resources/translations/ibexa_content_forms_url.en.xliff @@ -6,11 +6,6 @@ The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. - - Save and close - Save and close - key: url.save_and_close - All All diff --git a/src/bundle/Resources/translations/ibexa_content_type.en.xliff b/src/bundle/Resources/translations/ibexa_content_type.en.xliff index 533b186459..5f570ef119 100644 --- a/src/bundle/Resources/translations/ibexa_content_type.en.xliff +++ b/src/bundle/Resources/translations/ibexa_content_type.en.xliff @@ -386,11 +386,6 @@ Name key: content_type_group.create.name - - Save and close - Save and close - key: content_type_group.create.submit - Created content type group '%name%'. Created content type group '%name%'. @@ -421,11 +416,6 @@ Name key: content_type_group.update.name - - Save and close - Save and close - key: content_type_group.update.submit - Updated content type group '%name%'. Updated content type group '%name%'. diff --git a/src/bundle/Resources/translations/ibexa_object_state.en.xliff b/src/bundle/Resources/translations/ibexa_object_state.en.xliff index eb251a4b02..f4cb759248 100644 --- a/src/bundle/Resources/translations/ibexa_object_state.en.xliff +++ b/src/bundle/Resources/translations/ibexa_object_state.en.xliff @@ -36,11 +36,6 @@ Set key: object_state.button.set - - Save and close - Save and close - key: object_state.create.create - Identifier Identifier @@ -101,11 +96,6 @@ Name key: object_state.update.name - - Save and close - Save and close - key: object_state.update.save_and_close - Object state '%name%' updated. Object state '%name%' updated. @@ -146,11 +136,6 @@ Delete Object state group key: object_state_group.bulk_delete.delete - - Save and close - Save and close - key: object_state_group.create.create - Identifier Identifier @@ -226,11 +211,6 @@ Name key: object_state_group.update.name - - Save and close - Save and close - key: object_state_group.update.save_and_close - Object state group '%name%' updated. Object state group '%name%' updated. diff --git a/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff b/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff index 85468ecdba..e10cb7ea0c 100644 --- a/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff +++ b/src/bundle/Resources/translations/ibexa_url_wildcard.en.xliff @@ -111,11 +111,6 @@ URL wildcard key: url_wildcard.modal.create.url.wildcard - - Save - Save - key: url_wildcard.save_and_close - Search for URL wildcards Search for URL wildcards diff --git a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php index f2ab2328ae..f31249c992 100644 --- a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php +++ b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupCreateType.php @@ -24,9 +24,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('identifier', TextType::class, [ 'label' => /** @Desc("Name") */ 'content_type_group.create.name', ]) - ->add('create', SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'content_type_group.create.submit', - ]); + ->add('create', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php index c2b32959b1..fa69ab5502 100644 --- a/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php +++ b/src/lib/Form/Type/ContentTypeGroup/ContentTypeGroupUpdateType.php @@ -24,9 +24,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('identifier', TextType::class, [ 'label' => /** @Desc("Name") */ 'content_type_group.update.name', ]) - ->add('update', SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'content_type_group.update.submit', - ]); + ->add('update', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/Language/LanguageCreateType.php b/src/lib/Form/Type/Language/LanguageCreateType.php index 52cd680670..9cf346306a 100644 --- a/src/lib/Form/Type/Language/LanguageCreateType.php +++ b/src/lib/Form/Type/Language/LanguageCreateType.php @@ -40,8 +40,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ) ->add( 'save_and_close', - SubmitType::class, - ['label' => /** @Desc("Save") */ 'language.create.save_and_close'] + SubmitType::class ); } diff --git a/src/lib/Form/Type/Language/LanguageUpdateType.php b/src/lib/Form/Type/Language/LanguageUpdateType.php index 91527a8e4a..b1fb78266e 100644 --- a/src/lib/Form/Type/Language/LanguageUpdateType.php +++ b/src/lib/Form/Type/Language/LanguageUpdateType.php @@ -40,8 +40,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ) ->add( 'save_and_close', - SubmitType::class, - ['label' => /** @Desc("Save") */ 'language.update.save_and_close'] + SubmitType::class ); } diff --git a/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php b/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php index 0e3c9ba77f..9c0740746d 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateCreateType.php @@ -27,9 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('name', TextType::class, [ 'label' => /** @Desc("Name") */ 'object_state.create.name', ]) - ->add('create', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'object_state.create.create', - ]); + ->add('create', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php b/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php index 3c29527fb8..156745c471 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateGroupCreateType.php @@ -27,9 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('name', TextType::class, [ 'label' => /** @Desc("Name") */ 'object_state_group.create.name', ]) - ->add('create', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'object_state_group.create.create', - ]); + ->add('create', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php b/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php index fc146e875a..6931774b7d 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateGroupUpdateType.php @@ -27,9 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('name', TextType::class, [ 'label' => /** @Desc("Name") */ 'object_state_group.update.name', ]) - ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'object_state_group.update.save_and_close', - ]); + ->add('save_and_close', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php b/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php index 75e09fc55f..024bf060e5 100644 --- a/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php +++ b/src/lib/Form/Type/ObjectState/ObjectStateUpdateType.php @@ -27,9 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('name', TextType::class, [ 'label' => /** @Desc("Name") */ 'object_state.update.name', ]) - ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'object_state.update.save_and_close', - ]); + ->add('save_and_close', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/Policy/PolicyUpdateType.php b/src/lib/Form/Type/Policy/PolicyUpdateType.php index 73fa54488b..e15881bf29 100644 --- a/src/lib/Form/Type/Policy/PolicyUpdateType.php +++ b/src/lib/Form/Type/Policy/PolicyUpdateType.php @@ -43,8 +43,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ) ->add( 'save_and_close', - SubmitType::class, - ['label' => /** @Desc("Save") */ 'policy_update.save_and_close'] + SubmitType::class ); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options): void { diff --git a/src/lib/Form/Type/Role/RoleCreateType.php b/src/lib/Form/Type/Role/RoleCreateType.php index d5bf5cbacd..7d7cb16775 100644 --- a/src/lib/Form/Type/Role/RoleCreateType.php +++ b/src/lib/Form/Type/Role/RoleCreateType.php @@ -27,8 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ) ->add( 'save_and_close', - SubmitType::class, - ['label' => /** @Desc("Save") */ 'role_create.save_and_close'] + SubmitType::class ); } diff --git a/src/lib/Form/Type/Role/RoleUpdateType.php b/src/lib/Form/Type/Role/RoleUpdateType.php index 9ea83432fc..ba75cc8d9c 100644 --- a/src/lib/Form/Type/Role/RoleUpdateType.php +++ b/src/lib/Form/Type/Role/RoleUpdateType.php @@ -25,9 +25,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void TextType::class, ['label' => /** @Desc("Name") */ 'role_update.name'] ) - ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'role_update.save_and_close', - ]); + ->add('save_and_close', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/Section/SectionCreateType.php b/src/lib/Form/Type/Section/SectionCreateType.php index 43350b38fe..5740789271 100644 --- a/src/lib/Form/Type/Section/SectionCreateType.php +++ b/src/lib/Form/Type/Section/SectionCreateType.php @@ -27,10 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $this->sectionType->buildForm($builder, $options); $builder - ->add('create', SubmitType::class, [ - 'label' => /** @Desc("Create") */ - 'section_create_form.create', - ]); + ->add('create', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/Section/SectionUpdateType.php b/src/lib/Form/Type/Section/SectionUpdateType.php index 975386b86f..be51996730 100644 --- a/src/lib/Form/Type/Section/SectionUpdateType.php +++ b/src/lib/Form/Type/Section/SectionUpdateType.php @@ -27,10 +27,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $this->sectionType->buildForm($builder, $options); $builder - ->add('update', SubmitType::class, [ - 'label' => /** @Desc("Save") */ - 'section_update_form.update', - ]); + ->add('update', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/URL/URLEditType.php b/src/lib/Form/Type/URL/URLEditType.php index ac70a49dfe..56033bb4b2 100644 --- a/src/lib/Form/Type/URL/URLEditType.php +++ b/src/lib/Form/Type/URL/URLEditType.php @@ -19,9 +19,7 @@ class URLEditType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('url', TextType::class) - ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save and close") */ 'url.save_and_close', - ]); + ->add('save_and_close', SubmitType::class); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php b/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php index 541e99d379..808de83cb0 100644 --- a/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php +++ b/src/lib/Form/Type/URLWildcard/URLWildcardUpdateType.php @@ -35,9 +35,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'label' => false, 'required' => false, ]) - ->add('save_and_close', SubmitType::class, [ - 'label' => /** @Desc("Save") */ 'url_wildcard.save_and_close', - ]); + ->add('save_and_close', SubmitType::class); } /**