sogo/UI/WebServerResources/js/Common/Gravatar.service.js

46 lines
1.2 KiB
JavaScript

/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
(function() {
'use strict';
/**
* Gravatar - A service to build the Gravatar URL for an email address
* @memberof SOGo.Common
* @param {string} email
* @param {number} [size] - the size of the image
* @param {string} alternate avatar to use (none, identicon, monsterid, wavatar, retro)
* @ngInject
*/
function Gravatar() {
return function(email, size, alternate_avatar, options) {
var x, y, hash, s = size, a = alternate_avatar;
if (!email) {
return '';
}
x = email.indexOf('<');
if (x >= 0) {
y = email.indexOf('>', x);
if (y > x)
email = email.substring(x+1,y);
}
if (!size) {
s = 48; // default to 48 pixels
}
hash = email.md5();
if (!a || a == "none") {
if (options && options.no_404)
alternate_avatar = "mm"; // mystery man alternative
else
alternate_avatar = "404";
}
return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=' + alternate_avatar;
};
}
angular
.module('SOGo.Common')
.factory('Gravatar', Gravatar);
})();