ability to delete messages
authorSteve Coast <steve@asklater.com>
Sat, 3 May 2008 13:25:34 +0000 (13:25 +0000)
committerSteve Coast <steve@asklater.com>
Sat, 3 May 2008 13:25:34 +0000 (13:25 +0000)
app/controllers/message_controller.rb
app/views/message/_message_summary.rhtml
app/views/message/read.rhtml
config/routes.rb

index 9dc1d69229348291b9da97d5d9a7bd724c7ad210..395d56028999d92a99a70e4b20d020942aa0d1d9 100644 (file)
@@ -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: ")
index 6d45d33dd33f0eefca339ad37039ea59d35c9b2f..dbd71f0173fdcafb7294b7160fe361f821cefafa 100644 (file)
@@ -10,4 +10,6 @@
     <td><%= button_to 'Mark as read', :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %></td>
   <% end %>
   <td><%= button_to 'Reply', :controller => 'message', :action => 'reply', :message_id => message_summary.id %></td>
+  <td><%= button_to 'Delete', :controller => 'message', :action => 'destroy', :message_id => message_summary.id %></td>
+
 </tr>
index d44859029dea35f7cadda8002239b8120943d419..eccb26050fb7948cabf70b54355aad685226b50c 100644 (file)
@@ -32,6 +32,7 @@
   <tr>
     <td><%= button_to 'Reply', :controller => 'message', :action => 'reply', :message_id => @message.id %></td>
     <td><%= button_to 'Mark as unread', :controller => 'message', :action => 'mark', :message_id => @message.id, :mark => 'unread' %></td>
+    <td><%= button_to 'Delete', :controller => 'message', :action => 'destroy', :message_id => @message.id %></td>
     <td><%= link_to 'Back to inbox', :controller => 'message', :action => 'inbox', :display_name => @user.display_name %></td>
   </tr>
 </table>
index 1444de106f02607c8f77e6278252013a74d0d009..2ac48cc2997b963c153e27106b03ea1f817a9ef8 100644 (file)
@@ -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'