Files
kalsport.pl/modules/inpostshipping/views/js/admin/shipments.js
2024-11-05 12:22:50 +01:00

138 lines
3.7 KiB
JavaScript

/**
* 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;
}