user-avatar.js 929 B

12345678910111213141516171819202122232425262728293031323334353637
  1. (function (Misago) {
  2. 'use strict';
  3. var avatar = {
  4. defaultSize: 100,
  5. src: function(user, size, _) {
  6. var src = _.baseUrl + 'user-avatar/';
  7. if (user && user.id) {
  8. // just avatar hash, size and user id
  9. src += user.avatar_hash + '/' + size + '/' + user.id + '.png';
  10. } else {
  11. // just append avatar size to file to produce no-avatar placeholder
  12. src += size + '.png';
  13. }
  14. return src;
  15. },
  16. view: function(ctrl, user, size, _) {
  17. var finalSize = size || this.defaultSize;
  18. return m('img', {
  19. alt: user && user.username ? user.username : gettext("Unregistered"),
  20. width: finalSize,
  21. height: finalSize,
  22. src: this.src(user, finalSize, _)
  23. });
  24. }
  25. };
  26. Misago.addService('component:user-avatar', function(_) {
  27. _.component('user-avatar', avatar);
  28. },
  29. {
  30. after: 'components'
  31. });
  32. } (Misago.prototype));