From f9d0f3bcaf40384ba4bfb9e28ce8a1a2cb9ddd03 Mon Sep 17 00:00:00 2001 From: Yurii Date: Sat, 21 Feb 2026 12:53:07 +0200 Subject: [PATCH] navbar url open in new tab parameter --- application/Espo/Resources/i18n/en_US/Admin.json | 3 ++- client/res/templates/site/navbar.tpl | 4 ++++ client/src/views/settings/modals/edit-tab-url.js | 8 +++++++- client/src/views/site/navbar.js | 6 +++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/application/Espo/Resources/i18n/en_US/Admin.json b/application/Espo/Resources/i18n/en_US/Admin.json index 27f84d71f5..57ea4f7ca8 100644 --- a/application/Espo/Resources/i18n/en_US/Admin.json +++ b/application/Espo/Resources/i18n/en_US/Admin.json @@ -242,7 +242,8 @@ "aclScope": "ACL Scope", "onlyAdmin": "Only for Admin", "notStorable": "Not Storable", - "itemsEditable": "Items Editable" + "itemsEditable": "Items Editable", + "openInNewTab": "Open in new tab" }, "strings" : { "rebuildRequired": "Rebuild is required" diff --git a/client/res/templates/site/navbar.tpl b/client/res/templates/site/navbar.tpl index dbb1f8c852..b5ba752d9b 100644 --- a/client/res/templates/site/navbar.tpl +++ b/client/res/templates/site/navbar.tpl @@ -27,6 +27,7 @@ {{#if link}}href="{{link}}"{{else}}role="button"{{/if}} class="{{aClassName}}" {{#if color}}style="border-color: {{color}}"{{/if}} + {{#if openInNewTab}} target="_blank" {{/if}} {{#if isGroup}} id="nav-tab-group-{{name}}" data-toggle="dropdown" @@ -69,6 +70,7 @@ id="nav-tab-group-{{name}}" data-toggle="dropdown" {{/if}} + {{#if openInNewTab}} target="_blank" {{/if}} > {{#if iconClass}} @@ -116,6 +118,7 @@ id="nav-tab-group-{{name}}" data-toggle="dropdown" {{/if}} + {{#if openInNewTab}} target="_blank" {{/if}} > {{#if iconClass}} @@ -155,6 +158,7 @@ id="nav-tab-group-{{name}}" data-toggle="dropdown" {{/if}} + {{#if openInNewTab}} target="_blank" {{/if}} > {{#if iconClass}} diff --git a/client/src/views/settings/modals/edit-tab-url.js b/client/src/views/settings/modals/edit-tab-url.js index 0ae83ec3a7..f0f0ea8292 100644 --- a/client/src/views/settings/modals/edit-tab-url.js +++ b/client/src/views/settings/modals/edit-tab-url.js @@ -94,7 +94,10 @@ class SettingsEditTabUrlModalView extends Modal { name: 'onlyAdmin', labelText: this.translate('onlyAdmin', 'fields', 'Admin'), }, - false + { + name: 'openInNewTab', + labelText: this.translate('openInNewTab', 'fields', 'Admin'), + }, ] ] } @@ -130,6 +133,9 @@ class SettingsEditTabUrlModalView extends Modal { onlyAdmin: { type: 'bool', }, + openInNewTab: { + type: 'bool', + }, }, }); diff --git a/client/src/views/site/navbar.js b/client/src/views/site/navbar.js index 6924f4f01f..53da641a33 100644 --- a/client/src/views/site/navbar.js +++ b/client/src/views/site/navbar.js @@ -1260,7 +1260,8 @@ class NavbarSiteView extends View { * label: string, * isGroup: boolean, * aClassName: string, - * iconClass: null + * iconClass: null, + * openInNewTab: boolean, * }} */ prepareTabItemDefs(params, tab, i, vars) { @@ -1273,6 +1274,7 @@ class NavbarSiteView extends View { let isUrl = false; let name = tab; let aClassName = 'nav-link'; + let openInNewTab = false; const label = this.tabsHelper.getTranslatedTabLabel(tab); @@ -1290,6 +1292,7 @@ class NavbarSiteView extends View { link = tab.url || '#'; color = tab.color; iconClass = tab.iconClass; + openInNewTab = tab.openInNewTab ?? false; this.urlList.push({name: name, url: link}); } else if (this.tabsHelper.isTabGroup(tab)) { @@ -1336,6 +1339,7 @@ class NavbarSiteView extends View { aClassName: aClassName, isGroup: isGroup, isDivider: isDivider, + openInNewTab, }; if (isGroup) {