(feat) you can now select your alternate avatar

This commit is contained in:
Ludovic Marcotte
2015-11-27 16:04:12 -05:00
parent 39455a283a
commit 403d6fa54f
9 changed files with 71 additions and 20 deletions
@@ -8,10 +8,11 @@
* @memberof SOGo.Common
* @param {string} email
* @param {number} [size] - the size of the image
* @param {string} alternate avatar to use
* @ngInject
*/
function Gravatar() {
return function(email, size) {
return function(email, size, alternate_avatar) {
var x, y, hash, s = size;
if (!email) {
return '';
@@ -27,10 +28,10 @@
}
hash = email.md5();
return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=404';
//return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=retro';
// return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=identicon';
// return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=wavatar';
if (alternate_avatar == "none")
alternate_avatar = "404";
return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=' + alternate_avatar;
};
}
@@ -48,25 +48,28 @@
/**
* @ngInject
*/
sgAvatarImageController.$inject = ['$scope', '$element', 'Gravatar'];
function sgAvatarImageController($scope, $element, Gravatar) {
sgAvatarImageController.$inject = ['$scope', '$element', 'Preferences', 'Gravatar'];
function sgAvatarImageController($scope, $element, Preferences, Gravatar) {
var vm = this;
$scope.$watch('vm.email', function(email) {
var img = $element.find('img')[0];
if (!email && !vm.genericAvatar) {
// If no email is specified, insert a generic avatar
vm.insertGenericAvatar(img);
}
else if (email && !vm.url) {
if (vm.genericAvatar) {
// Remove generic avatar and restore visibility of image
vm.genericAvatar.parentNode.removeChild(vm.genericAvatar);
delete vm.genericAvatar;
img.classList.remove('ng-hide');
Preferences.ready().then(function() {
var img = $element.find('img')[0];
if (!email && !vm.genericAvatar) {
// If no email is specified, insert a generic avatar
vm.insertGenericAvatar(img);
}
vm.url = Gravatar(email, vm.size);
}
else if (email && !vm.url) {
if (vm.genericAvatar) {
// Remove generic avatar and restore visibility of image
vm.genericAvatar.parentNode.removeChild(vm.genericAvatar);
delete vm.genericAvatar;
img.classList.remove('ng-hide');
}
vm.url = Gravatar(email, vm.size, Preferences.defaults.SOGoAlternateAvatar);
}
});
});
// If sg-src is defined, watch the expression for the URL of a local image