diff --git a/public/app/controllers/loginCtrl.js b/public/app/controllers/loginCtrl.js index cda5a085fd3..767f788cea3 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 d26827248ce..c88f89bbf7f 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 99bbcccf156..c7d1afda522 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'); + 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'); }); });