| ... | ... |
@@ -41,7 +41,12 @@ this.App = |
| 41 | 41 |
|
| 42 | 42 |
getMe: -> |
| 43 | 43 |
App.Com.trigger(event: 'app.roster.myself', success: (response) -> |
| 44 |
- App.Models.me = new Xmpp.Models.Me(jid: response.jid, name: response.vcard.name, status: response.status) |
|
| 44 |
+ App.Models.me = new Xmpp.Models.Me( |
|
| 45 |
+ jid: response.jid |
|
| 46 |
+ name: response.vcard.name |
|
| 47 |
+ status: response.status |
|
| 48 |
+ avatar: response.vcard.avatar |
|
| 49 |
+ ) |
|
| 45 | 50 |
) |
| 46 | 51 |
|
| 47 | 52 |
_setupBackboneComponents: -> |
| ... | ... |
@@ -6,6 +6,7 @@ class Xmpp.Models.Contact extends Xmpp.Models.Model |
| 6 | 6 |
name: '' |
| 7 | 7 |
status: 'offline' |
| 8 | 8 |
message: '' |
| 9 |
+ avatar: '' |
|
| 9 | 10 |
|
| 10 | 11 |
initialize: -> |
| 11 | 12 |
_.bindAll(this) |
| ... | ... |
@@ -33,4 +34,4 @@ class Xmpp.Collections.ContactsCollection extends Backbone.Collection |
| 33 | 33 |
@get(response.jid).set(message: response.status.message, status: response.status.status) |
| 34 | 34 |
|
| 35 | 35 |
udpateVcard: (response) -> |
| 36 |
- @get(response.jid).set(name: response.vcard.name) |
|
| 37 | 36 |
\ No newline at end of file |
| 37 |
+ @get(response.jid).set(name: response.vcard.name, avatar: response.vcard.avatar) |
|
| 38 | 38 |
\ No newline at end of file |
| ... | ... |
@@ -6,9 +6,10 @@ class Xmpp.Models.Me extends Xmpp.Models.Model |
| 6 | 6 |
name: '' |
| 7 | 7 |
status: 'online' |
| 8 | 8 |
message: '' |
| 9 |
+ avatar: '' |
|
| 9 | 10 |
|
| 10 | 11 |
initialize: -> |
| 11 | 12 |
_.bindAll(this) |
| 12 | 13 |
|
| 13 |
- @view = new Xmpp.Views.Contacts.Me(model: this) |
|
| 14 |
+ @view = new Xmpp.Views.Contacts.MeView(model: this) |
|
| 14 | 15 |
@view.render() |
| 15 | 16 |
\ No newline at end of file |
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
.user |
| 2 | 2 |
.avatar.bigger{ title: "#{@jid}" }
|
| 3 |
- %img{ src: 'assets/avatar.png', alt: I18n.t("chat.roster.avatar_alt") }
|
|
| 3 |
+ %img{ src: "#{@avatar || 'assets/avatar.png'}", alt: I18n.t("chat.roster.avatar_alt") }
|
|
| 4 | 4 |
%h1{ title: "#{@jid}"} #{@name }
|
| 5 | 5 |
%h2 #{@message || '<i>'+I18n.t('chat.roster.change_status_msg')+'</i>'}
|
| 6 | 6 |
%h3 |
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
Xmpp.Views.Contacts ||= {}
|
| 2 | 2 |
|
| 3 |
-class Xmpp.Views.Contacts.Me extends Backbone.View |
|
| 3 |
+class Xmpp.Views.Contacts.MeView extends Backbone.View |
|
| 4 | 4 |
template: JST["backbone/templates/contacts/me"] |
| 5 | 5 |
el: $('#js-me')
|
| 6 | 6 |
|
| ... | ... |
@@ -15,6 +15,5 @@ class Xmpp.Views.Contacts.Me extends Backbone.View |
| 15 | 15 |
|
| 16 | 16 |
render: -> |
| 17 | 17 |
contact = @model.toJSON() |
| 18 |
- App.debug contact |
|
| 19 | 18 |
$(@el).html(@template(contact)) |
| 20 | 19 |
this |
| 21 | 20 |
\ No newline at end of file |
| ... | ... |
@@ -62,13 +62,23 @@ |
| 62 | 62 |
|
| 63 | 63 |
.avatar {
|
| 64 | 64 |
float: left; |
| 65 |
+ |
|
| 66 |
+ height: 32px; |
|
| 67 |
+ width: 32px; |
|
| 68 |
+ |
|
| 65 | 69 |
margin-right: 8px; |
| 66 | 70 |
|
| 67 | 71 |
img {
|
| 68 | 72 |
height: 32px; |
| 73 |
+ |
|
| 74 |
+ margin: 0 auto; |
|
| 75 |
+ display: block; |
|
| 69 | 76 |
} |
| 70 | 77 |
|
| 71 | 78 |
&.bigger {
|
| 79 |
+ height: 46px; |
|
| 80 |
+ width: 46px; |
|
| 81 |
+ |
|
| 72 | 82 |
img {
|
| 73 | 83 |
height: 46px; |
| 74 | 84 |
} |
| ... | ... |
@@ -126,7 +126,11 @@ class WsRosterController < WebsocketRails::BaseController |
| 126 | 126 |
client.close() |
| 127 | 127 |
end |
| 128 | 128 |
|
| 129 |
- @storages.each do |storage| |
|
| 129 |
+ @storages_arr.each do |storage| |
|
| 130 |
+ connection_store.delete(storage) |
|
| 131 |
+ end |
|
| 132 |
+ |
|
| 133 |
+ @storages_hash.each do |storage| |
|
| 130 | 134 |
connection_store.delete(storage) |
| 131 | 135 |
end |
| 132 | 136 |
end |
| ... | ... |
@@ -143,7 +147,7 @@ class WsRosterController < WebsocketRails::BaseController |
| 143 | 143 |
vcard = Jabber::Vcard::Helper.get(me, contact_jid) |
| 144 | 144 |
|
| 145 | 145 |
{ name: pull_name_from_vcard(vcard) || contact_jid,
|
| 146 |
- avatar: '' #TODO avatar |
|
| 146 |
+ avatar: vcard["PHOTO/TYPE"] && ('data:' + vcard["PHOTO/TYPE"] + ';base64,' + vcard.photo_binval) || ''
|
|
| 147 | 147 |
} |
| 148 | 148 |
end |
| 149 | 149 |
|