diff --git a/app/controllers/my_profile/email_templates_controller.rb b/app/controllers/my_profile/email_templates_controller.rb
index 48eda4e..e15e4b6 100644
--- a/app/controllers/my_profile/email_templates_controller.rb
+++ b/app/controllers/my_profile/email_templates_controller.rb
@@ -15,16 +15,17 @@ class EmailTemplatesController < ApplicationController
def show_parsed
@email_template = owner.email_templates.find(params[:id])
- template_params = {:profile => owner, :environment => environment}
render json: {:parsed_body => @email_template.parsed_body(template_params), :parsed_subject => @email_template.parsed_subject(template_params)}
end
def new
@email_template = owner.email_templates.build(:owner => owner)
+ @template_params_allowed = template_params_allowed template_params.keys
end
def edit
@email_template = owner.email_templates.find(params[:id])
+ @template_params_allowed = template_params_allowed template_params.keys
end
def create
@@ -59,4 +60,17 @@ class EmailTemplatesController < ApplicationController
format.json { head :no_content }
end
end
+
+ private
+
+ def template_params
+ {:profile_name => current_user.name, :environment_name => environment.name }
+ end
+
+ def template_params_allowed params
+ result = ""
+ params.each{ |param| result << "{{ #{param} }} " } if params
+ result
+ end
+
end
diff --git a/app/views/email_templates/_form.html.erb b/app/views/email_templates/_form.html.erb
index 6db38a1..0473bbf 100644
--- a/app/views/email_templates/_form.html.erb
+++ b/app/views/email_templates/_form.html.erb
@@ -16,7 +16,7 @@
<%= _('The following parameters may be used in subject and body:') %>
- {{profile.name}}, {{profile.identifier}}, {{environment.name}}
+ <%= @template_params_allowed %>
<%= render :file => 'shared/tiny_mce' %>
diff --git a/debian/control b/debian/control
index 40bf2eb..3bcce9a 100644
--- a/debian/control
+++ b/debian/control
@@ -15,6 +15,7 @@ Build-Depends: cucumber,
ruby-diffy,
ruby-gettext,
ruby-launchy-shim,
+ ruby-liquid (>= 3.0.3),
ruby-minitest,
ruby-minitest-reporters,
ruby-mocha,
diff --git a/public/stylesheets/profile-editor.scss b/public/stylesheets/profile-editor.scss
index e35ff9e..d0ac0b9 100644
--- a/public/stylesheets/profile-editor.scss
+++ b/public/stylesheets/profile-editor.scss
@@ -168,6 +168,9 @@
.controller-profile_editor .msie6 a.control-panel-roles {
background-image: url(../images/control-panel/role-management.gif)
}
+.controller-profile_editor .control-panel .control-panel-email-templates {
+ background-image: url(../images/control-panel/email.png)
+}
.controller-profile_editor #profile-data {
display: table;
diff --git a/test/functional/environment_email_templates_controller_test.rb b/test/functional/environment_email_templates_controller_test.rb
index b7e4a87..e3bc9d7 100644
--- a/test/functional/environment_email_templates_controller_test.rb
+++ b/test/functional/environment_email_templates_controller_test.rb
@@ -52,8 +52,8 @@ class EnvironmentEmailTemplatesControllerTest < ActionController::TestCase
test "should get parsed template" do
environment = Environment.default
- @email_template.subject = '{{environment.name}}'
- @email_template.body = '{{environment.name}}'
+ @email_template.subject = '{{environment_name}}'
+ @email_template.body = '{{environment_name}}'
@email_template.save!
get :show_parsed, id: @email_template
assert_response :success
diff --git a/test/functional/profile_email_templates_controller_test.rb b/test/functional/profile_email_templates_controller_test.rb
index 612dc15..98a931d 100644
--- a/test/functional/profile_email_templates_controller_test.rb
+++ b/test/functional/profile_email_templates_controller_test.rb
@@ -4,8 +4,8 @@ class ProfileEmailTemplatesControllerTest < ActionController::TestCase
setup do
@profile = fast_create(Community)
- @email_template = EmailTemplate.create!(:name => 'template', :owner => @profile)
@person = create_user_with_permission('templatemanager', 'manage_email_templates', @profile)
+ @email_template = EmailTemplate.create!(:name => 'template', :owner => @profile)
login_as(@person.user.login)
end
@@ -55,14 +55,14 @@ class ProfileEmailTemplatesControllerTest < ActionController::TestCase
test "should get parsed template" do
environment = Environment.default
- @email_template.subject = '{{profile.name}} - {{profile.identifier}}'
- @email_template.body = '{{profile.name}} - {{profile.identifier}} - {{environment.name}}'
+ @email_template.subject = '{{profile_name}} - {{environment_name}}'
+ @email_template.body = '{{profile_name}} - {{environment_name}}'
@email_template.save!
get :show_parsed, id: @email_template, :profile => profile.identifier
assert_response :success
json_response = ActiveSupport::JSON.decode(@response.body)
- assert_equal "#{profile.name} - #{profile.identifier}", json_response['parsed_subject']
- assert_equal "#{profile.name} - #{profile.identifier} - #{environment.name}", json_response['parsed_body']
+ assert_equal "#{@person.name} - #{environment.name}", json_response['parsed_subject']
+ assert_equal "#{@person.name} - #{environment.name}", json_response['parsed_body']
end
end
--
libgit2 0.21.2