138 lines
3.7 KiB
JavaScript
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;
|
|
}
|