effective_email_templates 1.0.4 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a238b8b71692835a5696b2e39af036262811cf4afbbf33c44fdbaf1f97281d7
4
- data.tar.gz: 943bb0895bc01b14eaa6186f560c3ed7d69ff9a825abbe0e4b287100d5865d40
3
+ metadata.gz: 1051f0fdea5606d0c44e97e4a9b8776ebec40ed2e9ad53dd9bedb11ea07fec92
4
+ data.tar.gz: e9c20eaa1d0b59b010d9cf35ec493e0f5fe0b9278efaf8165109298ab27eabd9
5
5
  SHA512:
6
- metadata.gz: 818eff0c9972b335a6e61eb0afd4bb7abdcf25fbb970d8f3e151be81b102303ae007d88ddb81f9c24b3a28a0055cb22f7c33af7edcd9bb4167ce1bf79e15a7e5
7
- data.tar.gz: 691d13d33273802ab710493d8509efe3952bf57032a45efd5e2afaedb5d21b81713224c07c09e0dcf1a2b8ed2bf91e5965593520ae9cce3ff2ff35b1b42f44cb
6
+ metadata.gz: 780ff3d0e553a9b463de798b3a66504adf4594ba907dd98857b6185c7f27267c4d0e47d9ac456b4c64ba4b9b2075be8080bf30f84bb62100b94f95167980d49d
7
+ data.tar.gz: a965fd38e92b81d5ca9d892248d75a16267af7dd0df9a1c5aacccbe1842cd083bbb3b30676d3db85f13b9a1ffb460347ba49cbcec700db19e5f5542d314c46e3
@@ -34,7 +34,11 @@ module Admin
34
34
  end
35
35
 
36
36
  def edit
37
- @email_template = Effective::EmailTemplate.find(params[:id])
37
+ @email_template =
38
+ Effective::EmailTemplate.where(id: params[:id]).or(
39
+ Effective::EmailTemplate.where(template_name: params[:id])
40
+ ).first!
41
+
38
42
  @page_title = 'Edit Email Template'
39
43
 
40
44
  authorize_effective_email_templates!
@@ -14,6 +14,8 @@ class EffectiveEmailTemplatesDatatable < Effective::Datatable
14
14
  col :subject
15
15
  col :body
16
16
 
17
+ col :content_type, visible: false
18
+
17
19
  actions_col partial: '/admin/email_templates/actions', partial_as: 'email_template'
18
20
  end
19
21
 
@@ -21,4 +23,3 @@ class EffectiveEmailTemplatesDatatable < Effective::Datatable
21
23
  Effective::EmailTemplate.all
22
24
  end
23
25
  end
24
-
@@ -4,7 +4,7 @@
4
4
  module HasOneEmailReview
5
5
  extend ActiveSupport::Concern
6
6
 
7
- module ActiveRecord
7
+ module Base
8
8
  def has_one_email_review
9
9
  include ::HasOneEmailReview
10
10
  end
@@ -2,6 +2,8 @@ module Effective
2
2
  class EmailTemplate < ActiveRecord::Base
3
3
  self.table_name = EffectiveEmailTemplates.email_templates_table_name.to_s
4
4
 
5
+ log_changes if respond_to?(:log_changes)
6
+
5
7
  CONTENT_TYPES = ['text/plain', 'text/html']
6
8
 
7
9
  # Attributes
@@ -42,6 +44,20 @@ module Effective
42
44
  validates :content_type, presence: true, inclusion: { in: CONTENT_TYPES }
43
45
  validates :template_name, presence: true
44
46
 
47
+ # validate(if: -> { content_type == 'text/html' && body.present? }) do
48
+ # unless body.include?('<') && body.include?('>')
49
+ # self.errors.add(:content_type, 'expected html tags in body')
50
+ # self.errors.add(:body, 'expected html tags in body')
51
+ # end
52
+ # end
53
+
54
+ # validate(if: -> { content_type == 'text/plain' && body.present? }) do
55
+ # if body.include?('</a>') || body.include?('</p>')
56
+ # self.errors.add(:content_type, 'expected no html tags in body')
57
+ # self.errors.add(:body, 'expected no html tags in body')
58
+ # end
59
+ # end
60
+
45
61
  def to_s
46
62
  template_name.presence || 'New Email Template'
47
63
  end
@@ -49,14 +65,14 @@ module Effective
49
65
  def render(assigns = {})
50
66
  assigns = deep_stringify_assigns(assigns)
51
67
 
52
- {
68
+ result = {
53
69
  from: from,
54
- cc: cc.presence || false,
55
- bcc: bcc.presence || false,
70
+ cc: cc.presence,
71
+ bcc: bcc.presence,
56
72
  content_type: content_type,
57
73
  subject: template_subject.render(assigns),
58
74
  body: template_body.render(assigns)
59
- }
75
+ }.compact
60
76
  end
61
77
 
62
78
  def template_variables
@@ -1,6 +1,8 @@
1
1
  = effective_form_with(model: email_template, url: email_template.persisted? ? effective_email_templates.admin_email_template_path(email_template.id) : effective_email_templates.admin_email_templates_path) do |f|
2
2
  = f.static_field :template_name, label: 'Name'
3
- = f.select :content_type, Effective::EmailTemplate::CONTENT_TYPES
3
+
4
+ - if EffectiveEmailTemplates.select_content_type
5
+ = f.select :content_type, Effective::EmailTemplate::CONTENT_TYPES
4
6
 
5
7
  = f.email_field :from, hint: 'Whom the email will be sent from'
6
8
  = f.text_field :cc
@@ -1,6 +1,6 @@
1
1
  = form.fields_for(:email_review, email_review) do |f|
2
- = f.text_field :template_name
3
- = f.text_area :body, rows: 10
2
+ = f.hidden_field :template_name
3
+ = f.text_area :body, required: true, rows: 10
4
4
 
5
5
  = collapse('Show / hide email variables') do
6
6
  %p The available variables are:
@@ -32,4 +32,7 @@ EffectiveEmailTemplates.setup do |config|
32
32
  admin_email_templates: 'admin'
33
33
  }
34
34
 
35
+ # Not allowed to select text/html by default
36
+ config.select_content_type = false
37
+
35
38
  end
@@ -6,6 +6,7 @@ module EffectiveEmailTemplates
6
6
 
7
7
  mattr_accessor :email_templates_table_name
8
8
  mattr_accessor :authorization_method
9
+ mattr_accessor :select_content_type
9
10
  mattr_accessor :layout
10
11
 
11
12
  def self.setup
@@ -10,7 +10,7 @@ module EffectiveEmailTemplates
10
10
  # Include has_one_email_review concern and allow any ActiveRecord object to call it
11
11
  initializer 'effective_email_templates.active_record' do |app|
12
12
  ActiveSupport.on_load :active_record do
13
- ActiveRecord::Base.extend(HasOneEmailReview::ActiveRecord)
13
+ ActiveRecord::Base.extend(HasOneEmailReview::Base)
14
14
  end
15
15
  end
16
16
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveEmailTemplates
2
- VERSION = '1.0.4'.freeze
2
+ VERSION = '1.0.9'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_email_templates
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-19 00:00:00.000000000 Z
11
+ date: 2020-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -119,7 +119,7 @@ homepage: https://github.com/code-and-effect/effective_email_templates
119
119
  licenses:
120
120
  - MIT
121
121
  metadata: {}
122
- post_install_message:
122
+ post_install_message:
123
123
  rdoc_options: []
124
124
  require_paths:
125
125
  - lib
@@ -134,8 +134,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  - !ruby/object:Gem::Version
135
135
  version: '0'
136
136
  requirements: []
137
- rubygems_version: 3.0.3
138
- signing_key:
137
+ rubygems_version: 3.1.2
138
+ signing_key:
139
139
  specification_version: 4
140
140
  summary: Effective Email Templates provides an admin access to modify email templates
141
141
  test_files: []