From: Steve Coast Date: Sat, 3 May 2008 13:25:34 +0000 (+0000) Subject: ability to delete messages X-Git-Tag: live~7816 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/ee6165bf9bf790e930409b03832e61ae2c8a1bfd ability to delete messages --- diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb index 9dc1d6922..395d56028 100644 --- a/app/controllers/message_controller.rb +++ b/app/controllers/message_controller.rb @@ -20,6 +20,18 @@ class MessageController < ApplicationController end end + def destroy + @message = Message.find(params[:message_id], :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id ]) + if !@message.message_read + flash[:notice] = 'Message not read and so not deleted' + redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name + else + flash[:notice] = "Message '#{@message.title}' deleted" + @message.destroy + redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name + end + end + def reply message = Message.find(params[:message_id], :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id ]) title = message.title.sub(/^Re:\s*/, "Re: ") diff --git a/app/views/message/_message_summary.rhtml b/app/views/message/_message_summary.rhtml index 6d45d33dd..dbd71f017 100644 --- a/app/views/message/_message_summary.rhtml +++ b/app/views/message/_message_summary.rhtml @@ -10,4 +10,6 @@ <%= button_to 'Mark as read', :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %> <% end %> <%= button_to 'Reply', :controller => 'message', :action => 'reply', :message_id => message_summary.id %> + <%= button_to 'Delete', :controller => 'message', :action => 'destroy', :message_id => message_summary.id %> + diff --git a/app/views/message/read.rhtml b/app/views/message/read.rhtml index d44859029..eccb26050 100644 --- a/app/views/message/read.rhtml +++ b/app/views/message/read.rhtml @@ -32,6 +32,7 @@ <%= button_to 'Reply', :controller => 'message', :action => 'reply', :message_id => @message.id %> <%= button_to 'Mark as unread', :controller => 'message', :action => 'mark', :message_id => @message.id, :mark => 'unread' %> + <%= button_to 'Delete', :controller => 'message', :action => 'destroy', :message_id => @message.id %> <%= link_to 'Back to inbox', :controller => 'message', :action => 'inbox', :display_name => @user.display_name %> diff --git a/config/routes.rb b/config/routes.rb index 1444de106..2ac48cc29 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -143,6 +143,7 @@ ActionController::Routing::Routes.draw do |map| map.connect '/message/read/:message_id', :controller => 'message', :action => 'read' map.connect '/message/mark/:message_id', :controller => 'message', :action => 'mark' map.connect '/message/reply/:message_id', :controller => 'message', :action => 'reply' + map.connect '/message/delete/:message_id', :controller => 'message', :action => 'destroy' # fall through map.connect ':controller/:id/:action'