aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2018-09-28 11:32:44 -0700
committerDavid Heinemeier Hansson <david@loudthinking.com>2018-09-28 11:32:44 -0700
commit5ad0813322820a6c42d7b3074531ac40108bfb69 (patch)
tree59a3e850d507daa7028600fb94c551e6aaf93eb9 /app
parentc9d8f6650d6c5c88c5346032b23d037cf3e4aae6 (diff)
downloadrails-5ad0813322820a6c42d7b3074531ac40108bfb69.tar.gz
rails-5ad0813322820a6c42d7b3074531ac40108bfb69.tar.bz2
rails-5ad0813322820a6c42d7b3074531ac40108bfb69.zip
Add rerouting option
Diffstat (limited to 'app')
-rw-r--r--app/controllers/rails/conductor/action_mailroom/reroutes_controller.rb14
-rw-r--r--app/models/action_mailroom/inbound_email/routable.rb7
-rw-r--r--app/views/rails/conductor/action_mailroom/inbound_emails/show.html.erb4
3 files changed, 20 insertions, 5 deletions
diff --git a/app/controllers/rails/conductor/action_mailroom/reroutes_controller.rb b/app/controllers/rails/conductor/action_mailroom/reroutes_controller.rb
new file mode 100644
index 0000000000..028ed9e2d6
--- /dev/null
+++ b/app/controllers/rails/conductor/action_mailroom/reroutes_controller.rb
@@ -0,0 +1,14 @@
+class Rails::Conductor::ActionMailroom::ReroutesController < Rails::Conductor::BaseController
+ def create
+ inbound_email = ActionMailroom::InboundEmail.find(params[:inbound_email_id])
+ reroute inbound_email
+
+ redirect_to main_app.rails_conductor_inbound_email_url(inbound_email)
+ end
+
+ private
+ def reroute(inbound_email)
+ inbound_email.pending!
+ inbound_email.route_later
+ end
+end
diff --git a/app/models/action_mailroom/inbound_email/routable.rb b/app/models/action_mailroom/inbound_email/routable.rb
index 61a14a0ba1..5075db326e 100644
--- a/app/models/action_mailroom/inbound_email/routable.rb
+++ b/app/models/action_mailroom/inbound_email/routable.rb
@@ -5,8 +5,7 @@ module ActionMailroom::InboundEmail::Routable
after_create_commit :route_later, if: ->(inbound_email) { inbound_email.pending? }
end
- private
- def route_later
- ActionMailroom::RoutingJob.perform_later self
- end
+ def route_later
+ ActionMailroom::RoutingJob.perform_later self
+ end
end
diff --git a/app/views/rails/conductor/action_mailroom/inbound_emails/show.html.erb b/app/views/rails/conductor/action_mailroom/inbound_emails/show.html.erb
index e6f40b19e2..e761904196 100644
--- a/app/views/rails/conductor/action_mailroom/inbound_emails/show.html.erb
+++ b/app/views/rails/conductor/action_mailroom/inbound_emails/show.html.erb
@@ -3,7 +3,7 @@
<h1><%= @inbound_email.message_id %>: <%= @inbound_email.status %></h1>
<ul>
- <li>Retry</li>
+ <li><%= button_to "Route again", main_app.rails_conductor_inbound_email_reroute_path(@inbound_email), method: :post %></li>
<li>Incinerate</li>
</ul>
@@ -11,3 +11,5 @@
<summary>Full email source</summary>
<pre><%= @inbound_email.source %></pre>
</details>
+
+<%= link_to "Back to all inbound emails", main_app.rails_conductor_inbound_emails_path %> \ No newline at end of file