Commit 1db0370e authored by s_leu's avatar s_leu Committed by Tim Bozeman
Browse files

Resolve #3300353 "Override btn toggle"

parent 9ded3c84
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -228,12 +228,6 @@ function component_library_toolbar(): array {
      '#url' => Url::fromRoute('component_library.override_mode'),
      '#attributes' => [
        'id' => 'enable-override-mode',
        'class' => ['use-ajax'],
        'data-dialog-type' => 'dialog',
        'data-dialog-renderer' => 'off_canvas',
        'data-dialog-options' => Json::encode([
          'width' => 300,
        ]),
      ],
    ],
    '#wrapper_attributes' => [
+29 −0
Original line number Diff line number Diff line
@@ -2,10 +2,38 @@

  Drupal.behaviors.OverrideUiBehaviour = {
    overrideMode: false,
    overrideTrayOpen: false,
    attach: function (context, settings) {
      // Set a data attribute on each template element based on its paired HTML comment.
      Drupal.behaviors.OverrideUiBehaviour.processHtmlComments(context);

      // Close the off canvas dialog when clicking on the toolbar button and the
      // dialog is already open.
      once('OverrideUiToolbarBtn', '#enable-override-mode', context).forEach(function (toggleButton) {
        toggleButton.addEventListener(
          'click',
          function (event) {
            if (!Drupal.behaviors.OverrideUiBehaviour.overrideTrayOpen) {
              const drupalAjaxDialog = Drupal.ajax({
                url: '/override-mode',
                dialogType: 'dialog',
                dialogRenderer: 'off_canvas',
                dialog: { width: 300 },
              });
              drupalAjaxDialog.execute();
              Drupal.behaviors.OverrideUiBehaviour.overrideTrayOpen = true;
            } else {
              $(toggleButton).off();
              $closeButton = $('.ui-front').find('.ui-dialog-titlebar-close').click();
              Drupal.behaviors.OverrideUiBehaviour.overrideTrayOpen = false;
            }
            event.preventDefault();
            return false;
          },
        );

      });

      // Build the Override Mode tray list of buttons.
      once('OverrideUiBehaviour', '#override-mode-tray', context).forEach(function (buttonContainer) {

@@ -44,6 +72,7 @@
      $(window).on('dialog:afterclose', function (e, dialog, $element) {
        if ($('#override-mode-tray', $element).length > 0) {
          Drupal.behaviors.OverrideUiBehaviour.overrideMode = false;
          Drupal.behaviors.OverrideUiBehaviour.overrideTrayOpen = false;
          document.getElementsByTagName('html')[0].classList.remove('override-mode')
        }
      });