rails_email_preview 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/rails_email_preview/application.css.sass +17 -27
- data/app/assets/stylesheets/rails_email_preview/bootstrap.css +4880 -0
- data/app/helpers/rails_email_preview/emails_helper.rb +41 -2
- data/app/views/integrations/cms/_customize_cms_for_rails_email_preview.html.slim +12 -0
- data/app/views/rails_email_preview/emails/_format_nav.html.slim +5 -0
- data/app/views/rails_email_preview/emails/_headers.html.slim +4 -17
- data/app/views/rails_email_preview/emails/_i18n_nav.html.slim +5 -0
- data/app/views/rails_email_preview/emails/_send_form.html.slim +1 -1
- data/app/views/rails_email_preview/emails/index.html.slim +3 -3
- data/app/views/rails_email_preview/emails/show.html.slim +16 -10
- data/config/locales/rep.en.yml +2 -1
- data/lib/rails_email_preview/version.rb +1 -1
- metadata +5 -3
- data/app/views/rails_email_preview/emails/_toolbar.html.slim +0 -13
@@ -1,4 +1,43 @@
|
|
1
1
|
module RailsEmailPreview::EmailsHelper
|
2
|
+
def current_email_name
|
3
|
+
"#{preview_class_human_name}: #{@mail_action.to_s.humanize}"
|
4
|
+
end
|
5
|
+
|
6
|
+
def preview_class_human_name(preview_class = @preview_class)
|
7
|
+
preview_class.to_s.underscore.sub(/(_mailer)?_preview$/, '').humanize
|
8
|
+
end
|
9
|
+
|
10
|
+
def change_locale_attr(locale)
|
11
|
+
{href: rails_email_preview.rep_email_url(params.merge(part_type: @part_type, email_locale: locale)),
|
12
|
+
class: ('active' if @email_locale == locale.to_s)}
|
13
|
+
end
|
14
|
+
|
15
|
+
def change_format_attr(mime)
|
16
|
+
{href: rails_email_preview.rep_email_url(params.merge(part_type: mime)),
|
17
|
+
class: ('active' if @part_type == mime)}
|
18
|
+
end
|
19
|
+
|
20
|
+
def locale_name(locale)
|
21
|
+
if defined?(TwitterCldr)
|
22
|
+
TwitterCldr::Shared::LanguageCodes.to_language(locale.to_s, :bcp_47)
|
23
|
+
else
|
24
|
+
locale.to_s
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def headers_name_value
|
29
|
+
I18n.with_locale @email_locale do
|
30
|
+
{
|
31
|
+
'Subject' => @mail.subject || '(no subject)',
|
32
|
+
'From' => @mail.from,
|
33
|
+
'Reply to' => @mail.reply_to,
|
34
|
+
'To' => @mail.to,
|
35
|
+
'CC' => @mail.cc,
|
36
|
+
'BCC' => @mail.bcc
|
37
|
+
}.delete_if { |k, v| v.blank? }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
2
41
|
def format_header(value)
|
3
42
|
if value.is_a?(Array)
|
4
43
|
value.map(&:to_s) * ', '
|
@@ -12,8 +51,8 @@ module RailsEmailPreview::EmailsHelper
|
|
12
51
|
end
|
13
52
|
|
14
53
|
def split_in_halves(elements, &weight)
|
15
|
-
tot_w
|
16
|
-
cols
|
54
|
+
tot_w = elements.map(&weight).sum
|
55
|
+
cols = [elements.dup, []]
|
17
56
|
col2_w = 0
|
18
57
|
cols[0].reverse_each do |cl|
|
19
58
|
n = weight.call(cl)
|
@@ -1,10 +1,22 @@
|
|
1
1
|
-# When rendering inside rails_email_preview hide nav, and hide irrelevant things from the form
|
2
|
+
ruby:
|
3
|
+
prefix = 'email-'
|
4
|
+
if @snippet && @snippet.identifier.try(:start_with?, prefix) && %w(new edit create update).include?(params[:action])
|
5
|
+
url_params = {part_type: 'text/html'}
|
6
|
+
url_params[:mail_class], url_params[:mail_action] = @snippet.identifier[prefix.length..-1].split('-')
|
7
|
+
url_params[:mail_class] += '_preview'
|
8
|
+
show_url = rails_email_preview.rep_raw_email_url url_params
|
9
|
+
end
|
2
10
|
javascript:
|
3
11
|
jQuery(function($) {
|
4
12
|
if (window.parent && /email/.test(parent.location.href)) {
|
5
13
|
// Hide nav:
|
6
14
|
$('.left-column,.right-column').hide();
|
7
15
|
$('.center-column').css('margin', 0);
|
16
|
+
$('.page-header h2').html(
|
17
|
+
"Editing email" +
|
18
|
+
" <a href='#{show_url}'>#{t 'rep.view_link'}</a>"
|
19
|
+
)
|
8
20
|
|
9
21
|
// Snippet form:
|
10
22
|
var control = function(name) { return $('[name^="snippet[' + name + ']"]').closest('.control-group'); };
|
@@ -1,17 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
'From' => @mail.from,
|
6
|
-
'Reply to' => @mail.reply_to,
|
7
|
-
'To' => @mail.to,
|
8
|
-
'CC' => @mail.cc,
|
9
|
-
'BCC' => @mail.bcc
|
10
|
-
}.delete_if { |k, v| v.blank? }
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
dl.inline-dl
|
15
|
-
- headers.each do |header, value|
|
16
|
-
dt = header
|
17
|
-
dd = format_header(value)
|
1
|
+
dl.rep-headers-list.dl-horizontal
|
2
|
+
- headers_name_value.each do |name, value|
|
3
|
+
dt = name
|
4
|
+
dd = format_header value
|
@@ -2,7 +2,7 @@ h1 #{t 'rep.list_title'}
|
|
2
2
|
|
3
3
|
- previews_group = proc do |m|
|
4
4
|
- capture do
|
5
|
-
h2= m
|
5
|
+
h2 = preview_class_human_name(m)
|
6
6
|
ul.list-group
|
7
7
|
- email_methods(m).each do |method|
|
8
8
|
li.list-group-item
|
@@ -10,7 +10,7 @@ h1 #{t 'rep.list_title'}
|
|
10
10
|
= method.to_s.humanize
|
11
11
|
|
12
12
|
.row
|
13
|
-
- split_in_halves(@preview_class_names) { |c| email_methods(c).length }
|
14
|
-
.col-sm-6
|
13
|
+
- split_in_halves(@preview_class_names) { |c| email_methods(c).length }.each do |classes|
|
14
|
+
.col-sm-6.col-lg-6
|
15
15
|
- classes.each do |class_name|
|
16
16
|
= previews_group.call(class_name)
|
@@ -1,14 +1,20 @@
|
|
1
|
-
.
|
2
|
-
.
|
3
|
-
|
4
|
-
|
1
|
+
.rep-email-show#email-show
|
2
|
+
.row
|
3
|
+
.pull-left
|
4
|
+
ul.breadcrumb
|
5
|
+
li: a href=rails_email_preview.rep_emails_url(email_locale: @email_locale) #{t 'rep.breadcrumb_list'}
|
6
|
+
li.active: a href=(request.url) = current_email_name
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
-# Locale, format and actions
|
8
|
+
.panel: .row
|
9
|
+
-# From, To, Subject and other headers
|
10
|
+
.col-8= render 'rails_email_preview/emails/headers'
|
10
11
|
|
11
|
-
-#
|
12
|
-
.
|
12
|
+
-# Locale, format and actions
|
13
|
+
.col-4: ul.list-unstyled.text-right.rep-email-options
|
14
|
+
li= render 'rails_email_preview/emails/i18n_nav'
|
15
|
+
li= render 'rails_email_preview/emails/send_form' if RailsEmailPreview.enable_send_email
|
16
|
+
li= render 'rails_email_preview/emails/format_nav'
|
17
|
+
|
18
|
+
-# actual email content, rendered in an iframe to prevent browser styles from interfering
|
13
19
|
.margin-right
|
14
20
|
= render 'rails_email_preview/emails/email_iframe'
|
data/config/locales/rep.en.yml
CHANGED
@@ -5,8 +5,9 @@ en:
|
|
5
5
|
provide_email: Send to which address?
|
6
6
|
sent_notice: "Sent to %{address} via %{delivery_method}"
|
7
7
|
list_title: Application Emails
|
8
|
-
|
8
|
+
breadcrumb_list: Emails
|
9
9
|
send_recipient_placeholder: Email
|
10
10
|
send_btn: Send to
|
11
11
|
send_are_you_sure: This will actually send this email. Are you sure?
|
12
|
+
view_link: View
|
12
13
|
|
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.5
|
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-08-
|
11
|
+
date: 2013-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -117,15 +117,17 @@ extensions: []
|
|
117
117
|
extra_rdoc_files: []
|
118
118
|
files:
|
119
119
|
- app/assets/stylesheets/rails_email_preview/application.css.sass
|
120
|
+
- app/assets/stylesheets/rails_email_preview/bootstrap.css
|
120
121
|
- app/controllers/rails_email_preview/application_controller.rb
|
121
122
|
- app/controllers/rails_email_preview/emails_controller.rb
|
122
123
|
- app/helpers/rails_email_preview/emails_helper.rb
|
123
124
|
- app/views/integrations/cms/_customize_cms_for_rails_email_preview.html.slim
|
124
125
|
- app/views/layouts/rails_email_preview/application.html.slim
|
125
126
|
- app/views/rails_email_preview/emails/_email_iframe.html.slim
|
127
|
+
- app/views/rails_email_preview/emails/_format_nav.html.slim
|
126
128
|
- app/views/rails_email_preview/emails/_headers.html.slim
|
129
|
+
- app/views/rails_email_preview/emails/_i18n_nav.html.slim
|
127
130
|
- app/views/rails_email_preview/emails/_send_form.html.slim
|
128
|
-
- app/views/rails_email_preview/emails/_toolbar.html.slim
|
129
131
|
- app/views/rails_email_preview/emails/index.html.slim
|
130
132
|
- app/views/rails_email_preview/emails/show.html.slim
|
131
133
|
- lib/generators/rails_email_preview/install_generator.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
.btn-toolbar.pull-right
|
2
|
-
.btn-group
|
3
|
-
- I18n.available_locales.each do |locale|
|
4
|
-
a.btn href=rails_email_preview.rep_email_url(params.merge(part_type: @part_type, email_locale: locale)) class=('active' if @email_locale == locale.to_s)
|
5
|
-
= locale
|
6
|
-
|
7
|
-
.btn-group
|
8
|
-
- { 'text/html' => 'HTML', 'text/plain' => 'Text', 'raw' => 'Raw'}.each do |mime, label|
|
9
|
-
a.btn href=rails_email_preview.rep_email_url(params.merge(part_type: mime)) class=('active' if @part_type == mime)
|
10
|
-
= label
|
11
|
-
|
12
|
-
- if RailsEmailPreview.enable_send_email
|
13
|
-
.btn-group= render 'rails_email_preview/emails/send_form'
|