diff --git a/app/views/admin/products_v3/_product_row.html.haml b/app/views/admin/products_v3/_product_row.html.haml index 0908652009..0dd86aa73b 100644 --- a/app/views/admin/products_v3/_product_row.html.haml +++ b/app/views/admin/products_v3/_product_row.html.haml @@ -43,5 +43,5 @@ = link_to t('admin.products_page.actions.clone'), clone_admin_product_path(product), 'data-turbo': false %a{ "data-controller": "modal-link", "data-action": "click->modal-link#setModalDataSetOnConfirm click->modal-link#open", "data-modal-link-target-value": "product-delete-modal", "class": "delete", - "data-modal-link-modal-dataset-value": {'data-current-id': product.id}.to_json } + "data-modal-link-modal-dataset-value": {'data-current-id': product.id, 'data-path': admin_product_destroy_path(product)}.to_json } = t('admin.products_page.actions.delete') diff --git a/app/views/admin/products_v3/_table.html.haml b/app/views/admin/products_v3/_table.html.haml index 27d5d7434f..92f8ded399 100644 --- a/app/views/admin/products_v3/_table.html.haml +++ b/app/views/admin/products_v3/_table.html.haml @@ -63,7 +63,7 @@ %th.align-right= t('admin.products_page.columns.actions') - products.each_with_index do |product, product_index| = form.fields_for("products", product, index: product_index) do |product_form| - %tbody.relaxed{ data: { 'record-id': product_form.object.id, + %tbody.relaxed{ id: dom_id(product), data: { 'record-id': product_form.object.id, controller: "nested-form product", action: 'rails-nested-form:add->bulk-form#registerElements rails-nested-form:remove->bulk-form#toggleFormChanged' } } %tr diff --git a/app/webpacker/controllers/modal_link_controller.js b/app/webpacker/controllers/modal_link_controller.js index 9eb765c35f..c77e2864fe 100644 --- a/app/webpacker/controllers/modal_link_controller.js +++ b/app/webpacker/controllers/modal_link_controller.js @@ -17,6 +17,9 @@ export default class extends Controller { const modalId = this.targetValue; const moodalConfirmButtonQuery = `#${modalId} #modal-confirm-button`; const confirmButton = document.querySelector(moodalConfirmButtonQuery); + + this.#setPathToFormAction(confirmButton); + Object.keys(this.modalDatasetValue).forEach((datasetKey) => { confirmButton.setAttribute(datasetKey, this.modalDatasetValue[datasetKey]); }); @@ -30,4 +33,16 @@ export default class extends Controller { getIdentifier() { return "modal"; } + + #setPathToFormAction(confirmButton) { + const isSubmitButton = confirmButton.type === 'submit'; + const path = this.modalDatasetValue['data-path']; + + if(isSubmitButton && path){ + const form = confirmButton.parentElement; + form.setAttribute('action', path); + + delete this.modalDatasetValue['data-path']; + } + } }