From d4a231fe09a06013d3487f0df62a114eeb72e871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 17 Aug 2017 14:59:10 +0200 Subject: [PATCH] ux: fixed sidenav issues --- public/app/core/components/grafana_app.ts | 20 ++++++++- .../features/org/user_group_details_ctrl.ts | 2 +- public/app/features/org/user_groups_ctrl.ts | 2 +- public/sass/components/_navbar.scss | 44 +------------------ public/sass/components/_sidemenu.scss | 10 ++--- public/sass/components/_view_states.scss | 3 +- 6 files changed, 27 insertions(+), 54 deletions(-) diff --git a/public/app/core/components/grafana_app.ts b/public/app/core/components/grafana_app.ts index d13422a88b8..ff8f0d1aadb 100644 --- a/public/app/core/components/grafana_app.ts +++ b/public/app/core/components/grafana_app.ts @@ -65,7 +65,7 @@ export class GrafanaCtrl { } /** @ngInject */ -export function grafanaAppDirective(playlistSrv, contextSrv) { +export function grafanaAppDirective(playlistSrv, contextSrv, $timeout, $rootScope) { return { restrict: 'E', controller: GrafanaCtrl, @@ -118,6 +118,7 @@ export function grafanaAppDirective(playlistSrv, contextSrv) { var lastActivity = new Date().getTime(); var activeUser = true; var inActiveTimeLimit = 60 * 1000; + var sidemenuHidden = false; function checkForInActiveUser() { if (!activeUser) { @@ -131,6 +132,14 @@ export function grafanaAppDirective(playlistSrv, contextSrv) { if ((new Date().getTime() - lastActivity) > inActiveTimeLimit) { activeUser = false; body.addClass('user-activity-low'); + // hide sidemenu + if (sidemenuOpen) { + sidemenuHidden = true; + body.removeClass('sidemenu-open'); + $timeout(function() { + $rootScope.$broadcast("render"); + }, 100); + } } } @@ -139,6 +148,15 @@ export function grafanaAppDirective(playlistSrv, contextSrv) { if (!activeUser) { activeUser = true; body.removeClass('user-activity-low'); + + // restore sidemenu + if (sidemenuHidden) { + sidemenuHidden = false; + body.addClass('sidemenu-open'); + $timeout(function() { + $rootScope.$broadcast("render"); + }, 100); + } } } diff --git a/public/app/features/org/user_group_details_ctrl.ts b/public/app/features/org/user_group_details_ctrl.ts index 357ac84651e..a630403bd85 100644 --- a/public/app/features/org/user_group_details_ctrl.ts +++ b/public/app/features/org/user_group_details_ctrl.ts @@ -9,7 +9,7 @@ export default class UserGroupDetailsCtrl { navModel: any; constructor(private $scope, private $http, private backendSrv, private $routeParams, navModelSrv) { - this.navModel = navModelSrv.getOrgNav(3); + this.navModel = navModelSrv.getNav('cfg', 'users'); this.get(); } diff --git a/public/app/features/org/user_groups_ctrl.ts b/public/app/features/org/user_groups_ctrl.ts index da1f767acd5..fdddd68255f 100644 --- a/public/app/features/org/user_groups_ctrl.ts +++ b/public/app/features/org/user_groups_ctrl.ts @@ -15,7 +15,7 @@ export class UserGroupsCtrl { /** @ngInject */ constructor(private $scope, private $http, private backendSrv, private $location, navModelSrv) { - this.navModel = navModelSrv.getOrgNav(3); + this.navModel = navModelSrv.getNav('cfg', 'users'); this.get(); } diff --git a/public/sass/components/_navbar.scss b/public/sass/components/_navbar.scss index 5f79ed722a2..588663ff24f 100644 --- a/public/sass/components/_navbar.scss +++ b/public/sass/components/_navbar.scss @@ -3,6 +3,7 @@ display: block; overflow: visible; position: relative; + margin-left: $side-menu-width; } .navbar-inner { @@ -10,12 +11,11 @@ padding-right: $spacer; background-color: $navbarBackground; border-bottom: $navbarBorder; - margin-left: $side-menu-width; @include clearfix(); } .sidemenu-open { - .navbar-inner { + .navbar { margin-left: 0; } } @@ -61,46 +61,6 @@ background-color: $navbarLinkBackgroundActive; } -.navbar-brand-btn { - display: block; - margin-bottom: 3rem; - background-color: $side-menu-bg; - padding: 0.4rem 1.0rem 0.4rem 0.65rem; - min-height: $navbarHeight; - - .fa-caret-down { - font-size: 70%; - } - - &:hover { - background: $navbarButtonBackgroundHighlight; - } - - img { - width: 30px; - position: relative; - top: -1px; - } - - .navbar-brand-btn-background { - display: inline-block; - border: 1px solid $body-bg; - padding: 4px; - border-radius: 50%; - background: $iconContainerBackground; - width: 40px; - height: 40px; - } - - .icon-gf-grafana_wordmark { - font-size: 21px; - position: relative; - top: 6px; - padding-left: 5px; - display: none; - } -} - .navbar-page-btn-wrapper { float: left; &:hover { diff --git a/public/sass/components/_sidemenu.scss b/public/sass/components/_sidemenu.scss index 14fbff54713..a17d0056c3b 100644 --- a/public/sass/components/_sidemenu.scss +++ b/public/sass/components/_sidemenu.scss @@ -1,14 +1,10 @@ - - .sidemenu { position: fixed; - height: 30px; - display: flex; flex-flow: column; flex-direction: column; width: $side-menu-width; - background-color: $side-menu-bg; + background: $navbarBackground; z-index: 1; a:focus { @@ -18,6 +14,7 @@ .sidemenu-open { .sidemenu { + background: $side-menu-bg; position: initial; height: auto; } @@ -28,6 +25,7 @@ } .sidemenu__top { + padding-top: 3rem; flex-grow: 1; display: none; } @@ -153,8 +151,6 @@ li.sidemenu-org-switcher { .sidemenu__logo { display: block; - margin-bottom: 3rem; - background-color: $side-menu-bg; padding: 0.4rem 1.0rem 0.4rem 0.65rem; min-height: $navbarHeight; diff --git a/public/sass/components/_view_states.scss b/public/sass/components/_view_states.scss index e9698be64b2..0b9fa38e636 100644 --- a/public/sass/components/_view_states.scss +++ b/public/sass/components/_view_states.scss @@ -38,7 +38,6 @@ } // navbar buttons - .navbar-brand-btn, .navbar-inner { border-color: transparent; background: transparent; @@ -52,7 +51,7 @@ .navbar-page-btn { border-color: transparent; background: transparent; - transform: translate3d(-50px, 0, 0); + transform: translate3d(-40px, 0, 0); transition: all 1.5s ease-in-out 1s; .icon-gf { opacity: 0;