rails_email_preview 0.2.11 → 0.2.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +96 -70
- data/app/views/integrations/cms/_customize_cms_for_rails_email_preview.html.slim +2 -2
- data/app/views/layouts/rails_email_preview/application.html.slim +1 -1
- data/app/views/rails_email_preview/emails/_email_iframe.html.slim +24 -12
- data/app/views/rails_email_preview/emails/_send_form.html.slim +2 -2
- data/app/views/rails_email_preview/emails/index.html.slim +2 -2
- data/app/views/rails_email_preview/emails/show.html.slim +1 -1
- data/config/locales/de.yml +33 -0
- data/config/locales/en.yml +33 -0
- data/lib/rails_email_preview/version.rb +1 -1
- metadata +4 -3
- data/config/locales/rep.en.yml +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 528049f3b44f95cb5ce989849643ea8cd8dd4420
|
4
|
+
data.tar.gz: 9706cd13d2749ccc82a80cd8b43864867a6d6598
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cce764481f48980482629a5e84feb9f13c5b95472f2a65f2b06a028a67754fa6d302c6fb276fce1e10b69e79deca1a0e72cfcff50dbd2fd0b4ac0d5ed04d4415
|
7
|
+
data.tar.gz: 1699e0d59af2b6af7a67d4bfc2197ce93a7c206307e5459c1ab28ec776fb5a83b7da1f79df8146a97279373cc4b2f31a47e47adf0f888c5470ea9a793725650b
|
data/README.md
CHANGED
@@ -17,42 +17,48 @@ How to
|
|
17
17
|
|
18
18
|
Add to Gemfile
|
19
19
|
|
20
|
-
|
20
|
+
```ruby
|
21
|
+
gem 'rails_email_preview', '~> 0.2.12'
|
22
|
+
```
|
21
23
|
|
22
24
|
REP handles setup for you:
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
+
```ruby
|
27
|
+
# adds initializer and route:
|
28
|
+
rails g rails_email_preview:install
|
26
29
|
|
27
|
-
|
28
|
-
|
30
|
+
# generates preview classes and method stubs in app/mailer_previews/:
|
31
|
+
rails g rails_email_preview:update_previews
|
32
|
+
```
|
29
33
|
|
30
34
|
This last generator will add a stub for each of your emails, then you populate the stubs with mock data:
|
31
35
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
36
|
+
```ruby
|
37
|
+
# app/mailer_previews/user_mailer_preview.rb:
|
38
|
+
class UserMailerPreview
|
39
|
+
# preview methods should return Mail objects, e.g.:
|
40
|
+
def invitation
|
41
|
+
UserMailer.invitation mock_user('Alice'), mock_user('Bob')
|
42
|
+
end
|
43
|
+
|
44
|
+
def welcome
|
45
|
+
UserMailer.welcome mock_user
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
# You can put all your mock helpers in a module
|
50
|
+
# or you can use your factories / fabricators, just make sure you are not creating anythin
|
51
|
+
def mock_user(name = 'Bill Gates')
|
52
|
+
fake_id User.new(name: name, email: "user#{rand 100}@test.com")
|
53
|
+
end
|
54
|
+
|
55
|
+
def fake_id(obj)
|
56
|
+
# overrides the method on just this object
|
57
|
+
obj.define_singleton_method(:id) { 123 + rand(100) }
|
58
|
+
obj
|
59
|
+
end
|
60
|
+
end
|
61
|
+
```
|
56
62
|
|
57
63
|
|
58
64
|
Routing
|
@@ -60,12 +66,14 @@ Routing
|
|
60
66
|
|
61
67
|
You can access REP urls like this:
|
62
68
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
+
```ruby
|
70
|
+
# engine root:
|
71
|
+
rails_email_preview.rep_root_url
|
72
|
+
# list of emails (same as root):
|
73
|
+
rails_email_preview.rep_emails_url
|
74
|
+
# email show:
|
75
|
+
rails_email_preview.rep_email_url(mail_class: "user_mailer", mail_action: "welcome")
|
76
|
+
```
|
69
77
|
|
70
78
|
Send Emails
|
71
79
|
-------------------
|
@@ -74,7 +82,9 @@ You can send emails via REP. This is especially useful when testing with limited
|
|
74
82
|
This will use the environment's mailer settings, but the handler will `perform_deliveries`.
|
75
83
|
Uncomment this line in the initializer to disable sending test emails:
|
76
84
|
|
77
|
-
|
85
|
+
```ruby
|
86
|
+
config.enable_send_email = false
|
87
|
+
```
|
78
88
|
|
79
89
|
Email editing
|
80
90
|
-------------
|
@@ -97,16 +107,20 @@ I18n
|
|
97
107
|
-------------
|
98
108
|
|
99
109
|
REP expects emails to use current `I18n.locale`:
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
# current locale
|
113
|
+
AccountMailer.some_notification.deliver
|
114
|
+
# different locale
|
115
|
+
I18n.with_locale('es') { InviteMailer.send_invites.deliver }
|
116
|
+
|
117
|
+
```
|
106
118
|
When linking to REP pages you can pass `email_locale` to set the locale for rendering:
|
107
119
|
|
108
|
-
|
109
|
-
|
120
|
+
```ruby
|
121
|
+
# will render email in Spanish:
|
122
|
+
rails_email_preview.root_url(email_locale: 'es')
|
123
|
+
```
|
110
124
|
|
111
125
|
|
112
126
|
If you are using `Resque::Mailer` or `Devise::Async`, you can automatically add I18n.locale information when the mail job is scheduled
|
@@ -114,32 +128,40 @@ If you are using `Resque::Mailer` or `Devise::Async`, you can automatically add
|
|
114
128
|
|
115
129
|
REP displays too many locales? Make sure to set `config.i18n.available_locales`, since it defaults to *all* locales in Rails.
|
116
130
|
|
131
|
+
REP's own UI is fully localized, available locales are: en, de.
|
132
|
+
|
117
133
|
Views
|
118
134
|
---------------------
|
119
135
|
|
120
136
|
You can render all REP views inside your app layout (this will need styling to look nice if you don't use bootstrap):
|
121
137
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
138
|
+
```ruby
|
139
|
+
Rails.application.config.to_prepare do
|
140
|
+
# Use admin layout with REP (this will also make app routes accessible within REP):
|
141
|
+
RailsEmailPreview.layout = 'admin'
|
142
|
+
end
|
143
|
+
```
|
126
144
|
|
127
145
|
REP allows you to customize some of the element classes via `RailsEmailPreview.style`:
|
128
146
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
147
|
+
```ruby
|
148
|
+
{
|
149
|
+
btn_default_class: 'btn btn-default',
|
150
|
+
btn_active_class: 'btn btn-primary active',
|
151
|
+
btn_group_class: 'btn-group',
|
152
|
+
list_group_class: 'list-group',
|
153
|
+
list_group_item_class: 'list-group-item',
|
154
|
+
panel_class: 'panel',
|
155
|
+
row_class: 'row',
|
156
|
+
column_class: 'col-%{n}'
|
157
|
+
}
|
158
|
+
```
|
139
159
|
|
140
160
|
E.g., to change column class from `col-` to `column-` everywhere where REP uses columns:
|
141
161
|
|
142
|
-
|
162
|
+
```ruby
|
163
|
+
RailsEmailPreview.style[:column_class] = 'column-%{n}'
|
164
|
+
```
|
143
165
|
|
144
166
|
You can `//= require 'rails_email_preview/layout'` REP-specific styles (`@import 'rails_email_preview/layout'` for SASS).
|
145
167
|
|
@@ -152,20 +174,24 @@ Authentication & authorization
|
|
152
174
|
You can specify the parent controller for REP controller, and it will inherit all before filters.
|
153
175
|
Note that this must be placed before any other references to REP application controller in the initializer (and before `layout=` call):
|
154
176
|
|
155
|
-
|
177
|
+
```ruby
|
178
|
+
RailsEmailPreview.parent_controller = 'Admin::ApplicationController' # default: '::ApplicationController'
|
179
|
+
```
|
156
180
|
|
157
181
|
Alternatively, to have custom rules just for REP you can:
|
158
182
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
183
|
+
```ruby
|
184
|
+
Rails.application.config.to_prepare do
|
185
|
+
RailsEmailPreview::ApplicationController.module_eval do
|
186
|
+
before_filter :check_rep_permissions
|
187
|
+
|
188
|
+
private
|
189
|
+
def check_rep_permissions
|
190
|
+
render status: 403 unless current_user && can_manage_emails?(current_user)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
```
|
169
195
|
|
170
196
|
|
171
197
|
This project rocks and uses MIT-LICENSE.
|
@@ -13,8 +13,8 @@ ruby:
|
|
13
13
|
$('.left-column,.right-column').hide();
|
14
14
|
$('.center-column').css('margin', 0);
|
15
15
|
$('.page-header h2').html(
|
16
|
-
"
|
17
|
-
" <a class='btn btn-primary' href='#{show_url}'>#{t '
|
16
|
+
"#{t '.edit_email'}" +
|
17
|
+
" <a class='btn btn-primary' href='#{show_url}'>#{t '.view_link'}</a>"
|
18
18
|
)
|
19
19
|
|
20
20
|
// Snippet form:
|
@@ -1,18 +1,30 @@
|
|
1
1
|
javascript:
|
2
|
-
function
|
3
|
-
var
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
(function(doc){
|
3
|
+
var rep = window.rep = window['rep'] || {
|
4
|
+
resizeIframe: function(id) {
|
5
|
+
var el = doc.getElementById(id),
|
6
|
+
w = el.parentNode.clientWidth,
|
7
|
+
h = el.contentWindow.document.body.scrollHeight;
|
8
|
+
el.height = (h) + "px";
|
9
|
+
el.width = (w) + "px";
|
10
|
+
},
|
11
|
+
iframeLoad: function(id){
|
12
|
+
document.getElementById('loading-el').style.display = 'none';
|
13
|
+
setTimeout(function() { rep.resizeIframe(id); rep.loaded = true; });
|
14
|
+
},
|
15
|
+
resizeAttached: false
|
9
16
|
};
|
10
|
-
|
11
|
-
|
12
|
-
|
17
|
+
rep.loaded = false;
|
18
|
+
if (!rep.resizeAttached) {
|
19
|
+
window.addEventListener('resize', function() {
|
20
|
+
if (rep.loaded) rep.resizeIframe('src-iframe');
|
21
|
+
});
|
22
|
+
rep.resizeAttached = true
|
23
|
+
}
|
24
|
+
})(document)
|
13
25
|
|
14
26
|
pre#loading-el.lead
|
15
27
|
i.icon-spinner.icon-spin
|
16
|
-
|
|
28
|
+
| #{t 'rep.base.loading'}
|
17
29
|
iframe#src-iframe[src=rails_email_preview.rep_raw_email_url(params.slice(:mail_class, :mail_action, :part_type).merge(email_locale: @email_locale))
|
18
|
-
width="100%" height=1 onLoad="
|
30
|
+
width="100%" height=1 onLoad="rep.iframeLoad('src-iframe')" style="border:none;padding:0;margin:0"]
|
@@ -2,5 +2,5 @@
|
|
2
2
|
= form_tag rails_email_preview.rep_test_deliver_url, method: :post do
|
3
3
|
= hidden_field_tag :email_locale, @email_locale
|
4
4
|
.input-group
|
5
|
-
span.input-group-btn: button.btn.btn-danger type='submit' data-confirm=t('
|
6
|
-
= text_field_tag :recipient_email, '', class: 'form-control', placeholder: t('
|
5
|
+
span.input-group-btn: button.btn.btn-danger type='submit' data-confirm=t('.send_are_you_sure') #{t('.send_btn')}
|
6
|
+
= text_field_tag :recipient_email, '', class: 'form-control', placeholder: t('.send_recipient_placeholder')
|
@@ -1,5 +1,5 @@
|
|
1
1
|
h1
|
2
|
-
| #{t '
|
2
|
+
| #{t '.list_title'}
|
3
3
|
|
4
4
|
- previews_group = proc do |m|
|
5
5
|
- capture do
|
@@ -19,6 +19,6 @@ div class=rep_row_class
|
|
19
19
|
hr
|
20
20
|
|
21
21
|
p.text-center.text-small.text-info
|
22
|
-
| #{total_emails}
|
22
|
+
| #{t 'rep.base.email', count: total_emails} #{t 'rep.base.in'} #{t 'rep.base.mailer', count: @preview_class_names.length }
|
23
23
|
br
|
24
24
|
a href="https://github.com/glebm/rails_email_preview" target='_blank' REP #{RailsEmailPreview::VERSION}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
div class=rep_row_class
|
3
3
|
.pull-left
|
4
4
|
ul.breadcrumb
|
5
|
-
li: a href=rails_email_preview.rep_emails_url(email_locale: @email_locale) #{t '
|
5
|
+
li: a href=rails_email_preview.rep_emails_url(email_locale: @email_locale) #{t '.breadcrumb_list'}
|
6
6
|
li.active: a href=(request.url) = current_email_name
|
7
7
|
|
8
8
|
div class=rep_style[:panel_class]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
de:
|
2
|
+
rep:
|
3
|
+
base:
|
4
|
+
email:
|
5
|
+
one: "1 E-Mail"
|
6
|
+
other: "%{count} E-Mails"
|
7
|
+
mailer:
|
8
|
+
one: "1 Mailer"
|
9
|
+
other: "%{count} Mailer"
|
10
|
+
in: "in"
|
11
|
+
loading: "Lade..."
|
12
|
+
test_deliver:
|
13
|
+
no_delivery_method: "Bitte setze 'config.action_mailer.delivery_method' um E-Mails in der „%{environment}“ Umgebung zu senden."
|
14
|
+
provide_email: "An welche Adresse senden?"
|
15
|
+
sent_notice: "Senden an %{address} mit %{delivery_method}"
|
16
|
+
layouts:
|
17
|
+
rails_email_preview:
|
18
|
+
application:
|
19
|
+
head_title: "E-Mails - REP"
|
20
|
+
rails_email_preview:
|
21
|
+
emails:
|
22
|
+
index:
|
23
|
+
list_title: "Anwendungs E-Mails"
|
24
|
+
show:
|
25
|
+
breadcrumb_list: "E-Mails"
|
26
|
+
send_form:
|
27
|
+
send_are_you_sure: "Diese Aktion wird diese E-Mail wirklich versenden. Bist du sicher?"
|
28
|
+
send_btn: "Senden an"
|
29
|
+
send_recipient_placeholder: "E-Mails"
|
30
|
+
integrations:
|
31
|
+
cms:
|
32
|
+
edit_email: "E-Mail bearbeiten"
|
33
|
+
view_link: "Anzeigen"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
en:
|
2
|
+
rep:
|
3
|
+
base:
|
4
|
+
email:
|
5
|
+
one: "1 email"
|
6
|
+
other: "%{count} emails"
|
7
|
+
mailer:
|
8
|
+
one: "1 mailer"
|
9
|
+
other: "%{count} mailers"
|
10
|
+
in: "in"
|
11
|
+
loading: "Loading..."
|
12
|
+
test_deliver:
|
13
|
+
no_delivery_method: "Please set 'config.action_mailer.delivery_method' to send emails in '%{environment}' environment"
|
14
|
+
provide_email: "Send to which address?"
|
15
|
+
sent_notice: "Sent to %{address} via %{delivery_method}"
|
16
|
+
layouts:
|
17
|
+
rails_email_preview:
|
18
|
+
application:
|
19
|
+
head_title: "Emails - REP"
|
20
|
+
rails_email_preview:
|
21
|
+
emails:
|
22
|
+
index:
|
23
|
+
list_title: "Application Emails"
|
24
|
+
show:
|
25
|
+
breadcrumb_list: "Emails"
|
26
|
+
send_form:
|
27
|
+
send_are_you_sure: "This will actually send this email. Are you sure?"
|
28
|
+
send_btn: "Send to"
|
29
|
+
send_recipient_placeholder: "Email"
|
30
|
+
integrations:
|
31
|
+
cms:
|
32
|
+
edit_email: "Editing email"
|
33
|
+
view_link: "View"
|
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.2.
|
4
|
+
version: 0.2.12
|
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-
|
11
|
+
date: 2013-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -170,7 +170,8 @@ files:
|
|
170
170
|
- lib/rails_email_preview/version.rb
|
171
171
|
- lib/rails_email_preview.rb
|
172
172
|
- config/initializers/rails_email_preview.rb
|
173
|
-
- config/locales/
|
173
|
+
- config/locales/de.yml
|
174
|
+
- config/locales/en.yml
|
174
175
|
- config/routes.rb
|
175
176
|
- MIT-LICENSE
|
176
177
|
- Rakefile
|
data/config/locales/rep.en.yml
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
en:
|
2
|
-
rep:
|
3
|
-
test_deliver:
|
4
|
-
no_delivery_method: Please set "config.action_mailer.delivery_method" to send emails in "%{environment}" environment
|
5
|
-
provide_email: Send to which address?
|
6
|
-
sent_notice: "Sent to %{address} via %{delivery_method}"
|
7
|
-
list_title: Application Emails
|
8
|
-
breadcrumb_list: Emails
|
9
|
-
send_recipient_placeholder: Email
|
10
|
-
send_btn: Send to
|
11
|
-
send_are_you_sure: This will actually send this email. Are you sure?
|
12
|
-
view_link: View
|
13
|
-
head_title: Emails - REP
|
14
|
-
|