From cff41d2171b00f95ebc7d66d75b3fda157c3252c Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 3 Feb 2013 12:52:51 +0000 Subject: [PATCH] Ajaxify message deletion --- app/controllers/message_controller.rb | 16 +++++++--------- app/views/message/_message_summary.html.erb | 2 +- app/views/message/delete.js.erb | 5 +++++ 3 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 app/views/message/delete.js.erb diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb index c6a269a06..8d03811a9 100644 --- a/app/controllers/message_controller.rb +++ b/app/controllers/message_controller.rb @@ -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] diff --git a/app/views/message/_message_summary.html.erb b/app/views/message/_message_summary.html.erb index 26001c0bd..ffdfd6c38 100644 --- a/app/views/message/_message_summary.html.erb +++ b/app/views/message/_message_summary.html.erb @@ -4,5 +4,5 @@ <%= l message_summary.sent_on, :format => :friendly %> <%= button_to t('message.message_summary.unread_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}, { :remote => true } %> <%= button_to t('message.message_summary.read_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read'}, { :remote => true } %> - <%= button_to t('message.message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.fullpath %> + <%= button_to t('message.message_summary.delete_button'), {:controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.fullpath}, { :remote => true } %> diff --git a/app/views/message/delete.js.erb b/app/views/message/delete.js.erb new file mode 100644 index 000000000..86677ab4a --- /dev/null +++ b/app/views/message/delete.js.erb @@ -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(); +}); -- 2.43.2