rails_email_preview 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +20 -0
- data/app/controllers/rails_email_preview/emails_controller.rb +8 -2
- data/app/views/layouts/rails_email_preview/application.html.slim +9 -0
- data/app/views/rails_email_preview/emails/index.html.slim +10 -0
- data/app/views/rails_email_preview/emails/show.html.slim +44 -0
- data/lib/rails_email_preview/version.rb +1 -1
- metadata +8 -8
- data/app/views/layouts/rails_email_preview/application.html.haml +0 -9
- data/app/views/rails_email_preview/emails/index.html.haml +0 -9
- data/app/views/rails_email_preview/emails/show.html.haml +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 210079aee23a1a64d8d99202882da2d987f0871c
|
4
|
+
data.tar.gz: dd6ef6cff8f2b403fb85988d47480dd19272caea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b7ee3fd00a5d0e9d8e5e278c6b99420bb8392ed3e1f2dccf81f462cc54715a7c022a00498b845fe76b7ceb366ce4f9409a5b40dcef5a15da6e0b2461d00d045
|
7
|
+
data.tar.gz: a65c22c4684cf836bdc9c4f2dbaea3570373f6d26dfbe8d11cc2faec485849666d78edefc2f71acc4d420b3a6122885986b145282c27c164197b1ad70a2c4c49
|
data/README.md
CHANGED
@@ -3,6 +3,9 @@ Rails Email Preview
|
|
3
3
|
|
4
4
|
A Rails Engine to preview plain text and html email in your browser. Compatible with Rails 3 and 4.
|
5
5
|
|
6
|
+

|
7
|
+
*Preview UI*
|
8
|
+
|
6
9
|
How to
|
7
10
|
-----
|
8
11
|
|
@@ -76,6 +79,23 @@ For [premailer-rails](https://github.com/fphilipe/premailer-rails), add to `Rail
|
|
76
79
|
|
77
80
|
config.before_render { |message| Premailer::Rails::Hook.delivering_email(message) }
|
78
81
|
|
82
|
+
Email editing
|
83
|
+
-------------
|
84
|
+
|
85
|
+
You can use [comfortable_mexican_sofa](https://github.com/comfy/comfortable-mexican-sofa) for storing and editing emails.
|
86
|
+
[See ComfortableMexicanSofa integration guide](https://github.com/glebm/rails_email_preview/wiki/Comfortable-Mexican-Sofa-integration-for-email-editing).
|
87
|
+
|
88
|
+
This is what it looks like:
|
89
|
+
|
90
|
+

|
91
|
+
|
92
|
+
I18n
|
93
|
+
-------------
|
94
|
+
|
95
|
+
Rails Email Preview sets `I18n.locale` for rendering an email.
|
96
|
+
This means your emails should use I18n.locale but not set it.
|
97
|
+
If you are using `Resque::Mailer` or `Devise::Async`, you will want to [inject I18n.locale into the job](https://gist.github.com/glebm/5725347).
|
98
|
+
|
79
99
|
|
80
100
|
Customizing views
|
81
101
|
---------------------
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class RailsEmailPreview::EmailsController < RailsEmailPreview::ApplicationController
|
2
2
|
include ERB::Util
|
3
|
-
before_filter :load_preview_class, :
|
3
|
+
before_filter :load_preview_class, except: :index
|
4
|
+
before_filter :set_locale, except: :index
|
4
5
|
|
5
6
|
def index
|
6
7
|
@preview_class_names = (RailsEmailPreview.preview_classes || []).map { |klass| klass.is_a?(String) ? klass : klass.name }
|
@@ -31,6 +32,11 @@ class RailsEmailPreview::EmailsController < RailsEmailPreview::ApplicationContro
|
|
31
32
|
end
|
32
33
|
|
33
34
|
private
|
35
|
+
|
36
|
+
def set_locale
|
37
|
+
I18n.locale = params[:email_locale] || params[:locale] || I18n.default_locale
|
38
|
+
end
|
39
|
+
|
34
40
|
def load_preview_class
|
35
41
|
@preview_class = (RailsEmailPreview.preview_classes || []).find { |pc|
|
36
42
|
(pc.is_a?(String) ? pc : pc.name).underscore == params[:mail_class]
|
@@ -38,4 +44,4 @@ class RailsEmailPreview::EmailsController < RailsEmailPreview::ApplicationContro
|
|
38
44
|
@preview_class = @preview_class.constantize if @preview_class.is_a?(String)
|
39
45
|
@part_type = params[:part_type] || 'text/html'
|
40
46
|
end
|
41
|
-
end
|
47
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
h1 Application emails
|
2
|
+
ul.list-unstyled
|
3
|
+
- @preview_class_names.each do |m|
|
4
|
+
li.col-lg-6.col-sm-6
|
5
|
+
h2= m.underscore.sub(/(_mailer)?_preview$/, '').humanize
|
6
|
+
ul.list-group
|
7
|
+
- m.constantize.instance_methods(false).map(&:to_s).each do |method|
|
8
|
+
li.list-group-item
|
9
|
+
a href=rails_email_preview.email_url(mail_class: m.to_s.underscore, mail_action: method.to_s)
|
10
|
+
= method.to_s.humanize
|
@@ -0,0 +1,44 @@
|
|
1
|
+
a.btn.btn-link href=rails_email_preview.root_url « Back to list
|
2
|
+
|
3
|
+
#message_headers
|
4
|
+
.pull-right
|
5
|
+
p.btn-group
|
6
|
+
- { 'text/html' => 'HTML', 'text/plain' => 'Text', 'raw' => 'Raw'}.each do |mime, label|
|
7
|
+
a.btn.btn-link href=rails_email_preview.email_url(params.merge(part_type: mime)) class=('active' if @part_type == mime) = label
|
8
|
+
br
|
9
|
+
p.btn-group
|
10
|
+
- I18n.available_locales.each do |locale|
|
11
|
+
a.btn.btn-link href=rails_email_preview.email_url(params.merge(part_type: @part_type, email_locale: locale)) class=('active' if I18n.locale.to_s == locale.to_s) = locale
|
12
|
+
dl
|
13
|
+
dt From:
|
14
|
+
dd= @mail.from * ', '
|
15
|
+
|
16
|
+
dt To:
|
17
|
+
dd= @mail.to * ', '
|
18
|
+
|
19
|
+
dt Subject:
|
20
|
+
dd
|
21
|
+
strong= @mail.subject
|
22
|
+
|
23
|
+
javascript:
|
24
|
+
function iFrameAutoResize(id){
|
25
|
+
document.getElementById('loading-el').style.display = 'none';
|
26
|
+
setTimeout(function(){
|
27
|
+
var newheight;
|
28
|
+
var newwidth;
|
29
|
+
|
30
|
+
if(document.getElementById){
|
31
|
+
newheight = document.getElementById(id).contentWindow.document.body.scrollHeight;
|
32
|
+
|
33
|
+
newwidth = $(document.getElementById(id).parentNode).innerWidth();
|
34
|
+
}
|
35
|
+
|
36
|
+
var el = document.getElementById(id);
|
37
|
+
el.height = (newheight) + "px";
|
38
|
+
el.width = (newwidth) + "px";
|
39
|
+
});
|
40
|
+
}
|
41
|
+
|
42
|
+
pre#loading-el.lead #{icon 'spinner', 'spin'} Loading...
|
43
|
+
iframe#src-iframe[src=rails_email_preview.raw_email_url(params.slice(:mail_class, :mail_action, :part_type).merge(locale: I18n.locale.to_s))
|
44
|
+
width="100%" height=1 onLoad="iFrameAutoResize('src-iframe')" style="border:none;padding:0;margin:0"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_email_preview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gleb Mazovetskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: slim
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '>='
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
description:
|
69
|
+
description: Preview emails in browser (rails engine)
|
70
70
|
email: glex.spb@gmail.com
|
71
71
|
executables: []
|
72
72
|
extensions: []
|
@@ -75,9 +75,9 @@ files:
|
|
75
75
|
- app/assets/stylesheets/rails_email_preview/application.css.sass
|
76
76
|
- app/controllers/rails_email_preview/application_controller.rb
|
77
77
|
- app/controllers/rails_email_preview/emails_controller.rb
|
78
|
-
- app/views/layouts/rails_email_preview/application.html.
|
79
|
-
- app/views/rails_email_preview/emails/index.html.
|
80
|
-
- app/views/rails_email_preview/emails/show.html.
|
78
|
+
- app/views/layouts/rails_email_preview/application.html.slim
|
79
|
+
- app/views/rails_email_preview/emails/index.html.slim
|
80
|
+
- app/views/rails_email_preview/emails/show.html.slim
|
81
81
|
- lib/rails_email_preview/engine.rb
|
82
82
|
- lib/rails_email_preview/version.rb
|
83
83
|
- lib/rails_email_preview.rb
|
@@ -108,5 +108,5 @@ rubyforge_project:
|
|
108
108
|
rubygems_version: 2.0.3
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
|
-
summary:
|
111
|
+
summary: Preview emails in browser (rails engine)
|
112
112
|
test_files: []
|
@@ -1,9 +0,0 @@
|
|
1
|
-
%h1 Application Emails
|
2
|
-
%ul
|
3
|
-
- @preview_class_names.each do |m|
|
4
|
-
%li
|
5
|
-
%h2= m.underscore.humanize
|
6
|
-
%ul
|
7
|
-
- m.constantize.instance_methods(false).map(&:to_s).each do |method|
|
8
|
-
%li
|
9
|
-
%a{:href => rails_email_preview.email_url(:mail_class => m.underscore, :mail_action => method)}= method.humanize
|
@@ -1,38 +0,0 @@
|
|
1
|
-
%a#back-to-all{:href => rails_email_preview.root_url} « Back to list
|
2
|
-
:ruby
|
3
|
-
raw_url = rails_email_preview.email_url(params.merge(:part_type => 'raw'))
|
4
|
-
html_url = if @mail.multipart? || @mail.content_type =~ %r(text/html)
|
5
|
-
rails_email_preview.email_url(params.merge(:part_type => 'text/html'))
|
6
|
-
end
|
7
|
-
plain_url = if @mail.multipart? || @mail.content_type =~ %r(text/plain) || defined?(Premailer::Rails)
|
8
|
-
rails_email_preview.email_url(params.merge(:part_type => 'text/plain'))
|
9
|
-
end
|
10
|
-
|
11
|
-
#message_headers
|
12
|
-
%p.alternate
|
13
|
-
- if @part_type != 'raw'
|
14
|
-
%a{:href => raw_url} View Original Message (raw)
|
15
|
-
%br
|
16
|
-
- if @part_type != 'text/html' && html_url
|
17
|
-
%a{:href => html_url} View HTML version
|
18
|
-
%br
|
19
|
-
- if @part_type != 'text/plain' && plain_url
|
20
|
-
%a{:href => plain_url} View plain text version
|
21
|
-
%dl
|
22
|
-
%dt From:
|
23
|
-
%dd= @mail.from
|
24
|
-
|
25
|
-
%dt Subject:
|
26
|
-
%dd
|
27
|
-
%strong= @mail.subject
|
28
|
-
|
29
|
-
%dt Date:
|
30
|
-
%dd= Time.now.strftime("%b %e, %Y %I:%M:%S %p %Z")
|
31
|
-
|
32
|
-
%dt To:
|
33
|
-
%dd= @mail.to
|
34
|
-
|
35
|
-
%iframe#src-iframe{:src => rails_email_preview.raw_email_url(params.slice(:mail_class, :mail_action, :part_type)),
|
36
|
-
:width => "100%", :height => "800", :onload => "document.getElementById('src-iframe').style.display = 'block';document.getElementById('loading').style.display = 'none'", :style => "display:none"}
|
37
|
-
%pre#loading Loading...
|
38
|
-
|