all files / app/players/ playerName.directive.js

100% Statements 30/30
100% Branches 15/15
100% Functions 7/7
100% Lines 30/30
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                              31×                         31×     44×   44×   44× 44×     150× 150× 150× 18×   132× 150×     150× 150× 110× 150×       104× 104× 46× 46×   104×            
/**
 * @ngdoc directive
 * @name app.matches.directive:feMatchOpponentPlayer
 * @restrict E
 * @description
 * Display a player name
 *
 */
 
(function () {
  'use strict';
 
  angular
    .module('app.players')
    .directive('fePlayerName', directiveFunc);
 
  /** @ngInject */
  function directiveFunc() {
    var directive = {
      restrict: 'E',
      templateUrl: 'app/players/playerName.html',
      controller: Controller,
      controllerAs: 'vm',
      bindToController: true,
      scope: {
        player: '=',
        punctuation: '@',
        shortPlayerName: '@'
      }
    };
 
    return directive;
  }
 
  function Controller() {
    var vm = this;
 
    activate();
 
    function activate() {
      vm.playerName = playerName;
      vm.suffix = suffix;
    }
 
    function playerName() {
      var player = vm.player;
      var result;
      if (toBool(vm.shortPlayerName) && player.shortName)
        result = player.shortName;
      else
        result = player.name;
      return result;
 
      // Handle boolean attribute passed as "true" or "false"
      function toBool(value) {
        var result = value;
        if (angular.isString(result))
          result = result === 'true';
        return result;
      }
    }
 
    function suffix() {
      var punctuation = vm.punctuation || '';
      if (punctuation) {
        var name = playerName();
        if (name && punctuation == '.' && name.charAt(name.length - 1) == '.')
          punctuation = '';
      }
      return punctuation;
    }
  }
 
 
})();