diff options
Diffstat (limited to 'moonv4/moon_gui/static/app/authentication')
-rw-r--r-- | moonv4/moon_gui/static/app/authentication/authentication.controller.js | 54 | ||||
-rw-r--r-- | moonv4/moon_gui/static/app/authentication/authentication.tpl.html | 28 |
2 files changed, 82 insertions, 0 deletions
diff --git a/moonv4/moon_gui/static/app/authentication/authentication.controller.js b/moonv4/moon_gui/static/app/authentication/authentication.controller.js new file mode 100644 index 00000000..d3510fed --- /dev/null +++ b/moonv4/moon_gui/static/app/authentication/authentication.controller.js @@ -0,0 +1,54 @@ +/** + * @author Samy Abdallah + */ +(function() { + + 'use strict'; + + angular + .module('moon') + .controller('AuthenticationController', AuthenticationController); + + AuthenticationController.$inject = ['authenticationService', '$translate', 'alertService', '$state', '$rootScope']; + + function AuthenticationController(authenticationService, $translate, alertService, $state, $rootScope) { + + var vm = this; + + vm.login = login; + vm.loading = false; + + vm.credentials = { + username : '', + password : '' + }; + + activate(); + + function activate(){ + if($rootScope.connected){ + $state.go('moon.dashboard'); + } + } + + function login(){ + vm.loading = true; + authenticationService.Login(vm.credentials, loginSuccess, loginError); + } + + function loginSuccess() { + $translate('moon.login.success').then( function(translatedValue) { + alertService.alertSuccess(translatedValue); + $state.go('moon.dashboard'); + vm.loading = false; + }); + } + + function loginError(reason) { + $translate('moon.login.error', { errorCode: reason.status }).then( function(translatedValue) { + alertService.alertError(translatedValue); + vm.loading = false; + }); + } + } +})();
\ No newline at end of file diff --git a/moonv4/moon_gui/static/app/authentication/authentication.tpl.html b/moonv4/moon_gui/static/app/authentication/authentication.tpl.html new file mode 100644 index 00000000..77d1646b --- /dev/null +++ b/moonv4/moon_gui/static/app/authentication/authentication.tpl.html @@ -0,0 +1,28 @@ +<div class="col-md-6 col-md-offset-3"> + + <h2 data-translate="moon.login.titlePage">Login</h2> + + <form name="form" ng-submit="form.$valid && auth.login()" novalidate> + + <div class="form-group" ng-class="{ 'has-error': form.$submitted && form.username.$invalid }"> + <label for="username" data-translate="moon.login.username" >Username</label> + <input type="text" id="username" name="username" class="form-control" ng-model="auth.credentials.username" required /> + <div ng-messages="form.$submitted && form.username.$error" class="help-block"> + <div ng-message="required" data-translate="moon.login.check.username.required" >Username is required</div> + </div> + </div> + + <div class="form-group" ng-class="{ 'has-error': form.$submitted && form.password.$invalid }"> + <label for="password" data-translate="moon.login.password" >Password</label> + <input type="password" id="password" name="password" class="form-control" ng-model="auth.credentials.password" required /> + <div ng-messages="form.$submitted && form.password.$error" class="help-block"> + <div ng-message="required" data-translate="moon.login.check.password.required">Password is required</div> + </div> + </div> + + <div class="form-group"> + <button ng-disabled="auth.loading" class="btn btn-primary" data-translate="moon.login.login" >Login</button> + <img ng-if="auth.loading" src="assets/img/ajax-loader.gif" /> + </div> + </form> +</div>
\ No newline at end of file |