email_preview 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
@@ -1,13 +1,19 @@
1
1
  class EmailPreviewController < ApplicationController
2
2
  unloadable
3
3
  before_filter :enforce_allowed_environments
4
- before_filter :build_email, :only => [:show, :deliver]
4
+ before_filter :build_email, :only => [:show, :deliver, :display]
5
+ layout nil
5
6
 
6
7
  def deliver
7
8
  @mail.to params[:to]
8
9
  @mail.deliver
9
10
  redirect_to email_preview_path(params[:id])
10
11
  end
12
+ def display
13
+ @mail.to_s
14
+ part = @mail.multipart? ? @mail.parts.select {|p| p.content_type == params[:content_type]}.first : @mail
15
+ render :text => part.body
16
+ end
11
17
  private
12
18
  def enforce_allowed_environments
13
19
  raise "'#{Rails.env}' is not in the supported list of environments from EmailPreview.allowed_environments: #{EmailPreview.allowed_environments.inspect}" unless EmailPreview.allowed_environments.include?(Rails.env)
@@ -1,19 +1,35 @@
1
- <div>
2
- To: <%= @mail.to %>
1
+ <style>
2
+ .header {
3
+ color: #333;
4
+ font-weight: bold;
5
+ }
6
+ .deliver_form {
7
+ margin-bottom: 0;
8
+ }
9
+ .deliver_form input {
10
+ width: 250px;
11
+ }
12
+ .body_display {
13
+ width: 80%;
14
+ }
15
+ </style>
16
+ <div class='headers'>
17
+ <span class="header">To:</span>
18
+ <span class="header_value"><%= @mail.to %></span>
19
+ <% form_tag deliver_email_preview_path(params[:id]), :class => 'deliver_form' do %>
20
+ <%= text_field_tag :to, '', :placeholder => 'Send this email to me@yourcompany.com' %>
21
+ <button type="submit">Send</button>
22
+ <% end %>
3
23
  </div>
4
- <div>
5
- From: <%= @mail.from %>
24
+ <div class='headers'>
25
+ <span class="header">From:</span>
26
+ <span class="header_value"><%= @mail.from %></span>
6
27
  </div>
7
- <div>
8
- Subject: <%= @mail.subject %>
28
+ <div class='headers'>
29
+ <span class="header">Subject:</span>
30
+ <span class="header_value"><%= @mail.subject %></span>
9
31
  </div>
10
-
11
- <% form_tag deliver_email_preview_path(params[:id]) do %>
12
- <p>Send this email to your inbox:</p>
13
- <%= text_field_tag :to %>
14
- <button type="submit">Send</button>
15
- <% end %>
16
-
32
+ <hr />
17
33
  <!--
18
34
  <h3>Debug output</h3>
19
35
  <pre>
@@ -21,13 +37,8 @@
21
37
  </pre>
22
38
  -->
23
39
 
24
- <h3>Body</h3>
25
40
  <% parts = @mail.multipart? ? @mail.parts : [@mail] %>
26
41
  <% parts.each do |part| %>
27
- <h4><%= part.content_type %></h4>
28
- <% if part.content_type.include?('text/plain') %>
29
- <pre><%= part.body %></pre>
30
- <% elsif part.content_type.include?('text/html') %>
31
- <%= part.body.to_s.html_safe %>
32
- <% end %>
42
+ <h3><%= part.content_type %></h3>
43
+ <iframe class="body_display" src="<%= display_email_preview_path(params[:id], :content_type => part.content_type) %>"></iframe>
33
44
  <% end %>
data/config/routes.rb CHANGED
@@ -5,6 +5,7 @@ Rails.application.routes.draw do |map|
5
5
  end
6
6
  member do
7
7
  post :deliver
8
+ get :display
8
9
  end
9
10
  end
10
11
  end
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{email_preview}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ryan Sonnek"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email_preview
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
9
+ - 2
10
+ version: 0.2.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Sonnek