diff --git a/frontend/src/metabase/components/EntityMenu.jsx b/frontend/src/metabase/components/EntityMenu.jsx index c32771d4982180daacf414cbe966afcd1289429b..e6de83cb750d65baee85f9c7b2b34954939c2e1e 100644 --- a/frontend/src/metabase/components/EntityMenu.jsx +++ b/frontend/src/metabase/components/EntityMenu.jsx @@ -113,6 +113,7 @@ class EntityMenu extends Component { <EntityMenuItem icon={item.icon} title={item.title} + externalLink={item.externalLink} action={ item.action && (() => { diff --git a/frontend/src/metabase/components/EntityMenuItem.jsx b/frontend/src/metabase/components/EntityMenuItem.jsx index 74d8929c583b6d419861a49e09d3f4379026a182..3623da268a963c97b22c7acafae1bd093625a533 100644 --- a/frontend/src/metabase/components/EntityMenuItem.jsx +++ b/frontend/src/metabase/components/EntityMenuItem.jsx @@ -48,10 +48,11 @@ const itemClasses = cxs({ }, }); -const LinkMenuItem = ({ children, link, onClose, event }) => ( +const LinkMenuItem = ({ children, link, onClose, event, externalLink }) => ( <Link className={itemClasses} to={link} + target={externalLink ? "_blank" : null} onClick={onClose} data-metabase-event={event} > @@ -65,7 +66,15 @@ const ActionMenuItem = ({ children, action, event }) => ( </div> ); -const EntityMenuItem = ({ action, title, icon, link, onClose, event }) => { +const EntityMenuItem = ({ + action, + title, + icon, + link, + onClose, + event, + externalLink, +}) => { if (link && action) { console.warn( "EntityMenuItem Error: You cannot specify both action and link props", @@ -80,7 +89,12 @@ const EntityMenuItem = ({ action, title, icon, link, onClose, event }) => { if (link) { return ( - <LinkMenuItem link={link} onClose={onClose} event={event}> + <LinkMenuItem + link={link} + externalLink={externalLink} + onClose={onClose} + event={event} + > {content} </LinkMenuItem> ); diff --git a/frontend/src/metabase/nav/components/ProfileLink.jsx b/frontend/src/metabase/nav/components/ProfileLink.jsx index 2c44a54acabe52e6ae070f8cba5c4ca72be4538f..0403f97f83685c75f1a551f1083c33db9f81ae10 100644 --- a/frontend/src/metabase/nav/components/ProfileLink.jsx +++ b/frontend/src/metabase/nav/components/ProfileLink.jsx @@ -35,7 +35,7 @@ export default class ProfileLink extends Component { }; generateOptionsForUser = () => { - const { tag } = this.props; + const { tag } = MetabaseSettings.get("version"); const admin = this.props.user.is_superuser; const adminContext = this.props.context === "admin"; return [ @@ -66,7 +66,10 @@ export default class ProfileLink extends Component { { title: t`Help`, icon: null, - link: `https://metabase.com/docs/${tag}`, + // HACK - for some reason if you use // react router treats the link + // as a non local route + link: `//metabase.com/docs/${tag}`, + externalLink: true, event: `Navbar;Profile Dropdown;About ${tag}`, }, {