wse-1.0.x-dev/js/form-submit-dialog.js

js/form-submit-dialog.js
(function (Drupal, drupalSettings, $, once) {
  Drupal.behaviors.wseFormSubmitDialog = {
    attach(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() {
                          submissionConfirmed = true;
                          $(submitButton).click();
                        },
                      },
                      {
                        text: Drupal.t('Cancel'),
                        click() {
                          $(this).dialog('close');
                        },
                      },
                    ],
                  }).showModal();

                  event.preventDefault();
                  return false;
                });
              });
          },
        );
      });
    },
  };
})(Drupal, drupalSettings, jQuery, once);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc