Skip to content
Snippets Groups Projects

Issue #3342310: Apply form dialog only on non workspace save forms on a page with multiple forms

Merged Issue #3342310: Apply form dialog only on non workspace save forms on a page with multiple forms
2 files
+ 58
39
Compare changes
  • Side-by-side
  • Inline

Files

+ 48
39
@@ -3,45 +3,54 @@
'use strict';
Drupal.behaviors.wseFormSubmitDialog = {
attach: function (context) {
once('wse-form-submit-dialog', '.form-submit', context)
.forEach(function(submitBtn) {
let submissionConfirmed = false;
submitBtn.addEventListener(
'click',
function (event) {
if (submissionConfirmed) {
return true;
}
const $confirmDialog = $('<div>' + Drupal.t('Warning! This form changes configuration that can not be tracked or contained inside a workspace, so it will be applied to the Live site instead. Do you want to continue anyway?') + '</div>').appendTo('body');
Drupal.dialog($confirmDialog, {
title: Drupal.t('Form should not be submitted in a workspace'),
minWidth: 600,
minHeight: 230,
buttons: [
{
text: Drupal.t('Submit in Live'),
click: function() {
submissionConfirmed = true;
$(submitBtn).click();
}
},
{
text: Drupal.t('Cancel'),
click: function() {
$(this).dialog('close');
}
},
]
}).showModal();
event.preventDefault();
return false;
},
);
});
attach: function (context, settings) {
if (!settings.wseSubmitDialog.formSelectors.length) {
return;
}
settings.wseSubmitDialog.formSelectors.forEach(function (formSelector) {
once('wse-form-submit-dialog', `form.${formSelector}`, context)
.forEach(function(form) {
let submissionConfirmed = false;
form.querySelectorAll('.form-submit').forEach(function (submitButton) {
submitButton.addEventListener(
'click',
function (event) {
if (submissionConfirmed) {
return true;
}
const $confirmDialog = $('<div>' + Drupal.t('Warning! This form changes configuration that can not be tracked or contained inside a workspace, so it will be applied to the Live site instead. Do you want to continue anyway?') + '</div>').appendTo('body');
Drupal.dialog($confirmDialog, {
title: Drupal.t('Form should not be submitted in a workspace'),
minWidth: 600,
minHeight: 230,
buttons: [
{
text: Drupal.t('Submit in Live'),
click: function() {
submissionConfirmed = true;
$(submitButton).click();
}
},
{
text: Drupal.t('Cancel'),
click: function() {
$(this).dialog('close');
}
},
]
}).showModal();
event.preventDefault();
return false;
},
);
});
});
});
}
};
Loading