diff options
-rw-r--r-- | app/controllers/admin_outgoing_message_controller.rb | 33 | ||||
-rw-r--r-- | app/controllers/admin_request_controller.rb | 30 | ||||
-rw-r--r-- | app/views/admin_request/show.html.erb | 4 | ||||
-rw-r--r-- | config/routes.rb | 2 |
4 files changed, 35 insertions, 34 deletions
diff --git a/app/controllers/admin_outgoing_message_controller.rb b/app/controllers/admin_outgoing_message_controller.rb index 76166ec05..535ec1229 100644 --- a/app/controllers/admin_outgoing_message_controller.rb +++ b/app/controllers/admin_outgoing_message_controller.rb @@ -38,10 +38,41 @@ class AdminOutgoingMessageController < AdminController :prominence_reason => @outgoing_message.prominence_reason }) flash[:notice] = 'Outgoing message successfully updated.' expire_for_request(@outgoing_message.info_request) - redirect_to admin_request_show_url(@outgoing_message.info_request) + redirect_to admin_request_url(@outgoing_message.info_request) else render :action => 'edit' end end + def resend + @outgoing_message = OutgoingMessage.find(params[:id]) + @outgoing_message.prepare_message_for_resend + + mail_message = case @outgoing_message.message_type + when 'initial_request' + OutgoingMailer.initial_request( + @outgoing_message.info_request, + @outgoing_message + ).deliver + when 'followup' + OutgoingMailer.followup( + @outgoing_message.info_request, + @outgoing_message, + @outgoing_message.incoming_message_followup + ).deliver + else + raise "Message id #{id} has type '#{message_type}' which cannot be resent" + end + + @outgoing_message.record_email_delivery( + mail_message.to_addrs.join(', '), + mail_message.message_id, + 'resent' + ) + + flash[:notice] = "Outgoing message resent" + redirect_to admin_request_url(@outgoing_message.info_request) + end + + end diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb index 90811104b..5ddc32648 100644 --- a/app/controllers/admin_request_controller.rb +++ b/app/controllers/admin_request_controller.rb @@ -30,36 +30,6 @@ class AdminRequestController < AdminController :locals => vars_for_explanation) end - def resend - @outgoing_message = OutgoingMessage.find(params[:outgoing_message_id]) - @outgoing_message.prepare_message_for_resend - - mail_message = case @outgoing_message.message_type - when 'initial_request' - OutgoingMailer.initial_request( - @outgoing_message.info_request, - @outgoing_message - ).deliver - when 'followup' - OutgoingMailer.followup( - @outgoing_message.info_request, - @outgoing_message, - @outgoing_message.incoming_message_followup - ).deliver - else - raise "Message id #{id} has type '#{message_type}' which cannot be resent" - end - - @outgoing_message.record_email_delivery( - mail_message.to_addrs.join(', '), - mail_message.message_id, - 'resent' - ) - - flash[:notice] = "Outgoing message resent" - redirect_to admin_request_show_url(@outgoing_message.info_request) - end - def edit @info_request = InfoRequest.find(params[:id]) end diff --git a/app/views/admin_request/show.html.erb b/app/views/admin_request/show.html.erb index 9c04badeb..f5620d769 100644 --- a/app/views/admin_request/show.html.erb +++ b/app/views/admin_request/show.html.erb @@ -245,8 +245,8 @@ <tbody> <tr> <td colspan="2"> - <%= form_tag admin_request_resend_path, :class => "admin-table-form" do %> - <%= hidden_field_tag 'outgoing_message_id', outgoing_message.id %> + <%= form_tag admin_outgoing_resend_path, :class => "admin-table-form" do %> + <%= hidden_field_tag 'id', outgoing_message.id %> <%= submit_tag "Resend", :class => "btn" %> <% end %> </td> diff --git a/config/routes.rb b/config/routes.rb index 7e40ceb29..aeeab785d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -213,7 +213,6 @@ Alaveteli::Application.routes.draw do #### #### AdminRequest controller - match '/admin/request/resend' => 'admin_request#resend', :as => :admin_request_resend scope '/admin', :as => 'admin' do resources :requests, :controller => 'admin_request', @@ -244,6 +243,7 @@ Alaveteli::Application.routes.draw do match '/admin/outgoing/edit/:id' => 'admin_outgoing_message#edit', :as => :admin_outgoing_edit match '/admin/outgoing/destroy/:id' => 'admin_outgoing_message#destroy', :as => :admin_outgoing_destroy match '/admin/outgoing/update/:id' => 'admin_outgoing_message#update', :as => :admin_outgoing_update + match '/admin/outgoing/resend/:id' => 'admin_outgoing_message#resend', :as => :admin_outgoing_resend #### #### AdminUser controller |