Skip to content

Commit

Permalink
Adds search; Faye callbacks for transport down and up; Some minor ref…
Browse files Browse the repository at this point in the history
…actor to support search

Signed-off-by: Akash Manohar J <akash@akash.im>
  • Loading branch information
HashNuke committed Mar 20, 2012
1 parent 7144978 commit d5e2f4d
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 38 deletions.
20 changes: 8 additions & 12 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -85,36 +85,32 @@ GEM
eco-source
execjs
eco-source (1.1.0.rc.1)
em-http-request (1.0.1)
addressable (>= 2.2.3)
cookiejar
em-socksify
eventmachine (>= 1.0.0.beta.4)
http_parser.rb (>= 0.5.3)
em-socksify (0.1.0)
eventmachine
em-http-request (0.3.0)
addressable (>= 2.0.0)
escape_utils
eventmachine (>= 0.12.9)
erubis (2.7.0)
eventmachine (1.0.0.beta.4)
escape_utils (0.2.4)
eventmachine (0.12.10)
execjs (1.3.0)
multi_json (~> 1.0)
factory_girl (2.6.1)
activesupport (>= 2.3.9)
factory_girl_rails (1.7.0)
factory_girl (~> 2.6.0)
railties (>= 3.0.0)
faye (0.8.0)
faye (0.8.1)
cookiejar (>= 0.3.0)
em-http-request (>= 0.3.0)
eventmachine (>= 0.12.0)
faye-websocket (>= 0.4.0)
rack (>= 1.0.0)
yajl-ruby (>= 1.0.0)
faye-websocket (0.4.1)
faye-websocket (0.4.4)
eventmachine (>= 0.12.0)
ffi (1.0.11)
highline (1.6.11)
hike (1.2.1)
http_parser.rb (0.5.3)
httparty (0.8.1)
multi_json
multi_xml
Expand Down
7 changes: 6 additions & 1 deletion app/assets/javascripts/backbone/broadcasters/faye.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ class Kandan.Broadcasters.FayeBroadcaster
}
callback(message)
}
@faye_client.bind "transport:down", ()->
console.log "Comm link to Cybertron is down!"

@faye_client.bind "transport:up", ()->
console.log "Comm link is up!"

@faye_client.addExtension(auth_extension)
@faye_client.subscribe "/app/activities", (data)=>
$(document).data('active_users', data.data.active_users)
Expand All @@ -21,7 +27,6 @@ class Kandan.Broadcasters.FayeBroadcaster


subscribe: (channel)->
console.log "Subscribing to #{channel}"
subscription = @faye_client.subscribe channel, (data)=>
Kandan.Helpers.Channels.add_activity(data)
subscription.errback(()->
Expand Down
3 changes: 3 additions & 0 deletions app/assets/javascripts/backbone/data/active_users.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ class Kandan.Data.ActiveUsers
@register_callback: (event, callback)->
@callbacks[event].push(callback)

@run_callbacks: (event)->
callback() for callback in @callbacks[event]

@unregister_callback: (event, callback)->
delete @callbacks[@callbacks.indexOf(callback)]
@callbacks.filter (element, index, array)->
Expand Down
10 changes: 1 addition & 9 deletions app/assets/javascripts/backbone/kandan.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ window.Kandan =

$(document).bind 'changeData', (element, name, value)->
if(name=="active_users")
callback() for callback in Kandan.Data.ActiveUsers.callbacks.change
Kandan.Data.ActiveUsers.run_callbacks('change')

active_users = new Kandan.Collections.ActiveUsers()
active_users.fetch({
Expand All @@ -55,14 +55,6 @@ window.Kandan =
Kandan.Data.Channels.run_callbacks('change')
})

# NOTE render widgets only after the chat area is rendered
Kandan.Widgets.init_all()
})



})


$(document).ready ->
Kandan.init()
14 changes: 14 additions & 0 deletions app/controllers/main_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@ class MainController < ApplicationController
before_filter :authenticate_user!

def index
# TODO this isn't being used right now. use this for faster app
@channels = Channel.includes(:activities => :user).all
end

def search
minimum_query_length = 3

if params[:query] and params[:query].length >= minimum_query_length
@activities = Activity.includes(:user).where("content LIKE ?", "%#{params[:query]}%").limit(params[:limit] || 100).all
end

respond_to do |format|
format.html
format.json { render :json => @activities.to_json(:include => :user) }
end
end
end
23 changes: 7 additions & 16 deletions app/views/main/index.html.erb
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
<div class="container">
<%= javascript_tag do %>
$(document).ready(function(){
Kandan.init()
})
<%- end %>

<%= javascript_tag do %>
$(function()
{
var channels_json = <%= @channels.to_json(
:include => {
:activities => {
:include=>:user
}
}).html_safe %>
});
<%- end %>

</div>
<div class="sidebar">
</div>
<div class="container"></div>
<div class="sidebar"></div>
18 changes: 18 additions & 0 deletions app/views/main/search.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<%= javascript_tag do %>
$(document).ready(function(){
Kandan.Plugins.init_all()
activities = <%= @activities.to_json(:include => :user).html_safe %>;

$.each(activities, function(index, activity_attributes) {
activity = new Kandan.Models.Activity(activity_attributes)
activity_view = new Kandan.Views.ShowActivity({activity: activity});
$('.activities').html(activity_view.render().el);
})
})

<%- end %>

<div class='activities'>
</div>


2 changes: 2 additions & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
root :to => "main#index"
devise_for :users

get '/search' => "main#search"

resources :channels do
resources :activities
resources :attachments
Expand Down

0 comments on commit d5e2f4d

Please sign in to comment.