58 lines
1.6 KiB
Ruby
58 lines
1.6 KiB
Ruby
|
class MessagesController < BaseController
|
||
|
|
||
|
before_filter :enable_chat
|
||
|
skip_before_filter :verify_authenticity_token
|
||
|
|
||
|
# GET /messages
|
||
|
# GET /messages.xml
|
||
|
def index
|
||
|
@messages = ChatMessage.to_user(current_user).last_week.all
|
||
|
|
||
|
respond_to do |format|
|
||
|
format.html # index.html.erb
|
||
|
format.xml { render :xml => @messages }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# GET /messages/1
|
||
|
# GET /messages/1.xml
|
||
|
def show
|
||
|
@message = ChatMessage.find(params[:id])
|
||
|
|
||
|
respond_to do |format|
|
||
|
format.html # show.html.erb
|
||
|
format.xml { render :xml => @message }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# POST /messages
|
||
|
# POST /messages.xml
|
||
|
def create
|
||
|
@message = ChatMessage.new(:receiver_id => params[:receiver_id],
|
||
|
:message => params[:messageText],
|
||
|
:sender => current_user)
|
||
|
|
||
|
if @message.save
|
||
|
send_message
|
||
|
end
|
||
|
|
||
|
render :nothing => true
|
||
|
|
||
|
end
|
||
|
|
||
|
protected
|
||
|
|
||
|
def send_message
|
||
|
formatted_message = render_to_string(:partial => "message_for_chat", :object => @message)
|
||
|
shooter_action_for_receiver = render_to_string :update do |page|
|
||
|
page.call "showMessage", @message.sender.to_param, formatted_message
|
||
|
end
|
||
|
shooter_action_for_sender = render_to_string :update do |page|
|
||
|
page.call "showMessage", @message.receiver.to_param, formatted_message
|
||
|
page.call "messageTextBox.reset"
|
||
|
end
|
||
|
Meteor.shoot 'futura-chat', shooter_action_for_sender, [@message.sender.login]
|
||
|
Meteor.shoot 'futura-chat', shooter_action_for_receiver, [@message.receiver.login]
|
||
|
end
|
||
|
end
|