From 6d79e978739c2aaec5eadf91384b0930b7635a54 Mon Sep 17 00:00:00 2001 From: yannickoo <drupal@yannick.md> Date: Thu, 20 Mar 2025 10:20:14 +0100 Subject: [PATCH] Issue #3495223: Improve UX for Local Tasks in Toolbar --- .../src/AdminToolbarToolsHelper.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/admin_toolbar_tools/src/AdminToolbarToolsHelper.php b/admin_toolbar_tools/src/AdminToolbarToolsHelper.php index 46b13a2..4f7ddbc 100644 --- a/admin_toolbar_tools/src/AdminToolbarToolsHelper.php +++ b/admin_toolbar_tools/src/AdminToolbarToolsHelper.php @@ -102,6 +102,16 @@ class AdminToolbarToolsHelper { } } + $local_tasks_default_url = Url::fromRoute('<none>'); + $local_tasks_default_title = $this->t('Local Tasks'); + // Set default URL to entity edit form if available. + foreach ($local_task_links['#links'] as $route_name => $link) { + if (preg_match('/^entity\..+\.edit_form$/', $route_name)) { + $local_tasks_default_url = $link['url']; + $local_tasks_default_title = $link['title']; + } + } + $build = [ '#type' => 'toolbar_item', '#wrapper_attributes' => [ @@ -117,8 +127,8 @@ class AdminToolbarToolsHelper { // This means that for now we always render Local Tasks item even // when the tray is empty. '#type' => 'link', - '#title' => $this->t('Local Tasks'), - '#url' => Url::fromRoute('<none>'), + '#title' => $local_tasks_default_title, + '#url' => $local_tasks_default_url, '#attributes' => [ 'class' => [ 'toolbar-icon', -- GitLab