12398: update modal-link-controller to dynamically set

form action as per the selected product to delete
This commit is contained in:
Ahmed Ejaz
2024-05-23 14:32:38 +05:00
parent 53fb77eb23
commit 6659ffe530
3 changed files with 17 additions and 2 deletions

View File

@@ -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')

View File

@@ -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

View File

@@ -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'];
}
}
}