diff --git a/src/app/controllers/p_grafanaCtrl.js b/src/app/controllers/p_grafanaCtrl.js index 2793eabafdf..e9484d76d64 100644 --- a/src/app/controllers/p_grafanaCtrl.js +++ b/src/app/controllers/p_grafanaCtrl.js @@ -3,8 +3,9 @@ define([ 'config', 'lodash', 'jquery', + 'store', ], -function (angular, config, _, $) { +function (angular, config, _, $, store) { "use strict"; var module = angular.module('grafana.controllers'); @@ -12,30 +13,37 @@ function (angular, config, _, $) { module.controller('GrafanaCtrl', function($scope, alertSrv, grafanaVersion, $rootScope) { $scope.grafanaVersion = grafanaVersion[0] === '@' ? 'master' : grafanaVersion; - $scope.consoleEnabled = (window.localStorage && window.localStorage.grafanaConsole === 'true'); + $scope.consoleEnabled = store.getBool('grafanaConsole'); + $scope.showProSideMenu = store.getBool('grafanaProSideMenu'); - $rootScope.profilingEnabled = (window.localStorage && window.localStorage.profilingEnabled === 'true'); + $rootScope.profilingEnabled = store.getBool('profilingEnabled'); $rootScope.performance = { loadStart: new Date().getTime() }; $scope.init = function() { $scope._ = _; - if ($rootScope.profilingEnabled) { - $scope.initProfiling(); - } + + if ($rootScope.profilingEnabled) { $scope.initProfiling(); } $scope.dashAlerts = alertSrv; - $scope.grafana = { - style: 'dark' - }; + $scope.grafana = { style: 'dark' }; + + $scope.onAppEvent('logged-out', function() { + $scope.showProSideMenu = false; + }); + + $scope.onAppEvent('logged-in', function() { + $scope.showProSideMenu = store.getBool('grafanaProSideMenu'); + }); }; $scope.toggleProSideMenu = function() { $scope.showProSideMenu = !$scope.showProSideMenu; + store.set('grafanaProSideMenu', $scope.showProSideMenu); }; $scope.toggleConsole = function() { $scope.consoleEnabled = !$scope.consoleEnabled; - window.localStorage.grafanaConsole = $scope.consoleEnabled ? 'true' : 'false'; + store.set('grafanaConsole', $scope.consoleEnabled); }; $rootScope.onAppEvent = function(name, callback) { diff --git a/src/app/controllers/p_loginCtrl.js b/src/app/controllers/p_loginCtrl.js index 1c729a843d7..793cd357844 100644 --- a/src/app/controllers/p_loginCtrl.js +++ b/src/app/controllers/p_loginCtrl.js @@ -6,27 +6,48 @@ function (angular) { var module = angular.module('grafana.controllers'); - module.controller('LoginCtrl', function($scope, $http, $location) { + module.controller('LoginCtrl', function($scope, $http, $location, $routeParams, alertSrv) { $scope.loginModel = {}; + $scope.init = function() { + if ($routeParams.logout) { + $scope.logout(); + } + }; + + $scope.logout = function() { + $http.post('/logout').then(function() { + + alertSrv.set('Logged out!', '', 'success', 3000); + $scope.emitAppEvent('logged-out'); + + }, function() { + alertSrv.set('Logout failed:', 'Unexpected error', 'error', 3000); + }); + }; + $scope.login = function() { delete $scope.loginError; + if (!$scope.loginForm.$valid) { return; } $http.post('/login', $scope.loginModel).then(function() { + $scope.emitAppEvent('logged-in'); $location.path('/'); }, function(err) { if (err.status === 401) { $scope.loginError = "Username or password is incorrect"; } else { - $scope.loginErro = "Unexpected error"; + $scope.loginError = "Unexpected error"; } }); }; + $scope.init(); + }); }); diff --git a/src/app/partials/dashboard.html b/src/app/partials/dashboard.html index 1593501adf8..acfd80518e9 100644 --- a/src/app/partials/dashboard.html +++ b/src/app/partials/dashboard.html @@ -1,6 +1,6 @@
-
+