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 +28 -81 1.6.12.1 View file →
@@ -1,61 +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\Api;
14 -use Packetery\Module\FormFactory;
15 -use Packetery\Module\FormValidators;
16 7 use Packetery\Latte\Engine;
17 -use Packetery\Nette\Forms\Form;
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 router.
42 - *
43 - * @var Api\Internal\OrderRouter;
24 + * @var OrderRouter
44 25 */
45 26 private $apiRouter;
46 27
47 28 /**
48 - * Modal constructor.
49 - *
50 - * @param Engine $latteEngine Latte engine.
51 - * @param FormFactory $formFactory Form factory.
52 - * @param Api\Internal\OrderRouter $apiRouter API router.
29 + * @var WpAdapter
53 30 */
54 - public function __construct( Engine $latteEngine, FormFactory $formFactory, Api\Internal\OrderRouter $apiRouter ) {
31 + private $wpAdapter;
32 +
33 + public function __construct(
34 + Engine $latteEngine,
35 + Form $orderForm,
36 + OrderRouter $apiRouter,
37 + WpAdapter $wpAdapter
38 + ) {
55 39 $this->latteEngine = $latteEngine;
56 - $this->formFactory = $formFactory;
40 + $this->orderForm = $orderForm;
57 41 $this->apiRouter = $apiRouter;
42 + $this->wpAdapter = $wpAdapter;
58 43 }
59 44
60 45 /**
61 46 * Registers order modal.
@@ -69,67 +54,29 @@
69 54 */
70 55 public function renderTemplate(): void {
71 56 $nonce = wp_create_nonce( 'wp_rest' );
72 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 +
73 63 $this->latteEngine->render(
74 64 PACKETERY_PLUGIN_DIR . '/template/order/modal-template.latte',
75 65 [
76 66 'nonce' => $nonce,
77 67 'orderSaveUrl' => $orderSaveUrl,
78 - 'form' => $this->createForm(),
68 + 'form' => $form,
79 69 'translations' => [
80 70 // translators: %s: Order number.
81 - 'order#%s' => __( 'Order #%s', 'packeta' ),
71 + 'order#%s' => $this->wpAdapter->__( 'Order #%s', 'packeta' ),
82 72
83 - 'closeModalPanel' => __( 'Close modal panel', 'packeta' ),
84 - 'weightIsManual' => __( 'Weight is manually set. To calculate weight remove the field content and save.', 'packeta' ),
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' ),
85 78 ],
86 79 ]
87 80 );
88 - }
89 -
90 - /**
91 - * Creates order modal form.
92 - *
93 - * @return Form
94 - */
95 - public function createForm(): Form {
96 - $form = $this->formFactory->create();
97 - $form->addText( 'packetery_weight', __( 'Weight', 'packeta' ) . ' (kg)' )
98 - ->setRequired( false )
99 - ->addRule( Form::FLOAT );
100 - $form->addHidden( 'packetery_original_weight' )
101 - ->setRequired( false )
102 - ->addRule( Form::FLOAT );
103 - $form->addText( 'packetery_width', __( 'Width (mm)', 'packeta' ) )
104 - ->setRequired( false )
105 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
106 - $form->addText( 'packetery_length', __( 'Length (mm)', 'packeta' ) )
107 - ->setRequired( false )
108 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
109 - $form->addText( 'packetery_height', __( 'Height (mm)', 'packeta' ) )
110 - ->setRequired( false )
111 - ->addRule( Form::FLOAT, __( 'Provide numeric value!', 'packeta' ) );
112 - $form->addText( 'packetery_deliver_on', __( 'Planned dispatch', 'packeta' ) )
113 - ->setHtmlAttribute( 'class', 'date-picker' )
114 - ->setHtmlAttribute( 'autocomplete', 'off' )
115 - ->setRequired( false )
116 - // translators: %s: Represents minimal date for delayed delivery.
117 - ->addRule( [ FormValidators::class, 'dateIsLater' ], __( 'Date must be later than %s', 'packeta' ), wp_date( Helper::DATEPICKER_FORMAT ) );
118 -
119 - $form->addSubmit( 'submit', __( 'Save', 'packeta' ) );
120 - $form->addButton( 'cancel', __( 'Cancel', 'packeta' ) );
121 -
122 - $form->setDefaults(
123 - [
124 - 'packetery_weight' => '{{ data.order.packetery_weight }}',
125 - 'packetery_original_weight' => '{{ data.order.packetery_original_weight }}',
126 - 'packetery_length' => '{{ data.order.packetery_length }}',
127 - 'packetery_width' => '{{ data.order.packetery_width }}',
128 - 'packetery_height' => '{{ data.order.packetery_height }}',
129 - 'packetery_deliver_on' => '{{ data.order.packetery_deliver_on }}',
130 - ]
131 - );
132 -
133 - return $form;
134 81 }
135 82 }