discourse/app/assets/javascripts/discourse/lib/avatar-template.js.es6
Robin Ward 9974a26c47 FEATURE: Can specify a list of default_avatars urls.
These new avatars will be used by new users until they upload their own
avatars. If left blank, letter avatars are used.
2015-03-03 16:19:29 -05:00

35 lines
1.1 KiB
JavaScript

let _splitAvatars;
function defaultAvatar(username) {
const defaultAvatars = Discourse.SiteSettings.default_avatars;
if (defaultAvatars && defaultAvatars.length) {
_splitAvatars = _splitAvatars || defaultAvatars.split("\n");
if (_splitAvatars.length) {
let hash = 0;
for (let i = 0; i<username.length; i++) {
hash = ((hash<<5)-hash) + username.charCodeAt(i);
hash |= 0;
}
return _splitAvatars[Math.abs(hash) % _splitAvatars.length];
}
}
return Discourse.getURLWithCDN("/letter_avatar/" +
username.toLowerCase() +
"/{size}/" +
Discourse.LetterAvatarVersion + ".png");
}
export default function(username, uploadedAvatarId) {
if (uploadedAvatarId) {
return Discourse.getURLWithCDN("/user_avatar/" +
Discourse.BaseUrl +
"/" +
username.toLowerCase() +
"/{size}/" +
uploadedAvatarId + ".png");
}
return defaultAvatar(username);
}