46 lines
1.2 KiB
JavaScript
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);
|
|
})();
|