mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-11 23:17:48 +00:00
12398: update modal-link-controller to dynamically set
form action as per the selected product to delete
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user