The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/lib/avatar.coffee

34 lines
977 B

@getAvatarUrlFromUsername = (username) ->
key = "avatar_random_#{username}"
random = Session.keys[key] or 0
if not username?
return
return Meteor.absoluteUrl "avatar/#{username}.jpg?_dc=#{random}"
Blaze.registerHelper 'avatarUrlFromUsername', getAvatarUrlFromUsername
@getAvatarAsPng = (username, cb) ->
image = new Image
image.src = getAvatarUrlFromUsername(username)
image.onload = ->
canvas = document.createElement('canvas')
canvas.width = image.width
canvas.height = image.height
context = canvas.getContext('2d')
context.drawImage(image, 0, 0)
cb canvas.toDataURL('image/png')
image.onerror = ->
cb ''
@updateAvatarOfUsername = (username) ->
key = "avatar_random_#{username}"
Session.set key, Math.round(Math.random() * 1000)
for key, room of RoomManager.openedRooms
url = getAvatarUrlFromUsername username
$(room.dom).find(".message[data-username='#{username}'] .avatar-image").css('background-image', "url(#{url})");
return true