Skip to content

Commit 9c2cd28

Browse files
committed
Adding the tracking number client validation
1 parent e7e3377 commit 9c2cd28

File tree

2 files changed

+72
-62
lines changed
  • app/code/Magento/Shipping

2 files changed

+72
-62
lines changed

app/code/Magento/Shipping/Block/Adminhtml/Order/Tracking/View.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function __construct(
4343
*/
4444
protected function _prepareLayout()
4545
{
46-
$onclick = "submitAndReloadArea($('shipment_tracking_info').parentNode, '" . $this->getSubmitUrl() . "')";
46+
$onclick = "saveTrackingInfo($('shipment_tracking_info').parentNode, '" . $this->getSubmitUrl() . "')";
4747
$this->addChild(
4848
'save_button',
4949
\Magento\Backend\Block\Widget\Button::class,

app/code/Magento/Shipping/view/adminhtml/templates/order/tracking/view.phtml

Lines changed: 71 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -9,76 +9,85 @@
99
?>
1010
<?php /** @var $block Magento\Shipping\Block\Adminhtml\Order\Tracking\View */ ?>
1111
<div class="admin__control-table-wrapper">
12-
<table class="data-table admin__control-table" id="shipment_tracking_info">
13-
<thead>
14-
<tr class="headings">
15-
<th class="col-carrier"><?= $block->escapeHtml(__('Carrier')) ?></th>
16-
<th class="col-title"><?= $block->escapeHtml(__('Title')) ?></th>
17-
<th class="col-number"><?= $block->escapeHtml(__('Number')) ?></th>
18-
<th class="col-delete last"><?= $block->escapeHtml(__('Action')) ?></th>
19-
</tr>
20-
</thead>
21-
<tfoot>
22-
<tr>
23-
<td class="col-carrier">
24-
<select name="carrier"
25-
class="select admin__control-select"
26-
onchange="selectCarrier(this)">
27-
<?php foreach ($block->getCarriers() as $_code => $_name) : ?>
28-
<option value="<?= $block->escapeHtmlAttr($_code) ?>"><?= $block->escapeHtml($_name) ?></option>
29-
<?php endforeach; ?>
30-
</select>
31-
</td>
32-
<td class="col-title">
33-
<input class="input-text admin__control-text"
34-
type="text"
35-
id="tracking_title"
36-
name="title"
37-
value="" />
38-
</td>
39-
<td class="col-number">
40-
<input class="input-text admin__control-text"
41-
type="text"
42-
id="tracking_number"
43-
name="number"
44-
value="" />
45-
</td>
46-
<td class="col-delete last"><?= $block->getSaveButtonHtml() ?></td>
47-
</tr>
48-
</tfoot>
49-
<?php if ($_tracks = $block->getShipment()->getAllTracks()) : ?>
50-
<tbody>
51-
<?php $i = 0; foreach ($_tracks as $_track) :$i++ ?>
52-
<tr class="<?= /* @noEscape */ ($i%2 == 0) ? 'even' : 'odd' ?>">
53-
<td class="col-carrier">
54-
<?= $block->escapeHtml($block->getCarrierTitle($_track->getCarrierCode())) ?>
55-
</td>
56-
<td class="col-title"><?= $block->escapeHtml($_track->getTitle()) ?></td>
57-
<td class="col-number">
58-
<?php if ($_track->isCustom()) : ?>
59-
<?= $block->escapeHtml($_track->getNumber()) ?>
60-
<?php else : ?>
61-
<a href="#" onclick="popWin('<?= $block->escapeJs($block->escapeUrl($this->helper(Magento\Shipping\Helper\Data::class)->getTrackingPopupUrlBySalesModel($_track))) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')"><?= $block->escapeHtml($_track->getNumber()) ?></a>
62-
<div id="shipment_tracking_info_response_<?= (int) $_track->getId() ?>"></div>
63-
<?php endif; ?>
64-
</td>
65-
<td class="col-delete last"><button class="action-delete" type="button" onclick="deleteTrackingNumber('<?= $block->escapeJs($block->escapeUrl($block->getRemoveUrl($_track))) ?>'); return false;"><span><?= $block->escapeHtml(__('Delete')) ?></span></button></td>
66-
</tr>
67-
<?php endforeach; ?>
68-
</tbody>
69-
<?php endif; ?>
70-
</table>
12+
<form id="tracking-shipping-form" data-mage-init='{"validation": {}}'>
13+
<table class="data-table admin__control-table" id="shipment_tracking_info">
14+
<thead>
15+
<tr class="headings">
16+
<th class="col-carrier"><?= $block->escapeHtml(__('Carrier')) ?></th>
17+
<th class="col-title"><?= $block->escapeHtml(__('Title')) ?></th>
18+
<th class="col-number"><?= $block->escapeHtml(__('Number')) ?></th>
19+
<th class="col-delete last"><?= $block->escapeHtml(__('Action')) ?></th>
20+
</tr>
21+
</thead>
22+
<tfoot>
23+
<tr>
24+
<td class="col-carrier">
25+
<select name="carrier"
26+
class="select admin__control-select"
27+
onchange="selectCarrier(this)">
28+
<?php foreach ($block->getCarriers() as $_code => $_name) : ?>
29+
<option value="<?= $block->escapeHtmlAttr($_code) ?>"><?= $block->escapeHtml($_name) ?></option>
30+
<?php endforeach; ?>
31+
</select>
32+
</td>
33+
<td class="col-title">
34+
<input class="input-text admin__control-text"
35+
type="text"
36+
id="tracking_title"
37+
name="title"
38+
value="" />
39+
</td>
40+
<td class="col-number">
41+
<input class="input-text admin__control-text required-entry"
42+
type="text"
43+
id="tracking_number"
44+
name="number"
45+
value="" />
46+
</td>
47+
<td class="col-delete last"><?= $block->getSaveButtonHtml() ?></td>
48+
</tr>
49+
</tfoot>
50+
<?php if ($_tracks = $block->getShipment()->getAllTracks()) : ?>
51+
<tbody>
52+
<?php $i = 0; foreach ($_tracks as $_track) :$i++ ?>
53+
<tr class="<?= /* @noEscape */ ($i%2 == 0) ? 'even' : 'odd' ?>">
54+
<td class="col-carrier">
55+
<?= $block->escapeHtml($block->getCarrierTitle($_track->getCarrierCode())) ?>
56+
</td>
57+
<td class="col-title"><?= $block->escapeHtml($_track->getTitle()) ?></td>
58+
<td class="col-number">
59+
<?php if ($_track->isCustom()) : ?>
60+
<?= $block->escapeHtml($_track->getNumber()) ?>
61+
<?php else : ?>
62+
<a href="#" onclick="popWin('<?= $block->escapeJs($block->escapeUrl($this->helper(Magento\Shipping\Helper\Data::class)->getTrackingPopupUrlBySalesModel($_track))) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')"><?= $block->escapeHtml($_track->getNumber()) ?></a>
63+
<div id="shipment_tracking_info_response_<?= (int) $_track->getId() ?>"></div>
64+
<?php endif; ?>
65+
</td>
66+
<td class="col-delete last"><button class="action-delete" type="button" onclick="deleteTrackingNumber('<?= $block->escapeJs($block->escapeUrl($block->getRemoveUrl($_track))) ?>'); return false;"><span><?= $block->escapeHtml(__('Delete')) ?></span></button></td>
67+
</tr>
68+
<?php endforeach; ?>
69+
</tbody>
70+
<?php endif; ?>
71+
</table>
72+
</form>
7173
</div>
7274

7375
<script>
74-
require(['prototype'], function(){
75-
76+
require(['prototype', 'jquery'], function(prototype, $j) {
7677
//<![CDATA[
7778
function selectCarrier(elem) {
7879
var option = elem.options[elem.selectedIndex];
7980
$('tracking_title').value = option.value && option.value != 'custom' ? option.text : '';
8081
}
8182

83+
function saveTrackingInfo(node, url) {
84+
var form = $j('#tracking-shipping-form');
85+
86+
if (form.validation() && form.validation('isValid')) {
87+
submitAndReloadArea(node, url);
88+
}
89+
}
90+
8291
function deleteTrackingNumber(url) {
8392
if (confirm('<?= $block->escapeJs($block->escapeHtml(__('Are you sure?'))) ?>')) {
8493
submitAndReloadArea($('shipment_tracking_info').parentNode, url)
@@ -87,6 +96,7 @@ function deleteTrackingNumber(url) {
8796

8897
window.selectCarrier = selectCarrier;
8998
window.deleteTrackingNumber = deleteTrackingNumber;
99+
window.saveTrackingInfo = saveTrackingInfo;
90100
//]]>
91101

92102
});

0 commit comments

Comments
 (0)