all files / app/header/ header.controller.js

100% Statements 31/31
87.5% Branches 7/8
100% Functions 8/8
100% Lines 31/31
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94                          20×   20×                             20× 20× 20× 20× 20×     20×     20×     20×                 14×   12×   12×                           14×            
/**
 * @ngdoc controller
 * @name app.header.controller:HeaderController
 * @description
 * Controller for navbar and login form
 */
 
(function () {
  'use strict';
 
  angular
    .module('app.header')
    .controller('HeaderController', Controller);
 
  /** @ngInject */
  function Controller(authHelper, $scope, autoFocus, editInProgress, toastrHelper) {
    var vm = this;
 
    activate();
 
    /**
     * @ngdoc function
     * @name activate
     * @methodOf app.header.controller:HeaderController
     * @description
     * Initialize the controller:
     * * Add toastr support
     * * * To show toast when login or logout
     * * Add collapse() and isCollapsed
     * * * To manage the responsive navbar menu
     * * Add auth support
     * * * To be informed on login or logout
     */
    function activate() {
      vm.isCollapsed = true;
      vm.createLoginForm = true;
      vm.showingLogin = showingLogin;
      vm.showLogin = showLogin;
      vm.collapse = collapse;
 
      // Add toastr support
      toastrHelper(vm, $scope);
 
      // Add loggedIn property
      authHelper(vm, $scope, loggedInChanged);
 
      // close responsive drop down if the user is prompted to close an editor
      editInProgress.registerOnConfirmed($scope,
        function () {
          collapse();
        });
    }
 
    function showLogin(open) {
      vm.clearToast();
      vm.createLoginForm = open;
      if (open)
        autoFocus($scope, 'username')
    }
 
    function showingLogin(showing) {
      Eif (showing)
        vm.createLoginForm = true;
    }
 
    function loggedInChanged(loading) {
      if (!loading) {  // Ignore change during applicaiton load
        // Close menu after login or logout
        collapse();
        // Popup message
        if (vm.loggedIn)
          vm.showToast(
            'Welcome ' + vm.username + '.' +
            '  You can view and modify players, teams and matches.' +
            '  You can also keep score.',
            'You are logged in');
        else
          vm.showToast(
            'You can no longer modify players, teams or matches' +
            ', or keep score.' +
            '  However, you can view all.',
            'You are logged out');
      }
 
    }
 
    function collapse() {
      vm.isCollapsed = true;
    }
 
  }
})();