Workin on login user state

This commit is contained in:
Torkel Ödegaard 2014-09-17 15:25:19 +02:00
parent 4f798cfe56
commit 31398718e5
4 changed files with 32 additions and 22 deletions

View File

@ -11,10 +11,8 @@ function (angular, config, _, $, store) {
var module = angular.module('grafana.controllers');
module.controller('GrafanaCtrl', function($scope, alertSrv, grafanaVersion, $rootScope) {
$scope.grafanaVersion = grafanaVersion[0] === '@' ? 'master' : grafanaVersion;
$scope.consoleEnabled = store.getBool('grafanaConsole');
$scope.showProSideMenu = store.getBool('grafanaProSideMenu');
$scope.grafana = {};
$rootScope.profilingEnabled = store.getBool('profilingEnabled');
$rootScope.performance = { loadStart: new Date().getTime() };
@ -25,25 +23,27 @@ function (angular, config, _, $, store) {
if ($rootScope.profilingEnabled) { $scope.initProfiling(); }
$scope.dashAlerts = alertSrv;
$scope.grafana = { style: 'dark' };
$scope.grafana.style = 'dark';
$scope.grafana.sidemenu = store.getBool('grafana.sidemenu');
if (window.grafanaBootData.user.login) {
$scope.grafana.user = window.grafanaBootData.user;
}
$scope.onAppEvent('logged-out', function() {
$scope.showProSideMenu = false;
$scope.grafana.user = {};
});
$scope.onAppEvent('logged-in', function() {
$scope.showProSideMenu = store.getBool('grafanaProSideMenu');
$scope.onAppEvent('logged-in', function(evt, user) {
$scope.grafana.sidemenu = store.getBool('grafana.sidemenu');
$scope.grafana.user = user;
});
};
$scope.toggleProSideMenu = function() {
$scope.showProSideMenu = !$scope.showProSideMenu;
store.set('grafanaProSideMenu', $scope.showProSideMenu);
};
$scope.toggleConsole = function() {
$scope.consoleEnabled = !$scope.consoleEnabled;
store.set('grafanaConsole', $scope.consoleEnabled);
$scope.grafana.sidemenu = !$scope.grafana.sidemenu;
store.set('grafana.sidemenu', $scope.grafana.sidemenu);
};
$rootScope.onAppEvent = function(name, callback) {

View File

@ -8,6 +8,7 @@ function (angular) {
module.controller('LoginCtrl', function($scope, $http, $location, $routeParams, alertSrv) {
$scope.loginModel = {};
$scope.grafana.sidemenu = false;
$scope.init = function() {
if ($routeParams.logout) {
@ -20,6 +21,7 @@ function (angular) {
alertSrv.set('Logged out!', '', 'success', 3000);
$scope.emitAppEvent('logged-out');
$location.search({});
}, function() {
alertSrv.set('Logout failed:', 'Unexpected error', 'error', 3000);
@ -33,8 +35,8 @@ function (angular) {
return;
}
$http.post('/login', $scope.loginModel).then(function() {
$scope.emitAppEvent('logged-in');
$http.post('/login', $scope.loginModel).then(function(results) {
$scope.emitAppEvent('logged-in', results.data.user);
$location.path('/');
}, function(err) {
if (err.status === 401) {

View File

@ -1,8 +1,13 @@
<section class="pro-sidemenu-items">
<a class="pro-sidemenu-link" href="/login?logout">
<i class="icon-lock"></i>
logout
</a>
<div class="dropdown">
<a class="pro-sidemenu-link pointer" data-toggle="dropdown">
<i class="icon-user"></i>
{{grafana.user.login}}
</a>
<ul class="dropdown-menu">
<li><a href="/login?logout">Logout</a>
</ul>
</div>
<a class="pro-sidemenu-link" href="/dashboard/db/home">
<i class="icon-th-large"></i>
Dashboards
@ -27,6 +32,11 @@
<i class="icon-user"></i>
User accounts
</a>
<a class="pro-sidemenu-link" href="/login?logout">
<i class="icon-signout"></i>
Sign out
</a>
</section>
</div>

View File

@ -21,11 +21,9 @@ function (angular) {
module.controller('RegisterCtrl', function($scope, $http, $location, $routeParams) {
$scope.loginModel = {};
$scope.grafana.sidemenu = false;
$scope.init = function() {
if ($routeParams.logout) {
$scope.logout();
}
};
$scope.register = function() {