Skip to content

Commit

Permalink
Kandan.js refactor
Browse files Browse the repository at this point in the history
Signed-off-by: Akash Manohar J <akash@akash.im>
  • Loading branch information
HashNuke committed Mar 28, 2012
1 parent ccce02a commit 19cd88b
Showing 1 changed file with 38 additions and 31 deletions.
69 changes: 38 additions & 31 deletions app/assets/javascripts/backbone/kandan.js.coffee
Expand Up @@ -36,47 +36,54 @@ window.Kandan =
window.broadcaster = new Kandan.Broadcasters.FayeBroadcaster()
window.broadcaster.subscribe "/channels/*" ##{channel.get('id')}


initChatbox: ()->
chatbox = new Kandan.Views.Chatbox()
$(".main-area").append(chatbox.render().el)


initTabs: ()->
$('#channels').tabs({
select: (event, ui)->
$(document).data('active_channel_id',
Kandan.Helpers.Channels.getChannelIdByTabIndex(ui.index))
Kandan.Data.Channels.runCallbacks('change')
})

$("#channels").tabs 'option', 'tabTemplate', '''
<li>
<a href="#{href}">#{label}</a>
<span class="ui-icon ui-icon-close">x</span>
</li>
'''

initChatArea: (channels)->
chatArea = new Kandan.Views.ChatArea({channels: channels})
$(".main-area").html(chatArea.render().el)

bindEventCallbacks: ()->
$(document).bind 'changeData', (element, name, value)->
Kandan.Data.ActiveUsers.runCallbacks('change') if name=="active_users"

init: ->
channels = new Kandan.Collections.Channels()
channels.fetch({success: ()=>
chat_area = new Kandan.Views.ChatArea({channels: channels})

channels.fetch({success: (channelsCollection)=>
@initBroadcasterAndSubscribe()

$(document).bind 'changeData', (element, name, value)->
if(name=="active_users")
Kandan.Data.ActiveUsers.runCallbacks('change')
@bindEventCallbacks()

active_users = new Kandan.Collections.ActiveUsers()
active_users.fetch({
success: (collection)->
collection.add([$(document).data('current_user')]) if not Kandan.Helpers.ActiveUsers.collectionHasCurrentUser(collection)
success: (activeUsersCollection)=>

Kandan.Helpers.ActiveUsers.setFromCollection(collection)
if not Kandan.Helpers.ActiveUsers.collectionHasCurrentUser(activeUsersCollection)
activeUsersCollection.add([Kandan.Helpers.Users.currentUser()])

# NOTE init plugins so that modifiers are registered
Kandan.Helpers.ActiveUsers.setFromCollection(activeUsersCollection)
Kandan.register_plugins()
Kandan.Plugins.init_all()


$(".main-area").html(chat_area.render().el)
chatbox = new Kandan.Views.Chatbox()
$(".main-area").append(chatbox.render().el)
$('#channels').tabs({
select: (event, ui)->
$(document).data('active_channel_id',
Kandan.Helpers.Channels.getChannelIdByTabIndex(ui.index))
console.log "channel changed to index", ui.index
Kandan.Data.Channels.runCallbacks('change')
})

$("#channels").tabs 'option', 'tabTemplate', '''
<li>
<a href="#{href}">#{label}</a>
<span class="ui-icon ui-icon-close">x</span>
</li>
'''

@initChatArea(channelsCollection)
@initChatbox()
@initTabs()
Kandan.Widgets.init_all()
})
})

0 comments on commit 19cd88b

Please sign in to comment.