From: Stas Vilchik Date: Wed, 13 Jul 2016 09:34:39 +0000 (+0200) Subject: highlight selected settings menu item X-Git-Tag: 6.0-RC1~70 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ec692c4d95dd423740867418227d2cde54c40d79;p=sonarqube.git highlight selected settings menu item --- diff --git a/server/sonar-web/src/main/js/main/nav/settings/settings-nav.js b/server/sonar-web/src/main/js/main/nav/settings/settings-nav.js index d91bafccfd6..6b6e0882236 100644 --- a/server/sonar-web/src/main/js/main/nav/settings/settings-nav.js +++ b/server/sonar-web/src/main/js/main/nav/settings/settings-nav.js @@ -18,6 +18,8 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import React from 'react'; +import classNames from 'classnames'; +import some from 'lodash/some'; import LinksMixin from '../links-mixin'; import { translate } from '../../../helpers/l10n'; @@ -28,7 +30,38 @@ export default React.createClass({ return { extensions: [] }; }, + isSomethingActive(urls) { + const path = window.location.pathname; + return some(urls, url => path.indexOf(window.baseUrl + url) === 0); + }, + + isSecurityActive() { + const urls = ['/users', '/groups', '/roles/global', '/permission_templates']; + return this.isSomethingActive(urls); + }, + + isProjectsActive() { + const urls = ['/projects', '/background_tasks']; + return this.isSomethingActive(urls); + }, + + isSystemActive() { + const urls = ['/updatecenter', '/system']; + return this.isSomethingActive(urls); + }, + render() { + const isSecurity = this.isSecurityActive(); + const isProjects = this.isProjectsActive(); + const isSystem = this.isSystemActive(); + + const securityClassName = classNames('dropdown', { active: isSecurity }); + const projectsClassName = classNames('dropdown', { active: isProjects }); + const systemClassName = classNames('dropdown', { active: isSystem }); + const configurationClassNames = classNames('dropdown', { + active: !isSecurity && !isProjects && !isSystem + }); + return (