From 5229340412f9684654d216ab9ed1962045437293 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Sat, 29 Jun 2019 00:07:40 +0800 Subject: [PATCH] Allow open in new tab for side bar links --- app/Services/Hook.php | 3 ++- app/helpers.php | 3 ++- tests/ServicesTest/HookTest.php | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Services/Hook.php b/app/Services/Hook.php index a99be142..36754ae8 100644 --- a/app/Services/Hook.php +++ b/app/Services/Hook.php @@ -18,7 +18,8 @@ class Hook * [ * 'title' => 'Title', # will be translated by translator * 'link' => 'user/config', # route link - * 'icon' => 'fa-book' # font-awesome icon + * 'icon' => 'fa-book', # font-awesome icon + * 'new-tab' => false, # open the link in new tab or not, false by default * ] * @return void */ diff --git a/app/helpers.php b/app/helpers.php index a3d939be..b6c798dc 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -166,8 +166,9 @@ if (! function_exists('bs_menu')) { } else { if ($value) { $content .= sprintf( - '  %s', + '  %s', url((string) $value['link']), + Arr::get($value, 'new-tab') ? 'target="_blank"' : '', $value['icon'] == 'fa-circle' ? 'far' : 'fas', (string) $value['icon'], trans((string) $value['title']) diff --git a/tests/ServicesTest/HookTest.php b/tests/ServicesTest/HookTest.php index 7f7bf0d4..9389b15c 100644 --- a/tests/ServicesTest/HookTest.php +++ b/tests/ServicesTest/HookTest.php @@ -16,11 +16,12 @@ class HookTest extends TestCase 'title' => 'Link A', 'link' => '/to/a', 'icon' => 'fa-book', + 'new-tab' => true, ]); $this->actAs('normal') ->get('/user') ->assertSee('Link A') - ->assertSee('/to/a') + ->assertSee('/to/a" target="_blank"') ->assertSee('fa-book'); // Out of bound