/** * An element which displays an avatar for the given {email,name} or hash. */ angular.module('quay').directive('avatar', function () { var directiveDefinitionObject = { priority: 0, templateUrl: '/static/directives/avatar.html', replace: false, transclude: true, restrict: 'C', scope: { 'hash': '=hash', 'email': '=email', 'name': '=name', 'size': '=size' }, controller: function($scope, $element, AvatarService) { $scope.AvatarService = AvatarService; var refreshHash = function() { if (!$scope.name && !$scope.email) { return; } $scope._hash = AvatarService.computeHash($scope.email, $scope.name); }; $scope.$watch('hash', function(hash) { $scope._hash = hash; }); $scope.$watch('name', refreshHash); $scope.$watch('email', refreshHash); } }; return directiveDefinitionObject; });