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 +33 -101 1.4.12.1 View file →
@@ -1,70 +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 -
11 5 namespace Packetery\Module\Order;
12 6
13 -use Packetery\Core;
14 -use Packetery\Core\Entity\Order;
15 -use Packetery\Module\FormFactory;
16 -use PacketeryLatte\Engine;
17 -use PacketeryNette\Forms\Form;
7 +use Packetery\Latte\Engine;
8 +use Packetery\Module\Api\Internal\OrderRouter;
9 +use Packetery\Module\Framework\WpAdapter;
18 10
19 -/**
20 - * Class Modal
21 - *
22 - * @package Packetery\Module\Order
23 - */
24 11 class Modal {
25 12
26 13 /**
27 - * Latte engine.
28 - *
29 14 * @var Engine
30 15 */
31 16 private $latteEngine;
32 17
33 18 /**
34 - * Form factory.
35 - *
36 - * @var FormFactory
19 + * @var Form
37 20 */
38 - private $formFactory;
21 + private $orderForm;
39 22
40 23 /**
41 - * Order controller.
42 - *
43 - * @var ControllerRouter
24 + * @var OrderRouter
44 25 */
45 - private $orderControllerRouter;
26 + private $apiRouter;
46 27
47 28 /**
48 - * Order validator.
49 - *
50 - * @var Core\Validator\Order
29 + * @var WpAdapter
51 30 */
52 - private $orderValidator;
31 + private $wpAdapter;
53 32
54 - /**
55 - * Modal constructor.
56 - *
57 - * @param Engine $latteEngine Latte engine.
58 - * @param FormFactory $formFactory Form factory.
59 - * @param ControllerRouter $orderController Order controller.
60 - * @param Core\Validator\Order $orderValidator Order validator.
61 - */
62 - public function __construct( Engine $latteEngine, FormFactory $formFactory, ControllerRouter $orderController, Core\Validator\Order $orderValidator ) {
63 - $this->latteEngine = $latteEngine;
64 - $this->formFactory = $formFactory;
65 - $this->orderControllerRouter = $orderController;
66 - $this->orderValidator = $orderValidator;
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;
67 43 }
68 44
69 45 /**
70 46 * Registers order modal.
@@ -77,74 +53,30 @@
77 53 * Renders template.
78 54 */
79 55 public function renderTemplate(): void {
80 56 $nonce = wp_create_nonce( 'wp_rest' );
81 - $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 +
82 63 $this->latteEngine->render(
83 64 PACKETERY_PLUGIN_DIR . '/template/order/modal-template.latte',
84 65 [
85 66 'nonce' => $nonce,
86 67 'orderSaveUrl' => $orderSaveUrl,
87 - 'form' => $this->createForm(),
68 + 'form' => $form,
88 69 'translations' => [
89 70 // translators: %s: Order number.
90 - 'order#%s' => __( 'Order #%s', 'packeta' ),
91 - 'closeModalPanel' => __( 'Close modal panel', 'packeta' ),
92 - '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' ),
93 78 ],
94 79 ]
95 80 );
96 - }
97 -
98 - /**
99 - * Creates order modal form.
100 - *
101 - * @return Form
102 - */
103 - public function createForm(): Form {
104 - $form = $this->formFactory->create();
105 - $form->addText( 'packetery_weight', __( 'Weight', 'packeta' ) . ' (kg)' )
106 - ->setRequired( false )
107 - ->addRule( Form::FLOAT );
108 - $form->addHidden( 'packetery_original_weight' )
109 - ->setRequired( false )
110 - ->addRule( Form::FLOAT );
111 - $form->addText( 'packetery_width', __( 'Width (mm)', 'packeta' ) )
112 - ->setRequired( false )
113 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
114 - $form->addText( 'packetery_length', __( 'Length (mm)', 'packeta' ) )
115 - ->setRequired( false )
116 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
117 - $form->addText( 'packetery_height', __( 'Height (mm)', 'packeta' ) )
118 - ->setRequired( false )
119 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
120 -
121 - $form->addSubmit( 'submit', __( 'Save', 'packeta' ) );
122 - $form->addButton( 'cancel', __( 'Cancel', 'packeta' ) );
123 -
124 - $form->setDefaults(
125 - [
126 - 'packetery_weight' => '{{ data.order.packetery_weight }}',
127 - 'packetery_original_weight' => '{{ data.order.packetery_original_weight }}',
128 - 'packetery_length' => '{{ data.order.packetery_length }}',
129 - 'packetery_width' => '{{ data.order.packetery_width }}',
130 - 'packetery_height' => '{{ data.order.packetery_height }}',
131 - ]
132 - );
133 -
134 - return $form;
135 - }
136 -
137 - /**
138 - * Returns true if size is invalid or weight not filled.
139 - *
140 - * @param Order $order Order entity.
141 - *
142 - * @return bool
143 - */
144 - public function showWarningIcon( Order $order ): bool {
145 - $isSizeValid = $this->orderValidator->validateSize( $order );
146 - $hasWeight = ( null !== $order->getFinalWeight() && $order->getFinalWeight() > 0 );
147 -
148 - return ! ( $isSizeValid && $hasWeight );
149 81 }
150 82 }