| ... | ... |
@@ -8,10 +8,7 @@ |
| 8 | 8 |
#= require _main |
| 9 | 9 |
#= require chat |
| 10 | 10 |
|
| 11 |
-#aa = new Xmpp.Views.Popup.NewAccountView() |
|
| 12 |
-#aa.render(); |
|
| 13 |
- |
|
| 14 |
-App.Com.connect( (connected_jid) -> |
|
| 11 |
+App.Com.connect( -> |
|
| 15 | 12 |
App.Com.initRoster(-> |
| 16 | 13 |
App.Com.startFetchingVcards() |
| 17 | 14 |
App.Com.startPollingRoster() |
| ... | ... |
@@ -2,18 +2,42 @@ Xmpp.Views.Popup ||= {}
|
| 2 | 2 |
|
| 3 | 3 |
class Xmpp.Views.Popup.PopupView extends Backbone.View |
| 4 | 4 |
superTemplate: JST["backbone/templates/popup/popup"] |
| 5 |
- el: $('#js-popup')
|
|
| 5 |
+ el: $('#js-popups')
|
|
| 6 | 6 |
|
| 7 |
- superEvents: |
|
| 8 |
- 'click .close': 'close' |
|
| 7 |
+ @popups = {}
|
|
| 8 |
+ |
|
| 9 |
+ constructor: -> |
|
| 10 |
+ super |
|
| 11 |
+ PopupView.popups[@cid] = this |
|
| 12 |
+ |
|
| 13 |
+ superEvents: -> |
|
| 14 |
+ result = {}
|
|
| 15 |
+ result["click .#{@className} .close"] = 'close'
|
|
| 16 |
+ result |
|
| 9 | 17 |
|
| 10 | 18 |
render: (childHtml) -> |
| 11 |
- $(@el).html(@superTemplate()).append(childHtml) |
|
| 19 |
+ $(@el).find('.popup').hide()
|
|
| 20 |
+ _.each(PopupView.popups, (view) -> |
|
| 21 |
+ view.undelegateEvents() |
|
| 22 |
+ ) |
|
| 23 |
+ |
|
| 24 |
+ thisView = PopupView.popups[@cid] |
|
| 25 |
+ thisView.delegateEvents() |
|
| 26 |
+ |
|
| 27 |
+ $(@el).append(@superTemplate(inside: childHtml, class: @className)) |
|
| 12 | 28 |
|
| 13 | 29 |
close: (e) -> |
| 14 | 30 |
e.preventDefault() |
| 15 |
- @remove() |
|
| 31 |
+ @remove(e) |
|
| 16 | 32 |
|
| 17 |
- remove: -> |
|
| 33 |
+ remove: (e) -> |
|
| 18 | 34 |
@stopListening() |
| 19 |
- $(@el).empty() |
|
| 20 | 35 |
\ No newline at end of file |
| 36 |
+ @undelegateEvents() |
|
| 37 |
+ $(e.currentTarget).closest('.popup').remove()
|
|
| 38 |
+ |
|
| 39 |
+ delete PopupView.popups[@cid] |
|
| 40 |
+ |
|
| 41 |
+ firstFoundView = _.find(PopupView.popups, (view) -> view) # najde prvy view |
|
| 42 |
+ if firstFoundView |
|
| 43 |
+ $(@el).find('.popup').first().show()
|
|
| 44 |
+ firstFoundView.delegateEvents() |
|
| 21 | 45 |
\ No newline at end of file |
| ... | ... |
@@ -2,12 +2,13 @@ Xmpp.Views.Popup ||= {}
|
| 2 | 2 |
|
| 3 | 3 |
class Xmpp.Views.Popup.AddContactView extends Xmpp.Views.Popup.PopupView |
| 4 | 4 |
template: JST["backbone/templates/popup/add_contact"] |
| 5 |
+ className: 'add-contact' |
|
| 5 | 6 |
|
| 6 | 7 |
events: |
| 7 | 8 |
'submit form': 'addContact' |
| 8 | 9 |
|
| 9 | 10 |
initialize: -> |
| 10 |
- @events = _.extend(@events, @superEvents) |
|
| 11 |
+ @events = _.extend(@events, @superEvents()) |
|
| 11 | 12 |
|
| 12 | 13 |
render: -> |
| 13 | 14 |
super(@template()) |
| ... | ... |
@@ -2,6 +2,7 @@ Xmpp.Views.Popup ||= {}
|
| 2 | 2 |
|
| 3 | 3 |
class Xmpp.Views.Popup.FriendRequestView extends Xmpp.Views.Popup.PopupView |
| 4 | 4 |
template: JST["backbone/templates/popup/friend_request"] |
| 5 |
+ className: 'friend-reqeust' |
|
| 5 | 6 |
|
| 6 | 7 |
events: |
| 7 | 8 |
'submit form': 'approve' |
| ... | ... |
@@ -10,22 +11,21 @@ class Xmpp.Views.Popup.FriendRequestView extends Xmpp.Views.Popup.PopupView |
| 10 | 10 |
@name = options.name |
| 11 | 11 |
@jid = options.jid |
| 12 | 12 |
|
| 13 |
- @events = _.extend(@events, @superEvents) |
|
| 13 |
+ @events = _.extend(@events, @superEvents()) |
|
| 14 | 14 |
|
| 15 | 15 |
render: -> |
| 16 | 16 |
super(@template(new_contact: @name)) |
| 17 | 17 |
$(@el).css(width: '20%', 'z-index': 999) |
| 18 |
- $(@el).find('input[type=text]').focus()
|
|
| 19 | 18 |
this |
| 20 | 19 |
|
| 21 | 20 |
approve: (e) -> |
| 22 | 21 |
e.preventDefault() |
| 23 |
- App.debug 'approve request' |
|
| 22 |
+ App.debug ['approve request', @jid] |
|
| 24 | 23 |
App.Com.answerFriendRequest(@jid, true) |
| 25 |
- @remove() |
|
| 24 |
+ @remove(e) |
|
| 26 | 25 |
|
| 27 | 26 |
close: (e) -> |
| 28 | 27 |
e.preventDefault() |
| 29 |
- App.debug 'cancel request' |
|
| 28 |
+ App.debug ['cancel request', @jid] |
|
| 30 | 29 |
App.Com.answerFriendRequest(@jid, false) |
| 31 |
- @remove() |
|
| 32 | 30 |
\ No newline at end of file |
| 31 |
+ @remove(e) |
|
| 33 | 32 |
\ No newline at end of file |