all files / app/auth/ loginForm.directive.js

100% Statements 19/19
100% Branches 0/0
100% Functions 7/7
100% Lines 19/19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70                            12×                   12×       12×   12×   12× 12× 12×   12×                                            
/**
 * @ngdoc directive
 * @name app.auth.directive:feLoginForm
 * @restrict E
 * @description
 * Form for logging in.  The form has a username field and a password field.
 */
 
(function () {
  'use strict';
 
  angular
    .module('app.auth')
    .directive('feLoginForm', directive);
 
  /** @ngInject */
  function directive() {
    var directive = {
      restrict: 'E',
      templateUrl: 'app/auth/loginForm.html',
      scope: {
      },
      controller: Controller,
      controllerAs: 'vm',
      bindToController: true
    };
 
    return directive;
  }
 
  /** @ngInject */
  function Controller(sessionResource, userCredentials, errorsHelper, $log) {
    var vm = this;
 
    activate();
 
    function activate() {
      vm.entity = {username: "", password: ""};
      vm.errors = {};
      vm.submit = updateEntity;
 
      errorsHelper(vm,
        {
          names: [
            'username',
            'password'
          ]
        });
    }
 
    function updateEntity() {
      var body = {
        session: {
          username: vm.entity.username,
          password: vm.entity.password
        }
      };
      sessionResource.getSession().login(body,
        function (response) {
          userCredentials.setCredentials(response.username, response.auth_token);
        },
        function (response) {
          $log.error('auth error ' + response.status + " " + response.statusText);
          vm.errors = vm.errorsOfResponse(response);
        }
      );
    }
  }
})();