aktualizacja modułu dpd
This commit is contained in:
86
modules/dpdshipping/views/js/configuration/special-price.js
Normal file
86
modules/dpdshipping/views/js/configuration/special-price.js
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright 2024 DPD Polska Sp. z o.o.
|
||||
*
|
||||
* 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 DPD Polska Sp. z o.o.
|
||||
* @copyright 2024 DPD Polska Sp. z o.o.
|
||||
* @license https://joinup.ec.europa.eu/software/page/eupl
|
||||
*/
|
||||
|
||||
$(() => {
|
||||
|
||||
$(document).on('click', '#addFidRow', function () {
|
||||
const parentContainer = $("#specialPriceTable tbody tr:last");
|
||||
const clonedRow = parentContainer.clone();
|
||||
|
||||
setIndexForNewRow(clonedRow, true);
|
||||
clonedRow.insertAfter(parentContainer);
|
||||
});
|
||||
|
||||
$(document).on('click', '.dpdshipping-remove-row', function () {
|
||||
$(this).closest('tr').remove();
|
||||
|
||||
$("#specialPriceTable tbody tr").each(function (index) {
|
||||
function setIndexesAfterRemoveRow() {
|
||||
const currentName = $(this).attr('name');
|
||||
const matches = currentName.match(/\[(\d+)\]/);
|
||||
if (matches) {
|
||||
const newIndex = index + 1;
|
||||
const newName = currentName.replace(/\[(\d+)\]/, '[' + newIndex + ']');
|
||||
$(this).attr('name', newName);
|
||||
}
|
||||
}
|
||||
|
||||
$(this).find('input').each(function () {
|
||||
setIndexesAfterRemoveRow.call(this);
|
||||
});
|
||||
|
||||
$(this).find('select').each(function () {
|
||||
setIndexesAfterRemoveRow.call(this);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(document).on('click', '.dpdshipping-duplicate-row', function () {
|
||||
const parentContainer = $(this).closest('tr');
|
||||
const clonedRow = parentContainer.clone();
|
||||
|
||||
setIndexForNewRow(clonedRow, false);
|
||||
const lastRow = $("#specialPriceTable tbody tr:last");
|
||||
clonedRow.insertAfter(lastRow);
|
||||
});
|
||||
|
||||
function setIndexForNewRow(clonedRow, emptyValue) {
|
||||
function setIndexes() {
|
||||
const index = parseInt($("#specialPriceTable tbody tr").length) + 1;
|
||||
const currentName = $(this).attr('name');
|
||||
const newName = currentName.replace(/\[(\d+)\]/, '[' + index + ']');
|
||||
$(this).attr('name', newName);
|
||||
if (emptyValue)
|
||||
$(this).val('');
|
||||
}
|
||||
|
||||
clonedRow.find('input').each(function () {
|
||||
setIndexes.call(this);
|
||||
});
|
||||
|
||||
clonedRow.find('select').each(function () {
|
||||
setIndexes.call(this);
|
||||
});
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user