Skip to content

Commit d560147

Browse files
committed
Merge branch 'task/upgrade-5.0' into 'release/2.2'
[TASK] Upgrade extension to support OroCommerce 5.0 See merge request b2bcode/oro/extensions/cms-form-builder!4
2 parents 756b2ef + e8436f8 commit d560147

File tree

32 files changed

+227
-175
lines changed

32 files changed

+227
-175
lines changed

composer.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@
1717
]
1818
},
1919
"require": {
20-
"oro/commerce": "4.2.*"
20+
"oro/commerce": "5.0.*"
2121
},
22-
"minimum-stability": "dev"
22+
"minimum-stability": "dev",
23+
"extra": {
24+
"branch-alias": {
25+
"dev-master": "5.0-dev"
26+
}
27+
}
2328
}

src/B2bCode/Bundle/CmsFormBundle/Controller/AjaxFormController.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,31 @@
1616
use B2bCode\Bundle\CmsFormBundle\Entity\CmsFormField;
1717
use B2bCode\Bundle\CmsFormBundle\Form\Type\FieldType;
1818
use B2bCode\Bundle\CmsFormBundle\Provider\GeneralFieldProvider;
19-
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
19+
use Doctrine\Persistence\ManagerRegistry;
20+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
21+
use Symfony\Component\Routing\Annotation\Route;
2022
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
21-
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
2223
use Symfony\Component\HttpFoundation\JsonResponse;
2324
use Symfony\Component\HttpFoundation\Request;
2425
use Oro\Bundle\SecurityBundle\Annotation\AclAncestor;
2526
use Symfony\Component\HttpFoundation\Response;
2627

27-
class AjaxFormController extends Controller
28+
class AjaxFormController extends AbstractController
2829
{
2930
/**
3031
* @Route("/form-view}", name="b2b_code_cms_form_frontend_ajax_form_view")
3132
* @AclAncestor("b2b_code_cms_form_field_create")
3233
* @Template
3334
*
34-
* @param Request $request
3535
* @return array
3636
*/
37-
public function formViewAction(Request $request)
37+
public function formViewAction(Request $request, GeneralFieldProvider $fieldProvider)
3838
{
3939
$form = $this->createForm(FieldType::class, new CmsFormField());
4040
$form->handleRequest($request);
4141

4242
$formView = $form->createView();
43-
$this->get(GeneralFieldProvider::class)->manipulate($formView);
43+
$fieldProvider->manipulate($formView);
4444

4545
return [
4646
'form' => $formView,
@@ -51,31 +51,31 @@ public function formViewAction(Request $request)
5151
* @Route("/form-preview}", name="b2b_code_cms_form_frontend_ajax_field_preview")
5252
* @AclAncestor("b2b_code_cms_form_field_create")
5353
* @Template
54-
* @param Request $request
54+
*
5555
* @return array
5656
*/
57-
public function fieldPreviewAction(Request $request)
57+
public function fieldPreviewAction(Request $request, FormBuilderInterface $formBuilder)
5858
{
5959
$cmsField = new CmsFormField();
6060
$form = $this->createForm(FieldType::class, $cmsField);
6161
$form->handleRequest($request);
6262

6363
return [
64-
'form' => $this->get(FormBuilderInterface::class)->buildField($cmsField)->createView(),
64+
'form' => $formBuilder->buildField($cmsField)->createView(),
6565
'entity' => $cmsField
6666
];
6767
}
6868

6969
/**
7070
* @Route("/{id}/reorder", name="b2b_code_cms_form_ajax_reorder")
7171
* @AclAncestor("b2b_code_cms_form_create")
72-
* @param Request $request
73-
* @param CmsForm $cmsForm
72+
*
7473
* @return array|Response
7574
*/
76-
public function reorderAction(Request $request, CmsForm $cmsForm)
75+
public function reorderAction(Request $request, CmsForm $cmsForm, ManagerRegistry $registry)
7776
{
78-
$data = $request->request->get('cms_form_reorder');
77+
/** @var array $data */
78+
$data = $request->request->get('cms_form_reorder', []);
7979
if (!array_key_exists('fields', $data)) {
8080
return new JsonResponse(['success' => false]);
8181
}
@@ -88,7 +88,7 @@ public function reorderAction(Request $request, CmsForm $cmsForm)
8888
$cmsForm->getField($fieldName)->setSortOrder((int)$sortOrder['sortOrder']);
8989
}
9090

91-
$manager = $this->get('doctrine')->getManagerForClass(CmsForm::class);
91+
$manager = $registry->getManagerForClass(CmsForm::class);
9292
$manager->persist($cmsForm);
9393
$manager->flush();
9494

src/B2bCode/Bundle/CmsFormBundle/Controller/Api/Rest/FormFieldController.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@
1111

1212
namespace B2bCode\Bundle\CmsFormBundle\Controller\Api\Rest;
1313

14-
use FOS\RestBundle\Controller\Annotations\NamePrefix;
15-
use FOS\RestBundle\Controller\Annotations\RouteResource;
1614
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
1715
use Oro\Bundle\SecurityBundle\Annotation\AclAncestor;
1816
use Oro\Bundle\SoapBundle\Controller\Api\Rest\RestController;
1917
use Oro\Bundle\SoapBundle\Entity\Manager\ApiEntityManager;
2018
use Symfony\Component\HttpFoundation\Response;
2119

2220
/**
23-
* @RouteResource("formfield")
24-
* @NamePrefix("b2b_code_api_")
21+
* REST API controller for FormField entity.
2522
*/
2623
class FormFieldController extends RestController
2724
{

src/B2bCode/Bundle/CmsFormBundle/Controller/FormController.php

Lines changed: 58 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@
1616
use B2bCode\Bundle\CmsFormBundle\Entity\CmsFormField;
1717
use B2bCode\Bundle\CmsFormBundle\Form\Type\FieldType;
1818
use B2bCode\Bundle\CmsFormBundle\Form\Type\FormType;
19+
use Oro\Bundle\FormBundle\Model\UpdateHandlerFacade;
1920
use Oro\Bundle\SecurityBundle\Annotation\AclAncestor;
20-
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
21+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
22+
use Symfony\Component\Routing\Annotation\Route;
2123
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
22-
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
2324
use Symfony\Component\HttpFoundation\RedirectResponse;
2425
use Symfony\Component\HttpFoundation\Request;
2526
use Symfony\Component\HttpFoundation\Response;
27+
use Symfony\Contracts\Translation\TranslatorInterface;
2628

27-
class FormController extends Controller
29+
class FormController extends AbstractController
2830
{
2931
/**
3032
* @Route("/", name="b2b_code_cms_form_index")
@@ -41,25 +43,28 @@ public function indexAction()
4143
* @AclAncestor("b2b_code_cms_form_view")
4244
* @Template
4345
*/
44-
public function viewAction(CmsForm $cmsForm)
46+
public function viewAction(CmsForm $cmsForm, FormBuilderInterface $formBuilder)
4547
{
46-
$form = $this->get(FormBuilderInterface::class)->getForm($cmsForm->getAlias());
48+
$form = $formBuilder->getForm($cmsForm->getAlias());
4749

4850
return ['entity' => $cmsForm, 'form' => $form->createView()];
4951
}
5052

5153
/**
5254
* @Route("/create", name="b2b_code_cms_form_create")
5355
* @AclAncestor("b2b_code_cms_form_create")
54-
* @Template("B2bCodeCmsFormBundle:Form:update.html.twig")
55-
* @param Request $request
56+
* @Template("@B2bCodeCmsForm/Form/update.html.twig")
57+
*
5658
* @return array|Response
5759
*/
58-
public function createAction(Request $request)
59-
{
60+
public function createAction(
61+
Request $request,
62+
UpdateHandlerFacade $formHandler,
63+
TranslatorInterface $translator
64+
) {
6065
$form = new CmsForm();
6166

62-
$result = $this->update($request, $form);
67+
$result = $this->update($request, $form, $formHandler, $translator);
6368

6469
// for better UX redirect directly to field creation page
6570
if ($result instanceof RedirectResponse && $form->getId()) {
@@ -72,27 +77,32 @@ public function createAction(Request $request)
7277
/**
7378
* @Route("/update/{id}", name="b2b_code_cms_form_update", requirements={"id"="\d+"})
7479
* @AclAncestor("b2b_code_cms_form_update")
75-
* @Template("B2bCodeCmsFormBundle:Form:update.html.twig")
76-
* @param Request $request
77-
* @param CmsForm $form
80+
* @Template("@B2bCodeCmsForm/Form/update.html.twig")
81+
*
7882
* @return array|Response
7983
*/
80-
public function updateAction(Request $request, CmsForm $form)
81-
{
82-
return $this->update($request, $form);
84+
public function updateAction(
85+
Request $request,
86+
CmsForm $form,
87+
UpdateHandlerFacade $formHandler,
88+
TranslatorInterface $translator
89+
) {
90+
return $this->update($request, $form, $formHandler, $translator);
8391
}
8492

8593
/**
86-
* @param Request $request
87-
* @param CmsForm $form
8894
* @return Response|array
8995
*/
90-
protected function update(Request $request, CmsForm $form)
91-
{
92-
$updateResult = $this->get('oro_form.update_handler')->update(
96+
protected function update(
97+
Request $request,
98+
CmsForm $form,
99+
UpdateHandlerFacade $formHandler,
100+
TranslatorInterface $translator
101+
) {
102+
$updateResult = $formHandler->update(
93103
$form,
94104
$this->createForm(FormType::class, $form),
95-
$this->get('translator')->trans('b2bcode.cmsform.saved_message'),
105+
$translator->trans('b2bcode.cmsform.saved_message'),
96106
$request
97107
);
98108

@@ -112,44 +122,51 @@ public function responsesAction(CmsForm $cmsForm)
112122
/**
113123
* @Route("/{id}/field/create", name="b2b_code_cms_form_field_create", requirements={"id"="\d+"})
114124
* @AclAncestor("b2b_code_cms_form_field_create")
115-
* @Template("B2bCodeCmsFormBundle:Field:update.html.twig")
116-
* @param Request $request
117-
* @param CmsForm $cmsForm
125+
* @Template("@B2bCodeCmsForm/Field/update.html.twig")
126+
*
118127
* @return array|Response
119128
*/
120-
public function createFieldAction(Request $request, CmsForm $cmsForm)
121-
{
129+
public function createFieldAction(
130+
Request $request,
131+
CmsForm $cmsForm,
132+
UpdateHandlerFacade $formHandler,
133+
TranslatorInterface $translator
134+
) {
122135
$field = new CmsFormField();
123136
$field->setForm($cmsForm);
124137

125-
return $this->updateField($request, $field);
138+
return $this->updateField($request, $field, $formHandler, $translator);
126139
}
127140

128141
/**
129142
* @Route("/field/update/{id}", name="b2b_code_cms_form_field_update", requirements={"id"="\d+"})
130143
* @AclAncestor("b2b_code_cms_form_field_update")
131-
* @Template("B2bCodeCmsFormBundle:Field:update.html.twig")
132-
* @param Request $request
133-
* @param CmsFormField $field
144+
* @Template("@B2bCodeCmsForm/Field/update.html.twig")
145+
*
134146
* @return array|Response
135147
*/
136-
public function updateFieldAction(Request $request, CmsFormField $field)
137-
{
138-
return $this->updateField($request, $field);
148+
public function updateFieldAction(
149+
Request $request,
150+
CmsFormField $field,
151+
UpdateHandlerFacade $formHandler,
152+
TranslatorInterface $translator
153+
) {
154+
return $this->updateField($request, $field, $formHandler, $translator);
139155
}
140156

141157
/**
142-
* @param Request $request
143-
*
144-
* @param CmsFormField $formField
145158
* @return Response|array
146159
*/
147-
protected function updateField(Request $request, CmsFormField $formField)
148-
{
149-
$updateResult = $this->get('oro_form.update_handler')->update(
160+
protected function updateField(
161+
Request $request,
162+
CmsFormField $formField,
163+
UpdateHandlerFacade $formHandler,
164+
TranslatorInterface $translator
165+
) {
166+
$updateResult = $formHandler->update(
150167
$formField,
151168
$this->createForm(FieldType::class, $formField),
152-
$this->get('translator')->trans('b2bcode.cmsform.cmsformfield.saved_message'),
169+
$translator->trans('b2bcode.cmsform.cmsformfield.saved_message'),
153170
$request
154171
);
155172

src/B2bCode/Bundle/CmsFormBundle/Controller/Frontend/AjaxFormController.php

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,29 @@
1616
use B2bCode\Bundle\CmsFormBundle\Entity\CmsForm;
1717
use B2bCode\Bundle\CmsFormBundle\Entity\CmsFormResponse;
1818
use B2bCode\Bundle\CmsFormBundle\Notification\NotificationInterface;
19-
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
20-
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
19+
use Doctrine\Persistence\ManagerRegistry;
20+
use Symfony\Component\Routing\Annotation\Route;
21+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
2122
use Symfony\Component\HttpFoundation\JsonResponse;
2223
use Symfony\Component\HttpFoundation\Request;
2324
use Oro\Bundle\SecurityBundle\Annotation\AclAncestor;
24-
use Symfony\Component\HttpFoundation\Response;
2525

26-
class AjaxFormController extends Controller
26+
class AjaxFormController extends AbstractController
2727
{
2828
/**
2929
* @Route("/respond/{uuid}", name="b2b_code_cms_frontend_ajax_respond")
3030
* @AclAncestor("b2b_code_cms_frontend_form_respond")
31-
* @param Request $request
32-
* @param CmsForm $cmsForm
33-
* @return array|Response
3431
*/
35-
public function respondAction(Request $request, CmsForm $cmsForm)
36-
{
32+
public function respondAction(
33+
Request $request,
34+
CmsForm $cmsForm,
35+
FormBuilderInterface $formBuilder,
36+
ManagerRegistry $registry,
37+
NotificationInterface $notification
38+
) {
3739
// build CmsFormType and map it to CmsFieldResponse
3840
// @todo daniel extract
39-
$form = $this->get(FormBuilderInterface::class)->getForm($cmsForm->getAlias());
41+
$form = $formBuilder->getForm($cmsForm->getAlias());
4042

4143
$form->handleRequest($request);
4244

@@ -60,12 +62,12 @@ public function respondAction(Request $request, CmsForm $cmsForm)
6062
}
6163
}
6264

63-
$manager = $this->get('doctrine')->getManagerForClass(CmsFormResponse::class);
65+
$manager = $registry->getManagerForClass(CmsFormResponse::class);
6466
$manager->persist($formResponse);
6567
$manager->flush();
6668

6769
// @todo extract
68-
$this->get(NotificationInterface::class)->process($formResponse);
70+
$notification->process($formResponse);
6971

7072
return new JsonResponse(['success' => true, 'message' => '@todo']);
7173
}

src/B2bCode/Bundle/CmsFormBundle/Controller/Frontend/FormController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313

1414
use B2bCode\Bundle\CmsFormBundle\Entity\CmsForm;
1515
use Oro\Bundle\LayoutBundle\Annotation\Layout;
16-
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
17-
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
16+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
17+
use Symfony\Component\Routing\Annotation\Route;
1818

19-
class FormController extends Controller
19+
class FormController extends AbstractController
2020
{
2121
/**
2222
* @Route("/preview/{uuid}", name="b2b_code_cms_form_frontend_form_preview")

src/B2bCode/Bundle/CmsFormBundle/DependencyInjection/B2bCodeCmsFormExtension.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public function load(array $configs, ContainerBuilder $container)
2727
{
2828
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
2929
$loader->load('services.yml');
30+
$loader->load('controllers.yml');
31+
$loader->load('controllers_api.yml');
3032
$loader->load('import_export.yml');
3133
}
3234

src/B2bCode/Bundle/CmsFormBundle/Entity/CmsForm.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ public function __construct()
140140
{
141141
$this->fields = new ArrayCollection();
142142
$this->notifications = new ArrayCollection();
143+
144+
parent::__construct();
143145
}
144146

145147
/**

src/B2bCode/Bundle/CmsFormBundle/Entity/CmsFormResponse.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ class CmsFormResponse extends ExtendCmsFormResponse implements DatesAwareInterfa
112112
public function __construct()
113113
{
114114
$this->fieldResponses = new ArrayCollection();
115+
116+
parent::__construct();
115117
}
116118

117119
/**

0 commit comments

Comments
 (0)