PluginProbe
Packeta / 2.3.2
Packeta v2.3.2
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/Log/Page.php +67 -25 1.42.3.2 View file →
@@ -6,15 +6,17 @@
6 6 */
7 7
8 8 declare( strict_types=1 );
9 9
10 -
11 10 namespace Packetery\Module\Log;
12 11
13 12 use Packetery\Core\Log\ILogger;
14 13 use Packetery\Core\Log\Record;
15 -use PacketeryLatte\Engine;
16 -use PacketeryNette\Http\Request;
14 +use Packetery\Latte\Engine;
15 +use Packetery\Module\Dashboard\DashboardPage;
16 +use Packetery\Module\ModuleHelper;
17 +use Packetery\Module\Views\UrlBuilder;
18 +use Packetery\Nette\Http\Request;
17 19
18 20 /**
19 21 * Class Page
20 22 *
@@ -24,8 +26,9 @@
24 26
25 27 public const SLUG = 'packeta-logs';
26 28
27 29 public const PARAM_ORDER_ID = 'order_id';
30 + public const PARAM_ACTION = 'action';
28 31
29 32 private const MAX_ROWS = 500;
30 33
31 34 /**
@@ -49,18 +52,29 @@
49 52 */
50 53 private $request;
51 54
52 55 /**
53 - * Page constructor.
54 - *
55 - * @param Engine $latteEngine Engine.
56 - * @param ILogger $manager Manager.
57 - * @param Request $request Request.
56 + * @var ModuleHelper
58 57 */
59 - public function __construct( Engine $latteEngine, ILogger $manager, Request $request ) {
60 - $this->latteEngine = $latteEngine;
61 - $this->logger = $manager;
62 - $this->request = $request;
58 + private $moduleHelper;
59 +
60 + /**
61 + * @var UrlBuilder
62 + */
63 + private $urlBuilder;
64 +
65 + public function __construct(
66 + Engine $latteEngine,
67 + ILogger $manager,
68 + Request $request,
69 + ModuleHelper $moduleHelper,
70 + UrlBuilder $urlBuilder
71 + ) {
72 + $this->latteEngine = $latteEngine;
73 + $this->logger = $manager;
74 + $this->request = $request;
75 + $this->moduleHelper = $moduleHelper;
76 + $this->urlBuilder = $urlBuilder;
63 77 }
64 78
65 79 /**
66 80 * Registers Page.
@@ -66,12 +80,12 @@
66 80 * Registers Page.
67 81 */
68 82 public function register(): void {
69 83 add_submenu_page(
70 - \Packetery\Module\Options\Page::SLUG,
84 + DashboardPage::SLUG,
71 85 __( 'Log', 'packeta' ),
72 86 __( 'Log', 'packeta' ),
73 - 'manage_options',
87 + 'manage_woocommerce',
74 88 self::SLUG,
75 89 [ $this, 'render' ]
76 90 );
77 91 }
@@ -81,10 +95,12 @@
81 95 */
82 96 public function render(): void {
83 97 $translatedActions = [
84 98 Record::ACTION_PACKET_SENDING => __( 'Packet sending', 'packeta' ),
85 - Record::ACTION_CARRIER_LABEL_PRINT => __( 'Carrier label print', 'packeta' ),
86 - Record::ACTION_LABEL_PRINT => __( 'Label print', 'packeta' ),
99 + Record::ACTION_PACKET_CLAIM_SENDING => __( 'Packet claim sending', 'packeta' ),
100 + Record::ACTION_CARRIER_LABEL_PRINT => __( 'Carrier label printing', 'packeta' ),
101 + Record::ACTION_LABEL_PRINT => __( 'Label printing', 'packeta' ),
102 + Record::ACTION_CLAIM_LABEL_PRINT => __( 'Claim assistant label printing', 'packeta' ),
87 103 Record::ACTION_CARRIER_LIST_UPDATE => __( 'Carrier list update', 'packeta' ),
88 104 Record::ACTION_CARRIER_NUMBER_RETRIEVING => __( 'Getting external carrier tracking number', 'packeta' ),
89 105 Record::ACTION_CARRIER_TABLE_NOT_CREATED => __( 'Database carrier table was not created.', 'packeta' ),
90 106 Record::ACTION_ORDER_TABLE_NOT_CREATED => __( 'Database order table was not created.', 'packeta' ),
@@ -89,9 +105,12 @@
89 105 Record::ACTION_CARRIER_TABLE_NOT_CREATED => __( 'Database carrier table was not created.', 'packeta' ),
90 106 Record::ACTION_ORDER_TABLE_NOT_CREATED => __( 'Database order table was not created.', 'packeta' ),
91 107 Record::ACTION_SENDER_VALIDATION => __( 'Sender validation', 'packeta' ),
92 108 Record::ACTION_PACKET_STATUS_SYNC => __( 'Packet status synchronization', 'packeta' ),
109 + Record::ACTION_PACKET_INFO => __( 'Packet info', 'packeta' ),
93 110 Record::ACTION_PACKET_CANCEL => __( 'Packet cancel', 'packeta' ),
111 + Record::ACTION_PICKUP_POINT_VALIDATE => __( 'Pickup point validation', 'packeta' ),
112 + Record::ACTION_ORDER_STATUS_CHANGE => __( 'Order status change', 'packeta' ),
94 113 ];
95 114
96 115 $translatedStatuses = [
97 116 Record::STATUS_ERROR => __( 'Error', 'packeta' ),
@@ -98,10 +117,11 @@
98 117 Record::STATUS_SUCCESS => __( 'Success', 'packeta' ),
99 118 ];
100 119
101 120 $orderId = $this->getOrderId();
102 - $rows = $this->logger->getRecords( $orderId, [ 'date' => 'DESC' ], self::MAX_ROWS );
103 - $totalCount = $this->countRows( $orderId );
121 + $action = $this->getAction();
122 + $rows = $this->logger->getRecords( $orderId, $action, [ 'date' => 'DESC' ], self::MAX_ROWS );
123 + $totalCount = $this->countRows( $orderId, $action );
104 124
105 125 $this->latteEngine->render(
106 126 PACKETERY_PLUGIN_DIR . '/template/log/page.latte',
107 127 [
@@ -108,11 +128,14 @@
108 128 'rows' => $rows,
109 129 'maxRowsExceeded' => $totalCount > self::MAX_ROWS,
110 130 'translatedActions' => $translatedActions,
111 131 'translatedStatuses' => $translatedStatuses,
132 + 'isCzechLocale' => $this->moduleHelper->isCzechLocale(),
133 + 'logoZasilkovna' => $this->urlBuilder->buildAssetUrl( 'public/images/logo-zasilkovna.svg' ),
134 + 'logoPacketa' => $this->urlBuilder->buildAssetUrl( 'public/images/logo-packeta.svg' ),
112 135 'translations' => [
113 136 'packeta' => __( 'Packeta', 'packeta' ),
114 - 'logsPageTitle' => __( 'Log', 'packeta' ),
137 + 'title' => __( 'Log', 'packeta' ),
115 138 'status' => __( 'Status', 'packeta' ),
116 139 'dateAndTime' => __( 'Date and time', 'packeta' ),
117 140 'action' => __( 'Action', 'packeta' ),
118 141 'note' => __( 'Note', 'packeta' ),
@@ -138,8 +161,22 @@
138 161 return null;
139 162 }
140 163
141 164 /**
165 + * Returns action.
166 + *
167 + * @return string|null
168 + */
169 + private function getAction(): ?string {
170 + $action = $this->request->getQuery( self::PARAM_ACTION );
171 + if ( $action !== null ) {
172 + return (string) $action;
173 + }
174 +
175 + return null;
176 + }
177 +
178 + /**
142 179 * Tells if log page displays at least one row.
143 180 *
144 181 * @param int|null $orderId Order ID.
145 182 *
@@ -151,30 +188,35 @@
151 188
152 189 /**
153 190 * Counts rows.
154 191 *
155 - * @param int|null $orderId Order ID.
192 + * @param int|null $orderId Order ID.
193 + * @param string|null $action Action.
156 194 *
157 195 * @return int
158 196 */
159 - private function countRows( ?int $orderId ): int {
160 - return $this->logger->countRecords( $orderId );
197 + private function countRows( ?int $orderId = null, ?string $action = null ): int {
198 + return $this->logger->countRecords( $orderId, $action );
161 199 }
162 200
163 201 /**
164 202 * Creates link to log page.
165 203 *
166 - * @param int|null $orderId Order ID.
204 + * @param int|null $orderId Order ID.
205 + * @param string|null $action Action.
167 206 *
168 207 * @return string
169 208 */
170 - public function createLogListUrl( ?int $orderId = null ): string {
209 + public function createLogListUrl( ?int $orderId = null, ?string $action = null ): string {
171 210 $params = [
172 211 'page' => self::SLUG,
173 212 ];
174 213
175 - if ( null !== $orderId ) {
214 + if ( $orderId !== null ) {
176 215 $params[ self::PARAM_ORDER_ID ] = $orderId;
216 + }
217 + if ( $action !== null ) {
218 + $params[ self::PARAM_ACTION ] = $action;
177 219 }
178 220
179 221 return add_query_arg(
180 222 $params,