From 8b48262b8e46b6b23146930354c74bcf6f23b2cc Mon Sep 17 00:00:00 2001 From: Akash Manohar J Date: Mon, 12 Mar 2012 05:36:37 +0530 Subject: [PATCH] Adds helper methods and appends new activities to the chat area Signed-off-by: Akash Manohar J --- .../backbone/broadcasters/faye.js.coffee | 2 ++ .../backbone/helpers/channels.js.coffee | 17 ++++++++++++++--- .../javascripts/backbone/kandan.js.coffee | 2 +- .../backbone/models/activity.js.coffee | 2 +- .../backbone/views/list_activities.js.coffee | 2 +- ...tivity.js.coffee => show_activity.js.coffee} | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) rename app/assets/javascripts/backbone/views/{activity.js.coffee => show_activity.js.coffee} (73%) diff --git a/app/assets/javascripts/backbone/broadcasters/faye.js.coffee b/app/assets/javascripts/backbone/broadcasters/faye.js.coffee index 0fbf69c6..5caf4523 100644 --- a/app/assets/javascripts/backbone/broadcasters/faye.js.coffee +++ b/app/assets/javascripts/backbone/broadcasters/faye.js.coffee @@ -15,4 +15,6 @@ class Kandan.Broadcasters.FayeBroadcaster subscribe: (channel)-> console.log "Subscribing to #{channel}" @faye_client.subscribe channel, (data)=> + console.log data.user + Kandan.Helpers.Channels.add_activity(data) console.log data.user.first_name, "says", data.content diff --git a/app/assets/javascripts/backbone/helpers/channels.js.coffee b/app/assets/javascripts/backbone/helpers/channels.js.coffee index f70236dd..4a5d8ce3 100644 --- a/app/assets/javascripts/backbone/helpers/channels.js.coffee +++ b/app/assets/javascripts/backbone/helpers/channels.js.coffee @@ -1,7 +1,18 @@ class Kandan.Helpers.Channels + @channel_el: (channel_id)-> + $("#channels-#{channel_id}") + + @selected_tab: ()-> + $('#channels').tabs('option', 'selected') + @get_active_channel_id: ()-> $("#channels .ui-tabs-panel") - .eq($('#channels') - .tabs('option', 'selected')) - .data('channel_id') \ No newline at end of file + .eq(@selected_tab()) + .data('channel_id') + + @add_activity: (activity_attributes)-> + activity = new Kandan.Models.Activity(activity_attributes) + activity_view = new Kandan.Views.ShowActivity({activity: activity}) + @channel_el(activity.get('channel_id')) + .append(activity_view.render().el) \ No newline at end of file diff --git a/app/assets/javascripts/backbone/kandan.js.coffee b/app/assets/javascripts/backbone/kandan.js.coffee index 0a8d5124..d6385dc2 100644 --- a/app/assets/javascripts/backbone/kandan.js.coffee +++ b/app/assets/javascripts/backbone/kandan.js.coffee @@ -4,6 +4,7 @@ #= require_tree ./collections #= require_tree ./views #= require_tree ./routers +#= require_tree ./helpers window.Kandan = Models: {} @@ -29,7 +30,6 @@ window.Kandan = window.broadcaster = new Kandan.Broadcasters.FayeBroadcaster() for channel in channels.models window.broadcaster.subscribe "/channels/#{channel.get('id')}" - }) diff --git a/app/assets/javascripts/backbone/models/activity.js.coffee b/app/assets/javascripts/backbone/models/activity.js.coffee index 836d3eb8..77d52caa 100644 --- a/app/assets/javascripts/backbone/models/activity.js.coffee +++ b/app/assets/javascripts/backbone/models/activity.js.coffee @@ -1,6 +1,6 @@ class Kandan.Models.Activity extends Backbone.Model urlRoot: ()-> - "channels/#{@channel_id}/activities" + "channels/#{@get('channel_id')}/activities" initialize: (options)-> @channel_id = @get('channel_id') diff --git a/app/assets/javascripts/backbone/views/list_activities.js.coffee b/app/assets/javascripts/backbone/views/list_activities.js.coffee index eea89900..b41d31bd 100644 --- a/app/assets/javascripts/backbone/views/list_activities.js.coffee +++ b/app/assets/javascripts/backbone/views/list_activities.js.coffee @@ -4,7 +4,7 @@ class Kandan.Views.ListActivities extends Backbone.View render: ()-> for activity in @options.channel.activities.models - activity_view = new Kandan.Views.Activity({activity: activity}) + activity_view = new Kandan.Views.ShowActivity({activity: activity}) $(@el).append(activity_view.render().el) $(@el).attr('id', "channels-#{@options.channel.get('id')}") $(@el).data('channel_id', @options.channel.get('id')) diff --git a/app/assets/javascripts/backbone/views/activity.js.coffee b/app/assets/javascripts/backbone/views/show_activity.js.coffee similarity index 73% rename from app/assets/javascripts/backbone/views/activity.js.coffee rename to app/assets/javascripts/backbone/views/show_activity.js.coffee index 56542d60..2825c7e9 100644 --- a/app/assets/javascripts/backbone/views/activity.js.coffee +++ b/app/assets/javascripts/backbone/views/show_activity.js.coffee @@ -1,4 +1,4 @@ -class Kandan.Views.Activity extends Backbone.View +class Kandan.Views.ShowActivity extends Backbone.View template: JST['activity'] tagName: 'p'