From 8aef297e715358edd34ebb9c386ae7d79f2107ce Mon Sep 17 00:00:00 2001 From: Anthony Woods Date: Tue, 5 May 2015 10:43:19 +0800 Subject: [PATCH] show sidemenu when admin user logs in the first time. #54 --- public/app/controllers/loginCtrl.js | 2 +- public/app/routes/dashLoadControllers.js | 4 +++- public/app/services/contextSrv.js | 14 +++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/public/app/controllers/loginCtrl.js b/public/app/controllers/loginCtrl.js index c8856df0690..4a1b46a481c 100644 --- a/public/app/controllers/loginCtrl.js +++ b/public/app/controllers/loginCtrl.js @@ -14,7 +14,7 @@ function (angular, config) { password: '', }; - contextSrv.setSideMenuState(false); + contextSrv.sidemenu = false; $scope.googleAuthEnabled = config.googleAuthEnabled; $scope.githubAuthEnabled = config.githubAuthEnabled; diff --git a/public/app/routes/dashLoadControllers.js b/public/app/routes/dashLoadControllers.js index f85cee09d84..566669312f8 100644 --- a/public/app/routes/dashLoadControllers.js +++ b/public/app/routes/dashLoadControllers.js @@ -36,7 +36,9 @@ function (angular, _, kbn, moment, $) { }); - module.controller('DashFromSnapshotCtrl', function($scope, $routeParams, backendSrv) { + module.controller('DashFromSnapshotCtrl', function($scope, $routeParams, backendSrv, contextSrv) { + //don't show the sidemenu in snapshots. + contextSrv.sidemenu = false; backendSrv.get('/api/snapshots/' + $routeParams.key).then(function(result) { $scope.initDashboard(result, $scope); }, function() { diff --git a/public/app/services/contextSrv.js b/public/app/services/contextSrv.js index 700b7f7390c..f08dff56db8 100644 --- a/public/app/services/contextSrv.js +++ b/public/app/services/contextSrv.js @@ -45,7 +45,19 @@ function (angular, _, store, config) { this.user = new User(); this.isSignedIn = this.user.isSignedIn; this.isGrafanaAdmin = this.user.isGrafanaAdmin; - this.sidemenu = store.getBool('grafana.sidemenu', true); + var sidemenuDefault = false; + if (this.hasRole('Admin')) { + sidemenuDefault = true; + } + this.sidemenu = store.getBool('grafana.sidemenu', sidemenuDefault); + if (this.isSignedIn && !store.exists('grafana.sidemenu')) { + // If the sidemnu has never been set before, set it to false. + // This will result in this.sidemenu and the localStorage grafana.sidemenu + // to be out of sync if the user has an admin role. But this is + // intentional and results in the user seeing the sidemenu only on + // their first login. + store.set('grafana.sidemenu', false); + } this.isEditor = this.hasRole('Editor') || this.hasRole('Admin'); }); });