Ajaxify message deletion

This commit is contained in:
Tom Hughes 2013-02-03 12:52:51 +00:00
parent fa86ea0187
commit cff41d2171
3 changed files with 13 additions and 10 deletions

View file

@ -100,11 +100,9 @@ class MessageController < ApplicationController
notice = t 'message.mark.as_read'
end
@message.message_read = message_read
if @message.save
if not request.xhr?
flash[:notice] = notice
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
end
if @message.save and not request.xhr?
flash[:notice] = notice
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
end
rescue ActiveRecord::RecordNotFound
@title = t'message.no_such_message.title'
@ -113,10 +111,10 @@ class MessageController < ApplicationController
# Delete the message.
def delete
message = Message.where("to_user_id = ? OR from_user_id = ?", @user.id, @user.id).find(params[:message_id])
message.from_user_visible = false if message.sender == @user
message.to_user_visible = false if message.recipient == @user
if message.save
@message = Message.where("to_user_id = ? OR from_user_id = ?", @user.id, @user.id).find(params[:message_id])
@message.from_user_visible = false if @message.sender == @user
@message.to_user_visible = false if @message.recipient == @user
if @message.save and not request.xhr?
flash[:notice] = t 'message.delete.deleted'
if params[:referer]

View file

@ -4,5 +4,5 @@
<td class="inbox-sent"><%= l message_summary.sent_on, :format => :friendly %></td>
<td class="inbox-mark-unread"><%= button_to t('message.message_summary.unread_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}, { :remote => true } %></td>
<td class="inbox-mark-read"><%= button_to t('message.message_summary.read_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read'}, { :remote => true } %></td>
<td><%= button_to t('message.message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.fullpath %></td>
<td><%= button_to t('message.message_summary.delete_button'), {:controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.fullpath}, { :remote => true } %></td>
</tr>

View file

@ -0,0 +1,5 @@
$("#inboxanchor").replaceWith("<%=j render :partial => "layouts/inbox" %>");
$("#inbox-count").replaceWith("<%=j render :partial => "message_count" %>");
$("#inbox-<%= @message.id %>").fadeOut(800, "linear", function () {
$(this).remove();
});