PluginProbe
Packeta / 2.1
Packeta v2.1
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
← All changes | src/Packetery/Module/Order/Modal.php +34 -85 1.5.22.1 View file →
@@ -1,60 +1,46 @@
1 1 <?php
2 -/**
3 - * Class Modal
4 - *
5 - * @package Packetery\Module\Order
6 - */
7 2
8 3 declare( strict_types=1 );
9 4
10 5 namespace Packetery\Module\Order;
11 6
12 -use Packetery\Core\Helper;
13 -use Packetery\Module\FormFactory;
14 -use Packetery\Module\FormValidators;
15 -use PacketeryLatte\Engine;
16 -use PacketeryNette\Forms\Form;
7 +use Packetery\Latte\Engine;
8 +use Packetery\Module\Api\Internal\OrderRouter;
9 +use Packetery\Module\Framework\WpAdapter;
17 10
18 -/**
19 - * Class Modal
20 - *
21 - * @package Packetery\Module\Order
22 - */
23 11 class Modal {
24 12
25 13 /**
26 - * Latte engine.
27 - *
28 14 * @var Engine
29 15 */
30 16 private $latteEngine;
31 17
32 18 /**
33 - * Form factory.
34 - *
35 - * @var FormFactory
19 + * @var Form
36 20 */
37 - private $formFactory;
21 + private $orderForm;
38 22
39 23 /**
40 - * Order controller.
41 - *
42 - * @var ControllerRouter
24 + * @var OrderRouter
43 25 */
44 - private $orderControllerRouter;
26 + private $apiRouter;
45 27
46 28 /**
47 - * Modal constructor.
48 - *
49 - * @param Engine $latteEngine Latte engine.
50 - * @param FormFactory $formFactory Form factory.
51 - * @param ControllerRouter $orderController Order controller.
29 + * @var WpAdapter
52 30 */
53 - public function __construct( Engine $latteEngine, FormFactory $formFactory, ControllerRouter $orderController ) {
54 - $this->latteEngine = $latteEngine;
55 - $this->formFactory = $formFactory;
56 - $this->orderControllerRouter = $orderController;
31 + private $wpAdapter;
32 +
33 + public function __construct(
34 + Engine $latteEngine,
35 + Form $orderForm,
36 + OrderRouter $apiRouter,
37 + WpAdapter $wpAdapter
38 + ) {
39 + $this->latteEngine = $latteEngine;
40 + $this->orderForm = $orderForm;
41 + $this->apiRouter = $apiRouter;
42 + $this->wpAdapter = $wpAdapter;
57 43 }
58 44
59 45 /**
60 46 * Registers order modal.
@@ -67,67 +53,30 @@
67 53 * Renders template.
68 54 */
69 55 public function renderTemplate(): void {
70 56 $nonce = wp_create_nonce( 'wp_rest' );
71 - $orderSaveUrl = $this->orderControllerRouter->getRouteUrl( Controller::PATH_SAVE_MODAL );
57 + $orderSaveUrl = $this->apiRouter->getSaveModalUrl();
58 +
59 + $form = $this->orderForm->create();
60 + $form->addSubmit( 'submit', $this->wpAdapter->__( 'Save', 'packeta' ) );
61 + $form->addButton( 'cancel', $this->wpAdapter->__( 'Cancel', 'packeta' ) );
62 +
72 63 $this->latteEngine->render(
73 64 PACKETERY_PLUGIN_DIR . '/template/order/modal-template.latte',
74 65 [
75 66 'nonce' => $nonce,
76 67 'orderSaveUrl' => $orderSaveUrl,
77 - 'form' => $this->createForm(),
68 + 'form' => $form,
78 69 'translations' => [
79 70 // translators: %s: Order number.
80 - 'order#%s' => __( 'Order #%s', 'packeta' ),
81 - 'closeModalPanel' => __( 'Close modal panel', 'packeta' ),
82 - 'weightIsManual' => __( 'Weight is manually set. To calculate weight remove the field content and save.', 'packeta' ),
71 + 'order#%s' => $this->wpAdapter->__( 'Order #%s', 'packeta' ),
72 +
73 + 'closeModalPanel' => $this->wpAdapter->__( 'Close modal panel', 'packeta' ),
74 + 'weightIsManual' => $this->wpAdapter->__( 'Weight is manually set. To calculate weight remove the field content and save.', 'packeta' ),
75 + 'codIsManual' => $this->wpAdapter->__( 'COD value is manually set. To calculate the value remove field content and save.', 'packeta' ),
76 + 'valueIsManual' => $this->wpAdapter->__( 'Order value is manually set. To calculate the value remove field content and save.', 'packeta' ),
77 + 'adultContent' => $this->wpAdapter->__( 'Adult content', 'packeta' ),
83 78 ],
84 79 ]
85 80 );
86 - }
87 -
88 - /**
89 - * Creates order modal form.
90 - *
91 - * @return Form
92 - */
93 - public function createForm(): Form {
94 - $form = $this->formFactory->create();
95 - $form->addText( 'packetery_weight', __( 'Weight', 'packeta' ) . ' (kg)' )
96 - ->setRequired( false )
97 - ->addRule( Form::FLOAT );
98 - $form->addHidden( 'packetery_original_weight' )
99 - ->setRequired( false )
100 - ->addRule( Form::FLOAT );
101 - $form->addText( 'packetery_width', __( 'Width (mm)', 'packeta' ) )
102 - ->setRequired( false )
103 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
104 - $form->addText( 'packetery_length', __( 'Length (mm)', 'packeta' ) )
105 - ->setRequired( false )
106 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
107 - $form->addText( 'packetery_height', __( 'Height (mm)', 'packeta' ) )
108 - ->setRequired( false )
109 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
110 - $form->addText( 'packetery_deliver_on', __( 'Planned dispatch', 'packeta' ) )
111 - ->setHtmlAttribute( 'class', 'date-picker' )
112 - ->setHtmlAttribute( 'autocomplete', 'off' )
113 - ->setRequired( false )
114 - // translators: %s: Represents minimal date for delayed delivery.
115 - ->addRule( [ FormValidators::class, 'dateIsLater' ], __( 'Date must be later than %s', 'packeta' ), wp_date( Helper::DATEPICKER_FORMAT ) );
116 -
117 - $form->addSubmit( 'submit', __( 'Save', 'packeta' ) );
118 - $form->addButton( 'cancel', __( 'Cancel', 'packeta' ) );
119 -
120 - $form->setDefaults(
121 - [
122 - 'packetery_weight' => '{{ data.order.packetery_weight }}',
123 - 'packetery_original_weight' => '{{ data.order.packetery_original_weight }}',
124 - 'packetery_length' => '{{ data.order.packetery_length }}',
125 - 'packetery_width' => '{{ data.order.packetery_width }}',
126 - 'packetery_height' => '{{ data.order.packetery_height }}',
127 - 'packetery_deliver_on' => '{{ data.order.packetery_deliver_on }}',
128 - ]
129 - );
130 -
131 - return $form;
132 81 }
133 82 }