Skip to content

Commit 3c22eef

Browse files
committed
MC-35514: Can't create shipping label for existing order all JS components in sliding modal doesn't work.
1 parent 6a33719 commit 3c22eef

File tree

4 files changed

+108
-99
lines changed

4 files changed

+108
-99
lines changed

app/code/Magento/Shipping/Block/Adminhtml/Order/Packaging.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
namespace Magento\Shipping\Block\Adminhtml\Order;
78

9+
use Magento\Framework\App\ObjectManager;
10+
use Magento\Shipping\Helper\Carrier;
11+
812
/**
913
* Adminhtml shipment packaging
1014
*
@@ -44,19 +48,22 @@ class Packaging extends \Magento\Backend\Block\Template
4448
* @param \Magento\Framework\Registry $coreRegistry
4549
* @param \Magento\Shipping\Model\CarrierFactory $carrierFactory
4650
* @param array $data
51+
* @param Carrier|null $carrierHelper
4752
*/
4853
public function __construct(
4954
\Magento\Backend\Block\Template\Context $context,
5055
\Magento\Framework\Json\EncoderInterface $jsonEncoder,
5156
\Magento\Shipping\Model\Carrier\Source\GenericInterface $sourceSizeModel,
5257
\Magento\Framework\Registry $coreRegistry,
5358
\Magento\Shipping\Model\CarrierFactory $carrierFactory,
54-
array $data = []
59+
array $data = [],
60+
?Carrier $carrierHelper = null
5561
) {
5662
$this->_jsonEncoder = $jsonEncoder;
5763
$this->_coreRegistry = $coreRegistry;
5864
$this->_sourceSizeModel = $sourceSizeModel;
5965
$this->_carrierFactory = $carrierFactory;
66+
$data['carrierHelper'] = $carrierHelper ?? ObjectManager::getInstance()->get(Carrier::class);
6067
parent::__construct($context, $data);
6168
}
6269

app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@
7777
name="shipment[create_shipping_label]"
7878
value="1"
7979
type="checkbox"/>
80+
<label class="admin__field-label"
81+
for="create_shipping_label">
82+
<span><?= $block->escapeHtml(__('Create Shipping Label')) ?></span></label>
8083
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
8184
'onclick',
8285
'toggleCreateLabelCheckbox();',
8386
'input#create_shipping_label'
8487
) ?>
85-
<label class="admin__field-label"
86-
for="create_shipping_label">
87-
<span><?= $block->escapeHtml(__('Create Shipping Label')) ?></span></label>
8888
</div>
8989
<?php endif ?>
9090

app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/grid.phtml

Lines changed: 56 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,45 @@
44
* See COPYING.txt for license details.
55
*/
66
//phpcs:disable Squiz.PHP.NonExecutableCode.Unreachable
7-
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
7+
/**
8+
* @var \Magento\Shipping\Block\Adminhtml\Order\Packaging $block
9+
* @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
10+
*/
811
?>
912
<div class="grid">
1013
<?php $randomId = rand(); ?>
1114
<div class="admin__table-wrapper">
1215
<table class="data-grid">
1316
<thead>
14-
<tr>
15-
<th class="data-grid-checkbox-cell">
16-
<label class="data-grid-checkbox-cell-inner">
17-
<input type="checkbox"
18-
id="select-items-<?= /* @noEscape */ $randomId ?>"
19-
class="checkbox admin__control-checkbox"
20-
title="<?= $block->escapeHtmlAttr(__('Select All')) ?>">
21-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
22-
'onchange',
23-
'packaging.checkAllItems(this);',
24-
'input#select-items-' . /* @noEscape */ $randomId
25-
) ?>
26-
<label for="select-items-<?= /* @noEscape */ $randomId ?>"></label>
27-
</label>
28-
</th>
29-
<th class="data-grid-th"><?= $block->escapeHtml(__('Product Name')) ?></th>
30-
<th class="data-grid-th"><?= $block->escapeHtml(__('Weight')) ?></th>
31-
<th class="data-grid-th custom-value">
32-
<?= $block->escapeHtml(__('Customs Value')) ?>
33-
</th>
34-
<?php if (!$block->displayCustomsValue()): ?>
35-
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag('display: none;', 'th.custom-value') ?>
36-
<?php endif ?>
37-
<th class="data-grid-th"><?= $block->escapeHtml(__('Qty Ordered')) ?></th>
38-
<th class="data-grid-th"><?= $block->escapeHtml(__('Qty')) ?></th>
39-
</tr>
17+
<tr>
18+
<th class="data-grid-checkbox-cell">
19+
<label class="data-grid-checkbox-cell-inner">
20+
<input type="checkbox"
21+
id="select-items-<?= /* @noEscape */ $randomId ?>"
22+
class="checkbox admin__control-checkbox"
23+
title="<?= $block->escapeHtmlAttr(__('Select All')) ?>">
24+
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
25+
'onchange',
26+
'packaging.checkAllItems(this);',
27+
'input#select-items-' . /* @noEscape */ $randomId
28+
) ?>
29+
<label for="select-items-<?= /* @noEscape */ $randomId ?>"></label>
30+
</label>
31+
</th>
32+
<th class="data-grid-th"><?= $block->escapeHtml(__('Product Name')) ?></th>
33+
<th class="data-grid-th"><?= $block->escapeHtml(__('Weight')) ?></th>
34+
<th class="data-grid-th custom-value">
35+
<?= $block->escapeHtml(__('Customs Value')) ?>
36+
</th>
37+
<?php if (!$block->displayCustomsValue()): ?>
38+
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag('display: none;', 'th.custom-value') ?>
39+
<?php endif ?>
40+
<th class="data-grid-th"><?= $block->escapeHtml(__('Qty Ordered')) ?></th>
41+
<th class="data-grid-th"><?= $block->escapeHtml(__('Qty')) ?></th>
42+
</tr>
4043
</thead>
4144
<tbody>
42-
<?php $i=0; ?>
45+
<?php $i = 0; ?>
4346
<?php foreach ($block->getCollection() as $item): ?>
4447
<?php
4548
$_order = $block->getShipment()->getOrder();
@@ -54,12 +57,12 @@
5457
<?php endif; ?>
5558
<tr class="data-grid-controls-row data-row <?= ($i++ % 2 != 0) ? '_odd-row' : '' ?>">
5659
<td class="data-grid-checkbox-cell">
57-
<?php $id = $item->getId() ? $item->getId() : $item->getOrderItemId(); ?>
60+
<?php $id = $item->getId() ?? $item->getOrderItemId(); ?>
5861
<label class="data-grid-checkbox-cell-inner">
5962
<input type="checkbox"
6063
name=""
6164
id="select-item-<?= /* @noEscape */ $randomId . '-' . $id ?>"
62-
value="<?= (int) $id ?>"
65+
value="<?= (int)$id ?>"
6366
class="checkbox admin__control-checkbox">
6467
<label for="select-item-<?= /* @noEscape */ $randomId . '-' . $id ?>"></label>
6568
</label>
@@ -78,47 +81,55 @@
7881
}
7982

8083
?>
81-
<td class="custom-value">
84+
<td id="custom-value-<?= /* @noEscape */ $randomId . '-' . $id ?>" class="custom-value">
8285
<input type="text"
8386
name="customs_value"
8487
class="input-text admin__control-text <?= /* @noEscape */ $customsValueValidation ?>"
8588
value="<?= $block->escapeHtmlAttr($block->formatPrice($item->getPrice())) ?>"
8689
size="10">
8790
</td>
88-
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag('display: none;', 'td.custom-value') ?>
89-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
90-
'onblur',
91-
'packaging.recalcContainerWeightAndCustomsValue(this);',
92-
'td.custom-value'
93-
) ?>
91+
<?php if (!$block->displayCustomsValue()): ?>
92+
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag(
93+
'display:none',
94+
'td#custom-value-' . $randomId . '-' . $id
95+
) ?>
96+
<?php endif ?>
9497
<td>
95-
<?= /* @noEscape */ $item->getOrderItem()->getQtyOrdered()*1 ?>
98+
<?= /* @noEscape */ $item->getOrderItem()->getQtyOrdered() * 1 ?>
9699
</td>
97100
<td>
98101
<input type="hidden" name="price" value="<?= $block->escapeHtml($item->getPrice()) ?>">
99102
<input type="text"
100103
name="qty"
101-
value="<?= /* @noEscape */ $item->getQty()*1 ?>"
104+
value="<?= /* @noEscape */ $item->getQty() * 1 ?>"
102105
class="input-text admin__control-text qty
103106
<?php if ($item->getOrderItem()->getIsQtyDecimal()): ?>
104107
qty-decimal
105108
<?php endif ?>">&nbsp;
106109
<button type="button"
107-
id="packaging-delete-item-<?= /* @noEscape */ $item->getId() ?>"
110+
id="packaging-delete-item-<?= /* @noEscape */ $randomId . '-' . $id ?>"
108111
class="action-delete"
109112
data-action="package-delete-item">
110113
<span><?= $block->escapeHtml(__('Delete')) ?></span>
111114
</button>
112-
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag('display:none', 'button.action-delete') ?>
113-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
114-
'onclick',
115-
'packaging.deleteItem(this);',
116-
'button#packaging-delete-item-' . $item->getId()
115+
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag(
116+
'display:none',
117+
'button#packaging-delete-item-' . $randomId . '-' . $id
117118
) ?>
118119
</td>
119120
</tr>
120121
<?php endforeach; ?>
121122
</tbody>
122123
</table>
124+
<?php $scriptString = <<<script
125+
require(['jquery'], function ($) {
126+
$("table.data-grid").on('blur', 'td.custom-value input',
127+
function(){packaging.recalcContainerWeightAndCustomsValue(this)});
128+
$("table.data-grid").on('click', 'button[data-action="package-delete-item"]',
129+
function(){packaging.deleteItem(this)});
130+
});
131+
script;
132+
?>
133+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
123134
</div>
124135
</div>

app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup_content.phtml

Lines changed: 41 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66

77
/**
8-
* @var $block \Magento\Shipping\Block\Adminhtml\Order\Packaging
8+
* @var \Magento\Shipping\Block\Adminhtml\Order\Packaging $block
99
* @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
1010
*/
1111
?>
@@ -22,21 +22,11 @@
2222
data-action="package-save-items">
2323
<span><?= $block->escapeHtml(__('Add Selected Product(s) to Package')) ?></span>
2424
</button>
25-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
26-
'onclick',
27-
'packaging.packItems(this);',
28-
"button[data-action='package-save-items']"
29-
) ?>
3025
<button type="button"
3126
class="action-secondary"
3227
data-action="package-add-items">
3328
<span><?= $block->escapeHtml(__('Add Products to Package')) ?></span>
3429
</button>
35-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
36-
'onclick',
37-
'packaging.getItemsForPack(this);',
38-
"button[data-action='package-add-items']"
39-
) ?>
4030
</div>
4131
</div>
4232
<div class="admin__control-table-wrapper admin__page-subsection">
@@ -87,12 +77,6 @@
8777
</option>
8878
<?php endforeach; ?>
8979
</select>
90-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
91-
'onchange',
92-
"packaging.changeContainerType(this);
93-
packaging.checkSizeAndGirthParameter(this, {$block->escapeJs($girthEnabled)});",
94-
"select[name='package_container']"
95-
) ?>
9680
</td>
9781
<?php if ($girthEnabled == 1 && !empty($sizeSource)): ?>
9882
<td>
@@ -103,11 +87,6 @@
10387
</option>
10488
<?php endforeach; ?>
10589
</select>
106-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
107-
'onchange',
108-
"packaging.checkSizeAndGirthParameter(this, {$block->escapeJs($girthEnabled)});",
109-
"select[name='package_size']"
110-
) ?>
11190
</td>
11291
<td>
11392
<input type="text"
@@ -124,11 +103,6 @@
124103
<?= $block->escapeHtml(__('cm')) ?>
125104
</option>
126105
</select>
127-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
128-
'onchange',
129-
"packaging.changeMeasures(this);",
130-
"select[name='container_girth_dimension_units']"
131-
) ?>
132106
</td>
133107
<?php endif; ?>
134108
<?php
@@ -169,11 +143,6 @@
169143
<?= $block->escapeHtml(__('kg')) ?>
170144
</option>
171145
</select>
172-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
173-
'onchange',
174-
"packaging.changeMeasures(this);",
175-
"select[name='container_weight_units']"
176-
) ?>
177146
<span class="admin__addon-prefix"></span>
178147
</div>
179148
</td>
@@ -202,11 +171,6 @@
202171
<?= $block->escapeHtml(__('cm')) ?>
203172
</option>
204173
</select>
205-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
206-
'onchange',
207-
"packaging.changeMeasures(this);",
208-
"select[name='container_dimension_units']"
209-
) ?>
210174
</td>
211175
<?php if ($block->getDeliveryConfirmationTypes()): ?>
212176
<td>
@@ -224,11 +188,6 @@
224188
class="action-delete DeletePackageBtn">
225189
<span><?= $block->escapeHtml(__('Delete Package')) ?></span>
226190
</button>
227-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
228-
'onclick',
229-
'packaging.deletePackage(this);',
230-
"button.action-delete.DeletePackageBtn"
231-
) ?>
232191
</td>
233192
</tr>
234193
</tbody>
@@ -252,11 +211,6 @@
252211
</option>
253212
<?php endforeach; ?>
254213
</select>
255-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
256-
'onchange',
257-
"packaging.changeContentTypes(this);",
258-
"select[name='content_type']"
259-
) ?>
260214
</td>
261215
<td>
262216
<input name="content_type_other"
@@ -273,10 +227,47 @@
273227
<div class="grid_prepare admin__page-subsection"></div>
274228
</div>
275229
</section>
276-
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag("display:none;", 'div#package_template') ?>
230+
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag('display:none', '#package_template') ?>
277231
<div id="packages_content"></div>
232+
<?php $scriptString = <<<script
233+
require(['jquery'], function($){
234+
$("div#packages_content").on('click', "button[data-action='package-save-items']",
235+
function(){packaging.packItems(this)});
236+
$("div#packages_content").on('click', "button[data-action='package-add-items']",
237+
function(){packaging.getItemsForPack(this)});
238+
$("div#packages_content").on('change', "select[name='package_container']",
239+
function(){
240+
packaging.changeContainerType(this);
241+
packaging.checkSizeAndGirthParameter(this, {$block->escapeJs($girthEnabled)})
242+
});
243+
$("div#packages_content").on('change', "select[name='container_weight_units']",
244+
function(){packaging.changeMeasures(this)});
245+
$("div#packages_content").on('change', "select[name='container_dimension_units']",
246+
function(){packaging.changeMeasures(this)});
247+
$("div#packages_content").on('click', "button.action-delete.DeletePackageBtn",
248+
function(){packaging.deletePackage(this)});
249+
script;
250+
if ($girthEnabled == 1 && !empty($sizeSource)) {
251+
$scriptString .= <<<script
252+
$("div#packages_content").on('change', "select[name='package_size']",
253+
function(){packaging.checkSizeAndGirthParameter(this, {$block->escapeJs($girthEnabled)})});
254+
$("div#packages_content").on('change', "select[name='container_girth_dimension_units']",
255+
function(){packaging.changeMeasures(this)});
256+
script;
257+
}
258+
if ($block->getContentTypes()) {
259+
$scriptString .= <<<script
260+
$("div#packages_content").on('change', "select[name='content_type']",
261+
function(){packaging.changeContentTypes(this)});
262+
script;
263+
}
264+
$scriptString .= <<<script
265+
})
266+
script;
267+
?>
268+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
278269
</div>
279270
<?= /* @noEscape */ $secureRenderer->renderStyleAsTag(
280-
"display:none;",
281-
'div#packaging_window div.message message-warning'
271+
'display:none',
272+
'div#packaging_window div.message.message-warning'
282273
) ?>

0 commit comments

Comments
 (0)