diff --git a/src/app/controllers/grafanaCtrl.js b/src/app/controllers/grafanaCtrl.js index 130e07ead8d..d2047cfef30 100644 --- a/src/app/controllers/grafanaCtrl.js +++ b/src/app/controllers/grafanaCtrl.js @@ -45,12 +45,6 @@ function (angular, config, _, $, store) { $scope.grafana.sidemenu = false; $scope.grafana.user = {}; }); - - $scope.onAppEvent('logged-in', function(evt, user) { - $scope.grafana.sidemenu = store.getBool('grafana.sidemenu', true); - $scope.grafana.user = user; - store.set('grafana.sidemenu', $scope.grafana.sidemenu); - }); }; $scope.initDashboard = function(dashboardData, viewScope) { diff --git a/src/app/controllers/loginCtrl.js b/src/app/controllers/loginCtrl.js index b0787d35b16..9cc28d75ddb 100644 --- a/src/app/controllers/loginCtrl.js +++ b/src/app/controllers/loginCtrl.js @@ -8,8 +8,15 @@ function (angular, config) { var module = angular.module('grafana.controllers'); module.controller('LoginCtrl', function($scope, backendSrv, $location, $routeParams, alertSrv) { - $scope.loginModel = {}; + $scope.loginModel = { + user: '', + password: '' + }; + + $scope.newUser = {}; + $scope.grafana.sidemenu = false; + $scope.mode = 'login'; // build info view model $scope.buildInfo = { @@ -18,12 +25,35 @@ function (angular, config) { buildstamp: new Date(config.buildInfo.buildstamp * 1000) }; + $scope.submit = function() { + if ($scope.mode === 'login') { + $scope.login(); + } else { + $scope.signUp(); + } + }; + $scope.init = function() { if ($routeParams.logout) { $scope.logout(); } }; + $scope.signUp = function() { + if ($scope.mode === 'login') { + $scope.mode = 'signup'; + return; + } + + if (!$scope.loginForm.$valid) { + return; + } + + backendSrv.put('/api/user/signup', $scope.newUser).then(function() { + window.location.href = config.appSubUrl + '/'; + }); + }; + $scope.logout = function() { backendSrv.post('/logout').then(function() { alertSrv.set('Logged out!', '', 'success', 3000); @@ -33,14 +63,17 @@ function (angular, config) { }; $scope.login = function() { + if ($scope.mode === 'signup') { + $scope.mode = 'login'; + return; + } delete $scope.loginError; if (!$scope.loginForm.$valid) { return; } - backendSrv.post('/login', $scope.loginModel).then(function(results) { - $scope.appEvent('logged-in', results.user); + backendSrv.post('/login', $scope.loginModel).then(function() { window.location.href = config.appSubUrl + '/'; }); }; diff --git a/src/app/partials/login.html b/src/app/partials/login.html index 3887a46197a..a6e5aa9634e 100644 --- a/src/app/partials/login.html +++ b/src/app/partials/login.html @@ -1,4 +1,3 @@ -