Loading component_library.module +0 −6 Original line number Diff line number Diff line Loading @@ -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' => [ Loading js/override_mode.js +29 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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') } }); Loading Loading
component_library.module +0 −6 Original line number Diff line number Diff line Loading @@ -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' => [ Loading
js/override_mode.js +29 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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') } }); Loading