first commit
This commit is contained in:
137
modules/inpostshipping/views/js/admin/shipments.js
Normal file
137
modules/inpostshipping/views/js/admin/shipments.js
Normal file
@@ -0,0 +1,137 @@
|
||||
/**
|
||||
* Copyright 2021-2022 InPost S.A.
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* Licensed under the EUPL-1.2 or later.
|
||||
* You may not use this work except in compliance with the Licence.
|
||||
*
|
||||
* You may obtain a copy of the Licence at:
|
||||
* https://joinup.ec.europa.eu/software/page/eupl
|
||||
* It is also bundled with this package in the file LICENSE.txt
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the Licence is distributed on an AS IS basis,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the Licence for the specific language governing permissions
|
||||
* and limitations under the Licence.
|
||||
*
|
||||
* @author InPost S.A.
|
||||
* @copyright 2021-2022 InPost S.A.
|
||||
* @license https://joinup.ec.europa.eu/software/page/eupl
|
||||
*/
|
||||
$(document).ready(function () {
|
||||
$('.bulk-actions a').each(function () {
|
||||
const that = $(this);
|
||||
|
||||
const actionRegex = /sendBulkAction\(.*, ['"]submit(.*)inpost_shipment['"]\)/;
|
||||
const matches = actionRegex.exec(that.attr('onclick'));
|
||||
if (matches != null && matches[1]) {
|
||||
that.removeAttr('onclick');
|
||||
that.addClass('js-bulk-' + matches[1].replace('Bulk', ''));
|
||||
that.attr('data-action', matches[1]);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-bulk-printLabels', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
openPrintLabelModal(
|
||||
getBulkActionUrl($(this).data('action'))
|
||||
);
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-bulk-printReturnLabels', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
openPrintLabelModal(
|
||||
getBulkActionUrl($(this).data('action')),
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-bulk-printDispatchOrders', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
inPostShippingXhr({
|
||||
type: 'POST',
|
||||
url: getBulkActionUrl($(this).data('action')),
|
||||
data: getShipmentBoxData(),
|
||||
callbackBlob: blobFileDownload,
|
||||
callbackJson: function (response) {
|
||||
if ('errors' in response) {
|
||||
displayAjaxErrors(response.errors);
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-bulk-createDispatchOrders', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
openDispatchOrderModal(
|
||||
getBulkActionUrl($(this).data('action'))
|
||||
);
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-submit-dispatch-order-form', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
const formData = $('#inpost-dispatch-order-form').attr('action').indexOf('Bulk') !== -1
|
||||
? getShipmentBoxData()
|
||||
: null;
|
||||
|
||||
submitDispatchOrderForm(formData);
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-printDispatchOrder', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
inPostShippingXhr({
|
||||
type: 'GET',
|
||||
url: $(this).attr('href'),
|
||||
callbackBlob: blobFileDownload,
|
||||
callbackJson: function (response) {
|
||||
if ('errors' in response) {
|
||||
displayAjaxErrors(response.errors);
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-submit-print-label-form', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
const formData = $('#inpost-print-shipment-label-form').attr('action').indexOf('Bulk') !== -1
|
||||
? getShipmentBoxData()
|
||||
: null;
|
||||
|
||||
submitPrintLabelForm(function (response) {
|
||||
if ('errors' in response) {
|
||||
displayAjaxErrors(response.errors);
|
||||
$('#inpost-print-shipment-label-modal').modal('hide');
|
||||
}
|
||||
}, formData);
|
||||
});
|
||||
});
|
||||
|
||||
function getBulkActionUrl(action) {
|
||||
const url = new URL(controllerUrl);
|
||||
|
||||
url.searchParams.set('action', action);
|
||||
url.searchParams.set('ajax', '1');
|
||||
|
||||
return url.toString();
|
||||
}
|
||||
|
||||
function getShipmentBoxData()
|
||||
{
|
||||
const formData = new FormData();
|
||||
|
||||
$('#form-inpost_shipment input[name="inpost_shipmentBox[]"]:checked').each(function () {
|
||||
const input = $(this);
|
||||
formData.append(input.attr('name'), input.val());
|
||||
});
|
||||
|
||||
return formData;
|
||||
}
|
||||
Reference in New Issue
Block a user