mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-30 23:55:34 +00:00
(feat) you can now select your alternate avatar
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user