Commit 4cbcb8d2 authored by David Suissa's avatar David Suissa
Browse files

Issue #3516995 by dydave, ressa: Moved the 'hoverintent_functionality' setting...

Issue #3516995 by dydave, ressa: Moved the 'hoverintent_functionality' setting out of 'admin_toolbar_tools' to 'admin_toolbar'.
parent c4ac4d9a
Loading
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -41,3 +41,35 @@ function admin_toolbar_update_8003() {
    $module_installer->uninstall(['admin_toolbar_links_access_filter']);
  }
}

/**
 * Move the 'hoverintent_functionality' configuration to 'admin_toolbar'.
 */
function admin_toolbar_update_8004() {
  // If the 'hoverintent_functionality' is set in the config
  // 'admin_toolbar_tools.settings' copy it to the 'admin_toolbar.settings'.
  /** @var \Drupal\Core\Config\Config $admin_toolbar_tools_config */
  $admin_toolbar_tools_config = \Drupal::service('config.factory')
    ->getEditable('admin_toolbar_tools.settings');
  // If there is a value in the old config, move it to the new config.
  if (!$admin_toolbar_tools_config->isNew()) {
    $hoverintent_functionality = (bool) $admin_toolbar_tools_config->get('hoverintent_functionality');
    // Move 'hoverintent_functionality' to the 'admin_toolbar.settings'.
    \Drupal::service('config.factory')
      ->getEditable('admin_toolbar.settings')
      ->set('enable_hoverintent', $hoverintent_functionality)
      ->save(TRUE);
    // Remove the 'hoverintent_functionality' configuration from the
    // 'admin_toolbar_tools.settings'.
    $admin_toolbar_tools_config->clear('hoverintent_functionality')
      ->save(TRUE);
  }
  else {
    // If the admin_toolbar_tools config is new, it means that the module was
    // not installed and therefore had no value for the config.
    \Drupal::service('config.factory')
      ->getEditable('admin_toolbar.settings')
      ->set('enable_hoverintent', TRUE)
      ->save(TRUE);
  }
}
+4 −4
Original line number Diff line number Diff line
@@ -5,21 +5,21 @@ toolbar.tree:
  js:
    js/admin_toolbar.js: {}
  dependencies:
    - core/jquery
    - core/drupal
    # Require the Core Toolbar module library for the 'ToolbarModel' class.
    - toolbar/toolbar

toolbar.tree.hoverintent:
  js:
    js/jquery.hoverIntent.js: {}
    js/admin_toolbar.hoverintent.js: {}
  dependencies:
    - core/jquery
    - admin_toolbar/toolbar.tree

toolbar.tree.hover:
  js:
    js/admin_toolbar.hover.js: {}
  dependencies:
    - core/jquery
    - admin_toolbar/toolbar.tree

toolbar.disable_sticky:
  css:
+6 −5
Original line number Diff line number Diff line
@@ -17,18 +17,19 @@ function admin_toolbar_toolbar_alter(&$items) {
  $items['administration']['tray']['toolbar_administration']['#pre_render'] = [
    [AdminToolbar::class, 'preRenderTray'],
  ];
  $admin_toolbar_config = \Drupal::config('admin_toolbar.settings');
  $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.tree';
  $disable_sticky = \Drupal::config('admin_toolbar.settings')->get('disable_sticky');
  $disable_sticky = $admin_toolbar_config->get('disable_sticky');
  if ($disable_sticky === TRUE) {
    $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.disable_sticky';
  }
  $hoverintent_functionality = \Drupal::config('admin_toolbar_tools.settings')->get('hoverintent_functionality');
  if ($hoverintent_functionality === TRUE) {
    // Use jQuery hover() effect.
  $enable_hoverintent = $admin_toolbar_config->get('enable_hoverintent');
  if ($enable_hoverintent === TRUE) {
    // Use the hoverIntent plugin library.
    $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.tree.hoverintent';
  }
  else {
    // User hoverIntent plugin.
    // Use default Admin Toolbar hover library.
    $items['administration']['#attached']['library'][] = 'admin_toolbar/toolbar.tree.hover';
  }
}
+0 −1
Original line number Diff line number Diff line
max_bundle_number: 20
hoverintent_functionality: true
show_local_tasks: false
+0 −3
Original line number Diff line number Diff line
@@ -5,9 +5,6 @@ admin_toolbar_tools.settings:
    max_bundle_number:
      type: integer
      label: 'Number of bundles per entity type to display'
    hoverintent_functionality:
      type: boolean
      label: 'Enable or disable hoverintent functionality'
    show_local_tasks:
      type: boolean
      label: 'Show local tasks in toolbar'
Loading