$(function(){ if (window.location.pathname == '/pl/sales/offer/update') { $('body').append(` `) $('#offerForm .save-offer').click(function(e){ e.preventDefault() submitForm() }) $(document).ajaxSuccess(function(event, xhr, settings){ if(settings.url.includes('/pl/logic/context/select-object')) { addLink() stopDblClick() } }) } }) //Задаем действия по событиям клика function stopDblClick() { $('.w0').on('dblclick', function(e) { e.stopImmediatePropagation(); selectProduct.call(this); }); $('.w0 .add-product').on('click', function(e) { e.stopImmediatePropagation(); selectProduct.call(this); }); } //Функция выбора продукта function selectProduct() { let productName = $(this).parents('.has-archived-row').find('.w0[data-col-seq="1"] a:not(.add-product)').text().trim(); let productLink = $(this).parents('.has-archived-row').find('.w0[data-col-seq="1"] a:not(.add-product)').attr('href'); let productId = $(this).parents('.has-archived-row').find('.w0[data-col-seq="1"] a:not(.add-product)').attr('href').replace(/[^0-9]/g, ''); if (!$(`.products span a[href="${productLink}"]`).length) { $('.product-list').append(`
${productName} (id:${productId})
`); } $('.products .clearfix').show() } //Добавляем кнопку выбора продукта function addLink() { let inter = setInterval(function(){ if (!$('.gc-tags-cloud ~ .products').length) { $('.gc-tags-cloud').after(`
`) } if (!$('.kv-grid-table tbody tr td[data-col-seq="1"] div .add-product').length) { $('.kv-grid-table tbody tr td[data-col-seq="1"] div').append('Выбрать'); } if ($('.kv-grid-table tbody tr td[data-col-seq="1"] .add-product').length) { stopDblClick() clearInterval(inter) } },100) } //Сбрасываем выбор продуктов function resetSelection() { $('.product-list > *').remove(); $('.products .clearfix').hide(); } //Сохраняем выбор продуктов function saveChoice() { $('.add-product-as-params .select-object-widget').text('') $('.gc-modal .close-btn').click(); $('.product-list > *').each(function(i,e) { $('.add-product-as-params .select-object-widget').append(`
${$(e).find('span').attr('product-name')}
`) }) } //Сабмитим форму function submitForm() { if ($('#paramsobject-prefix_offer_id').val() == '') { $('.error-summary').remove() $('#offerForm').prepend(`

Пожалуйста, исправьте следующие ошибки:

`) } else if ($('#offer-title').val().length < 5){ $('.error-summary').remove() $('#offerForm').prepend(`

Пожалуйста, исправьте следующие ошибки:

`) } else { if ($('.add-product-as-params .select-object-widget > div').length) { let promises = []; let totalAddedProducts = $('.add-product-as-params .select-object-widget > div').length; let remainingProducts = totalAddedProducts; $('body').append(` `); $('.add-product-as-params .select-object-widget > div').each(function(i,e){ const form = $('#offerForm'); const builder = new URL(form.attr('action'), location.origin); const searchParams = builder.searchParams; if (searchParams.has('copy')) { searchParams.delete('copy'); form.attr('action', builder.pathname + '?' + searchParams.toString()); } const formData = form.serializeArray(); formData.push({ name: 'add_product', value: '1' }); formData.push({ name: 'add_product_as', value: 'select' }); formData.push({ name: 'add_product_id', value: `${$(e).find('span').attr('p-id')}` }); const request = $.ajax({ type: "POST", url: form.attr('action'), data: formData, dataType: "json" }).done(() => { remainingProducts--; $('.modal-added-status .modal-block-text').text(`Осталось добавить ${remainingProducts} продуктов`); }); promises.push(request); }) Promise.all(promises).then(() => { window.location.reload(); }); } else { let form = $('#offerForm'); let builder = new URL(form.attr('action'), location.origin); let searchParams = builder.searchParams; if (searchParams.has('copy')) { searchParams.delete('copy'); form.attr('action', builder.pathname + '?' + searchParams.toString()); } const formData = form.serializeArray(); $.ajax({ type: "POST", url: form.attr('action'), data: formData, dataType: "json" }).done(() => { window.location.reload() }); } } }