d4872cda |
Xmpp.Views.Contacts ||= {}
|
4b5bb9c5 |
class Xmpp.Views.Contacts.MeView extends Backbone.View |
d4872cda |
template: JST["backbone/templates/contacts/me"]
el: $('#js-me')
|
c4a1e746 |
events:
'click .js-click-edit': (e) -> @editMyStatus(e)
'keypress .js-click-edit': (e) -> @confirmMyStatus(e)
'click .js-change-state': (e) -> @openChangeState(e)
'click .js-state-clickable': (e) -> @confirmChangeState(e)
|
d4872cda |
initialize: () ->
_.bindAll(this)
@model.on('change', @updateContact, this)
updateContact: (me) ->
@model = me
@render()
render: ->
contact = @model.toJSON()
$(@el).html(@template(contact)) |
c4a1e746 |
this
editMyStatus: (e) ->
$this = $(e.currentTarget)
if ($this.hasClass('empty'))
$this.val('')
if (! $this.hasClass('editing'))
$this.removeClass('empty')
.addClass('editing')
confirmMyStatus: (e) ->
if (e.which != 13 && e.which != 10)
return
$this = $(e.currentTarget)
if ($this.val() == '')
$this.removeClass('editing')
.addClass('empty')
.val(I18n.t('chat.roster.change_status_msg'))
else
$this.removeClass('editing')
$this.blur()
App.Com.updateMyStatus(@_getStatusMessage(), @_getState())
openChangeState: (e) ->
$this = $(e.currentTarget)
$this.addClass('editing')
.find('.hidden').removeClass('hidden')
$('.rolldown').removeClass('js-change-state')
confirmChangeState: (e) ->
$this = $(e.currentTarget)
$('.rolldown').removeClass('editing')
.addClass('js-change-state')
.children().addClass('hidden')
$('.rolldown').find('a').removeClass('active')
$this.removeClass('hidden')
.find('a').addClass('active')
App.Com.updateMyStatus(@_getStatusMessage(), @_getState())
_getStatusMessage: ->
if $('.js-click-edit').hasClass('empty')
return ''
else
$('.js-click-edit').val()
_getState: ->
$('.js-state-clickable:not(.hidden)').data('state') |