Merge pull request #360 from ChrisBr/event_states_bf_new

Email Settings refactoring and bug fixes
This commit is contained in:
Christian Bruckmayer 2014-07-23 15:39:07 +02:00
commit 0ae7991943
13 changed files with 310 additions and 128 deletions

View file

@ -1,5 +1,51 @@
$(function() {
$(function () {
/**
* Toggles email template help below email body textarea field.
*/
$(document).ready( function() {
$(".template-help").hide();
$(".template_help_link").click(function() {
var id = $(this).data('name');
$("#" + id).toggle();
});
});
/**
* Adds the default template as value to the regarding email textarea field.
*/
$(".load_template").on('click', function () {
var template = $(this).data('template');
var textarea_name = $(this).data('name');
$('#' + textarea_name).val(template);
});
/**
* Toggle the required attribute on click on_send_email radio button.
*/
$('.send_on_radio').click(function () {
toggle_required_for_mail_subjects($(this))
});
/**
* Adds required attribute to on_send_email radio button if necessary.
*/
$('.send_on_radio').each(function () {
toggle_required_for_mail_subjects($(this))
});
/**
* Toggle the required attribute helper function.
*/
function toggle_required_for_mail_subjects($this) {
var name = $this.data('name');
if ($this.is(':checked')) {
$('#' + name).prop('required', true);
} else {
$('#' + name).removeAttr('required');
}
}
/**
/**
* Opens a prompt with the URL to copy to clipboard.
* Used in the campaign index view.
*/

View file

@ -76,14 +76,18 @@ class Admin::ConferenceController < ApplicationController
short_title = @conference.short_title
@conference.assign_attributes(params[:conference])
if @conference.start_date_changed? || @conference.end_date_changed?
if @conference.email_settings.send_on_updated_conference_dates
Mailbot.conference_date_update_mail(@conference,date_string(@conference.start_date, @conference.end_date)).deliver
if @conference.email_settings.send_on_updated_conference_dates &&
!@conference.email_settings.updated_conference_dates_subject.blank? &&
@conference.email_settings.updated_conference_dates_template
Mailbot.conference_date_update_mail(@conference).deliver
end
end
if @conference.registration_start_date_changed? || @conference.registration_end_date_changed?
if @conference.email_settings.send_on_updated_conference_registration_dates
Mailbot.conference_registration_date_update_mail(@conference,date_string(@conference.registration_start_date, @conference.registration_end_date)).deliver
if @conference.email_settings.send_on_updated_conference_registration_dates &&
!@conference.email_settings.updated_conference_registration_dates_subject.blank? &&
@conference.email_settings.updated_conference_registration_dates_template
Mailbot.conference_registration_date_update_mail(@conference).deliver
end
end

View file

@ -2,6 +2,8 @@ module Admin
class EventsController < ApplicationController
before_filter :verify_organizer
before_action :get_event, except: [:index, :create]
# FIXME: The timezome should only be applied on output, otherwise
# you get lost in timezone conversions...
# around_filter :set_timezone_for_this_request
@ -71,7 +73,6 @@ module Admin
end
def show
@event = @conference.events.find(params[:id])
@tracks = @conference.tracks
@event_types = @conference.event_types
@comments = @event.root_comments
@ -81,7 +82,6 @@ module Admin
end
def edit
@event = @conference.events.find(params[:id])
@event_types = @conference.event_types
@tracks = Track.all
@comments = @event.root_comments
@ -91,8 +91,7 @@ module Admin
end
def comment
event = @conference.events.find_by_id(params[:id])
comment = Comment.build_from(event, current_user.id, params[:comment])
comment = Comment.build_from(@event, current_user.id, params[:comment])
comment.save!
if !params[:parent].nil?
comment.move_to_child_of(params[:parent])
@ -102,7 +101,6 @@ module Admin
end
def update
@event = Event.find(params[:id])
if params.has_key? :track_id
@event.update_attribute(:track_id, params[:track_id])
end
@ -127,27 +125,30 @@ module Admin
end
def accept
update_state(params[:id], :accept, 'Event accepted!', true)
send_mail = @event.conference.email_settings.send_on_accepted
subject = @event.conference.email_settings.accepted_subject.blank?
update_state(:accept, 'Event accepted!', true, subject, send_mail)
end
def confirm
update_state(params[:id], :confirm, 'Event confirmed!')
update_state(:confirm, 'Event confirmed!')
end
def cancel
update_state(params[:id], :cancel, 'Event canceled!')
update_state(:cancel, 'Event canceled!')
end
def reject
update_state(params[:id], :reject, 'Event rejected!', true)
send_mail = @event.conference.email_settings.send_on_rejected
subject = @event.conference.email_settings.rejected_subject.blank?
update_state(:reject, 'Event rejected!', true, subject, send_mail)
end
def restart
update_state(params[:id], :restart, 'Review started!')
update_state(:restart, 'Review started!')
end
def vote
@event = Event.find(params[:id])
@ratings = @event.votes.includes(:user)
if (votes = current_user.votes.find_by_event_id(params[:id]))
@ -167,39 +168,24 @@ module Admin
private
def update_state(id, transition, notice, mail = false)
event = Event.find(id)
if mail
check_mail_settings(event)
end
if event
begin
if mail
event.send(transition,
send_mail: params[:send_mail])
else
event.send(transition)
end
event.save
rescue Transitions::InvalidTransition => e
redirect_to(
admin_conference_events_path(conference_id: @conference.short_title),
notice: "Update state failed. #{e.message}") && return
end
def get_event
@event = @conference.events.find_by_id(params[:id])
if !@event
redirect_to(admin_conference_events_path(conference_id: @conference.short_title),
notice: notice)
else
redirect_to(admin_conference_events_path(conference_id: @conference.short_title),
notice: 'Error! Could not find event!')
alert: 'Error! Could not find event!') && return
end
@event
end
def check_mail_settings(event)
if !params[:send_mail].blank? && event &&
event.conference.email_settings.rejected_email_template.nil? &&
event.conference.email_settings.accepted_email_template.nil?
def update_state(transition, notice, mail = false, subject = false, send_mail = false)
alert = @event.update_state(transition, mail, subject, send_mail, params[:send_mail].blank?)
if !alert.blank?
return redirect_to(admin_conference_events_path(conference_id: @conference.short_title),
alert: alert) && return
else
redirect_to(admin_conference_events_path(conference_id: @conference.short_title),
notice: 'Update Email Template before Sending Mails') && return
notice: notice) && return
end
end
end

View file

@ -8,7 +8,11 @@ class Admin::VenueController < ApplicationController
@venue = @conference.venue
@venue.assign_attributes(params[:venue])
unless @venue.name.blank? || @venue.address.blank? || @conference.registrations.blank?
if @venue.name_changed? || @venue.address_changed? && @conference.email_settings.send_on_venue_update
if (@venue.name_changed? ||
@venue.address_changed?) &&
(@conference.email_settings.send_on_venue_update &&
!@conference.email_settings.venue_update_subject.blank? &&
@conference.email_settings.venue_update_template)
venue_notify = Mailbot.send_email_on_venue_update(@conference)
end
end

View file

@ -162,7 +162,7 @@ class ProposalController < ApplicationController
if @event.transition_possible? :confirm
begin
@event.confirm!
rescue InvalidTransition => e
rescue Transitions::InvalidTransition => e
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
alert: "Event was NOT confirmed: #{e.message}")
return
@ -186,7 +186,7 @@ class ProposalController < ApplicationController
begin
@event.restart
@event.save
rescue InvalidTransition => e
rescue Transitions::InvalidTransition => e
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
alert: "Event was NOT restarted: #{e.message}")
return

View file

@ -36,30 +36,30 @@ class Mailbot < ActionMailer::Base
conference.email_settings.confirmed_but_not_registered_email(event))
end
def conference_date_update_mail(conference,dates)
subject = conference.email_settings.updated_conference_dates_subject.blank? ? "#{conference.title} Dates Updated" : conference.email_settings.updated_conference_dates_subject
partial = "#{conference.title}\n New Dates : #{dates}\n For more information visit #{Rails.application.routes.url_helpers.conference_path(conference.short_title, host: CONFIG['url_for_emails'])}"
body = conference.email_settings.updated_conference_dates_template.blank? ? "#{partial}" : "#{conference.email_settings.updated_conference_dates_template}\n #{partial}"
conference.registrations.each do |u|
build_email(conference, u.user.email, subject, body)
def conference_date_update_mail(conference)
conference.registrations.each do |user|
build_email(conference,
user.user.email,
conference.email_settings.updated_conference_dates_subject,
conference.email_settings.generate_conference_date_update_mail(conference, user))
end
end
def conference_registration_date_update_mail(conference, dates)
subject = conference.email_settings.updated_conference_registration_dates_subject.blank? ? "#{conference.title} Registration Dates Updated" : conference.email_settings.updated_conference_registration_dates_subject
partial = "#{conference.title}\n New Registration Dates : #{dates}\n For more information visit #{Rails.application.routes.url_helpers.conference_path(conference.short_title, host: CONFIG['url_for_emails'])}"
body = conference.email_settings.updated_conference_registration_dates_template.blank? ? "#{partial}" : "#{conference.email_settings.updated_conference_dates_template}\n #{partial}"
conference.registrations.each do |u|
build_email(conference, u.user.email, subject, body)
def conference_registration_date_update_mail(conference)
conference.registrations.each do |user|
build_email(conference,
user.user.email,
conference.email_settings.updated_conference_registration_dates_subject,
conference.email_settings.generate_conference_registration_date_update_mail(conference, user))
end
end
def send_email_on_venue_update(conference)
subject = conference.email_settings.venue_update_subject.blank? ? "#{conference.title} location has been changed" : conference.email_settings.venue_update_subject
partial = "#{conference.title} new location is: #{conference.venue.name}.\n Address: #{conference.venue.address}\n. For more information please visit #{Rails.application.routes.url_helpers.conference_path(conference.short_title, host: CONFIG['url_for_emails'])}"
body = conference.email_settings.venue_update_template.blank? ? partial : "#{conference.email_settings.venue_update_template}\n #{partial}"
conference.registrations.each do |u|
build_email(conference, u.email, subject, body)
conference.registrations.each do |user|
build_email(conference,
user.email,
conference.email_settings.venue_update_subject,
conference.email_settings.generate_send_email_on_venue_update(conference, user))
end
end

View file

@ -14,6 +14,12 @@ class EmailSettings < ActiveRecord::Base
'email' => user.email,
'name' => user.name,
'conference' => conference.title,
'conference_start_date' => conference.start_date,
'conference_end_date' => conference.end_date,
'registration_start_date' => conference.registration_start_date,
'registration_end_date' => conference.registration_end_date,
'venue' => conference.venue.name,
'venue_adress' => conference.venue.address,
'registrationlink' => Rails.application.routes.url_helpers.register_conference_url(
conference.short_title, host: CONFIG['url_for_emails'])
}
@ -50,9 +56,31 @@ class EmailSettings < ActiveRecord::Base
parse_template(template, values)
end
def generate_conference_date_update_mail(conference, user)
values = get_values(conference, user)
template = updated_conference_dates_template
parse_template(template, values)
end
def generate_conference_registration_date_update_mail(conference, user)
values = get_values(conference, user)
template = updated_conference_registration_dates_template
parse_template(template, values)
end
def generate_send_email_on_venue_update(conference, user)
values = get_values(conference, user)
template = venue_update_template
parse_template(template, values)
end
def parse_template(text, values)
values.each do |key, value|
text = text.gsub "{#{key}}", value unless text.blank?
if value.kind_of?(Date)
text = text.gsub "{#{key}}", value.strftime('%Y-%m-%d') unless text.blank?
else
text = text.gsub "{#{key}}", value unless text.blank? || value.blank?
end
end
text
end

View file

@ -125,7 +125,9 @@ class Event < ActiveRecord::Base
end
def process_confirmation
if conference.email_settings.send_on_confirmed_without_registration?
if conference.email_settings.send_on_confirmed_without_registration? &&
conference.email_settings.confirmed_email_template &&
conference.email_settings.confirmed_without_registration_subject
if conference.registrations.where(user_id: submitter.id).first.nil?
Mailbot.confirm_reminder_mail(self).deliver
end
@ -134,7 +136,9 @@ class Event < ActiveRecord::Base
def process_acceptance(options)
if conference.email_settings.send_on_accepted &&
options[:send_mail].blank?
conference.email_settings.accepted_email_template &&
conference.email_settings.accepted_subject &&
!options[:send_mail].blank?
Rails.logger.debug 'Sending event acceptance mail'
Mailbot.acceptance_mail(self).deliver
end
@ -142,7 +146,9 @@ class Event < ActiveRecord::Base
def process_rejection(options)
if conference.email_settings.send_on_rejected &&
options[:send_mail].blank?
conference.email_settings.rejected_email_template &&
conference.email_settings.rejected_subject &&
!options[:send_mail].blank?
Rails.logger.debug 'Sending rejected mail'
Mailbot.rejection_mail(self).deliver
end
@ -180,6 +186,25 @@ class Event < ActiveRecord::Base
result
end
def update_state(transition, mail = false, subject = false, send_mail = false, send_mail_param)
alert = ''
if mail && send_mail_param && subject && send_mail
alert = 'Update Email Subject before Sending Mails'
end
begin
if mail
self.send(transition,
send_mail: send_mail_param)
else
self.send(transition)
end
self.save
rescue Transitions::InvalidTransition => e
alert = "Update state failed. #{e.message}"
end
alert
end
private
def abstract_limit

View file

@ -0,0 +1,39 @@
.template-help{:id => id}
Valid attributes:
%table.table
%tr
%td {email}
%td The user's email address
%tr
%td {name}
%td The user's full name
%tr
%td {conference}
%td The full conference title
%tr
%td {proposalslink}
%td A link to the user's proposal page
%tr
%td {registrationlink}
%td A link to the registration page
%tr
%td {eventtitle}
%td The title of an accepted or rejected proposal
%tr
%td {conference_start_date}
%td The start date of the conference
%tr
%td {conference_end_date}
%td The end date of the conference
%tr
%td {registration_start_date}
%td The start date of the registration period
%tr
%td {registration_end_date}
%td The end date of the registration period
%tr
%td {venue}
%td The name of the venue
%tr
%td {venue_adress}
%td The adress of the venue

View file

@ -1,55 +1,57 @@
.row
.col-md-8
= link_to "Template Help", "#", :id => "template-help-link"
#template-help
Valid attributes:
%table.table
%tr
%td {email}
%td The user's email address
%tr
%td {name}
%td The user's full name
%tr
%td {conference}
%td The full conference title
%tr
%td {proposalslink}
%td A link to the user's proposal page
%tr
%td {registrationlink}
%td A link to the registration page
%tr
%td {eventtitle}
%td The title of an accepted or rejected proposal
= semantic_form_for(@settings, :url => admin_conference_email_path(@conference.short_title, @conference.email_settings),:html => {:multipart => true}) do |f|
= f.input :send_on_registration, :label => false, :hint => "Send an email when the user registers for the conference?"
= f.input :registration_subject
= f.input :registration_email_template, :input_html => { :rows => 10, :cols => 20}
= f.input :send_on_accepted, :label => false, :hint => "Send an email when the proposal is accepted?"
= f.input :accepted_subject
= f.input :accepted_email_template, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_rejected, :label => false, :hint => "Send an email when the proposal is rejected?"
= f.input :rejected_subject
= f.input :rejected_email_template, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_confirmed_without_registration, :label => false, :hint => "Send an email when a user has a confirmed proposal, but isn't yet registered?"
= f.input :confirmed_without_registration_subject
= f.input :confirmed_email_template, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_updated_conference_dates, hint: "This is to notify all participants that the conference dates has been changed."
= f.input :updated_conference_dates_subject
= f.input :updated_conference_dates_template, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_updated_conference_registration_dates, hint: "This is to notify all participants that the conference registration dates has been changed."
= f.input :updated_conference_registration_dates_subject
= f.input :updated_conference_registration_dates_template, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_venue_update, hint: 'Send an email on updating the Venue.'
= f.input :venue_update_subject
= f.input :venue_update_template, :input_html => { :rows => 10, :cols => 20 }
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
:javascript
$(document).ready( function() {
$("#template-help").hide();
$("#template-help-link").click(function() {
$("#template-help").toggle();
});
});
.row
.col-md-12
= f.input :send_on_registration, label: "Send an email when the user registers for the conference?", :input_html => {"data-name"=>"email_settings_registration_subject", "class"=>"send_on_radio"}
= f.input :registration_subject
= f.input :registration_email_template, :input_html => { :rows => 10, :cols => 20}
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThank you for Registering for the conference {conference}.\nPlease complete your registration by filling out your travel information.\n\nIf you are unable to attend please unregister online:\n{registrationlink}\n\nFeel free to contact us with any questions or concerns.\nWe look forward to see you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_registration_email_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"registration_help"} Show Help
= render partial: 'help', locals: {id: 'registration_help'}
= f.input :send_on_accepted, label: "Send an email when the proposal is accepted?", :input_html => {"data-name"=>"email_settings_accepted_subject", "class"=>"send_on_radio"}
= f.input :accepted_subject
= f.input :accepted_email_template, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name}\n\nWe are very pleased to inform you that your submission {eventtitle} has been accepted for the conference {conference}.\n\nThe public page of your submission can be found at:\n{proposalslink}\nIf you haven´t already registered for {conference}, please do as soon as possible:\n{registrationlink}\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_accepted_email_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"accepted_help"} Show Help
= render partial: 'help', locals: {id: 'accepted_help'}
= f.input :send_on_rejected, label: "Send an email when the proposal is rejected?", :input_html => {"data-name"=>"email_settings_rejected_subject", "class"=>"send_on_radio"}
= f.input :rejected_subject
= f.input :rejected_email_template, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThank you for your submission {eventtitle} for the conference {conference}.\nAfter careful consideration we are sorry to inform you that your submissionhas been rejected.\n\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_rejected_email_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"rejected_help"} Show Help
= render partial: 'help', locals: {id: 'rejected_help'}
= f.input :send_on_confirmed_without_registration, label: "Send an email when a user has a confirmed proposal, but isn't yet registered?", :input_html => {"data-name"=>"email_settings_confirmed_without_registration_subject", "class"=>"send_on_radio"}
= f.input :confirmed_without_registration_subject
= f.input :confirmed_email_template, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThank you for the confirmation of {eventtitle}. Unfortunately you are not registered for the conference {conference}. Please register as soon as possible:\n{registrationlink}\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_confirmed_email_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"confirmed_help"} Show Help
= render partial: 'help', locals: {id: 'confirmed_help'}
= f.input :send_on_updated_conference_dates, label: "This is to notify all participants that the conference dates has been changed.", :input_html => {"data-name"=>"email_settings_updated_conference_dates_subject", "class"=>"send_on_radio"}
= f.input :updated_conference_dates_subject
= f.input :updated_conference_dates_template, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe date of {conference} has changed.\n New Dates : {conference_start_date} - {conference_end_date}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_updated_conference_dates_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_dates_help"} Show Help
= render partial: 'help', locals: {id: 'updated_dates_help'}
= f.input :send_on_updated_conference_registration_dates, label: "This is to notify all participants that the conference registration dates has been changed.", :input_html => {"data-name"=>"email_settings_updated_conference_registration_dates_subject", "class"=>"send_on_radio"}
= f.input :updated_conference_registration_dates_subject
= f.input :updated_conference_registration_dates_template, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe registration date of {conference} has changed.\n New Dates : {registration_start_date} - {registration_end_date}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_updated_conference_registration_dates_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_registrations_dates_help"} Show Help
= render partial: 'help', locals: {id: 'updated_registrations_dates_help'}
= f.input :send_on_venue_update, label: 'Send an email on updating the Venue.', :input_html => {"data-name"=>"email_settings_venue_update_subject", "class"=>"send_on_radio"}
= f.input :venue_update_subject
= f.input :venue_update_template, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe Conference venue of {conference} has changed. New location is: {venue}.\n Address: {venue_address}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_venue_update_template"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_venue_help"} Show Help
= render partial: 'help', locals: {id: 'updated_venue_help'}
.row
.col-md-12
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}

View file

@ -0,0 +1,21 @@
class AddDefaultValueToEmailSettings < ActiveRecord::Migration
def up
change_column :email_settings, :send_on_registration, :boolean, default: false
change_column :email_settings, :send_on_accepted, :boolean, default: false
change_column :email_settings, :send_on_rejected, :boolean, default: false
change_column :email_settings, :send_on_confirmed_without_registration, :boolean, default: false
change_column :email_settings, :send_on_updated_conference_dates, :boolean, default: false
change_column :email_settings, :send_on_updated_conference_registration_dates, :boolean, default: false
change_column :email_settings, :send_on_venue_update, :boolean, default: false
end
def down
change_column :email_settings, :send_on_registration, :boolean, default: true
change_column :email_settings, :send_on_accepted, :boolean, default: true
change_column :email_settings, :send_on_rejected, :boolean, default: true
change_column :email_settings, :send_on_confirmed_without_registration, :boolean, default: true
change_column :email_settings, :send_on_updated_conference_dates, :boolean, default: true
change_column :email_settings, :send_on_updated_conference_registration_dates, :boolean, default: true
change_column :email_settings, :send_on_venue_update, :boolean, default: true
end
end

View file

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20140714141156) do
ActiveRecord::Schema.define(version: 20140716115448) do
create_table "ahoy_events", force: true do |t|
t.uuid "visit_id"
@ -151,10 +151,10 @@ ActiveRecord::Schema.define(version: 20140714141156) do
create_table "email_settings", force: true do |t|
t.integer "conference_id"
t.boolean "send_on_registration", default: true
t.boolean "send_on_accepted", default: true
t.boolean "send_on_rejected", default: true
t.boolean "send_on_confirmed_without_registration", default: true
t.boolean "send_on_registration", default: false
t.boolean "send_on_accepted", default: false
t.boolean "send_on_rejected", default: false
t.boolean "send_on_confirmed_without_registration", default: false
t.text "registration_email_template"
t.text "accepted_email_template"
t.text "rejected_email_template"
@ -165,13 +165,13 @@ ActiveRecord::Schema.define(version: 20140714141156) do
t.string "accepted_subject"
t.string "rejected_subject"
t.string "confirmed_without_registration_subject"
t.boolean "send_on_updated_conference_dates", default: true
t.boolean "send_on_updated_conference_dates", default: false
t.string "updated_conference_dates_subject"
t.text "updated_conference_dates_template"
t.boolean "send_on_updated_conference_registration_dates", default: true
t.boolean "send_on_updated_conference_registration_dates", default: false
t.string "updated_conference_registration_dates_subject"
t.text "updated_conference_registration_dates_template"
t.boolean "send_on_venue_update", default: true
t.boolean "send_on_venue_update", default: false
t.string "venue_update_subject"
t.text "venue_update_template"
end

View file

@ -37,6 +37,21 @@ feature Event do
fill_in 'email_settings_confirmed_email_template',
with: 'Confirmed without registration email body'
fill_in 'email_settings_updated_conference_dates_subject',
with: 'Updated conference dates subject'
fill_in 'email_settings_updated_conference_dates_template',
with: 'Updated conference dates email template'
fill_in 'email_settings_updated_conference_registration_dates_subject',
with: 'Updated conference registration dates subject'
fill_in 'email_settings_updated_conference_registration_dates_template',
with: 'Updated conference registration dates template'
fill_in 'email_settings_venue_update_subject',
with: 'Updated conference venue subject'
fill_in 'email_settings_venue_update_template',
with: 'Updated conference venue template'
click_button 'Update Email settings'
expect(flash).
@ -58,6 +73,18 @@ feature Event do
value).to eq('Confirmed without registration subject')
expect(find('#email_settings_confirmed_email_template').
value).to eq('Confirmed without registration email body')
expect(find('#email_settings_updated_conference_dates_subject').
value).to eq('Updated conference dates subject')
expect(find('#email_settings_updated_conference_dates_template').
value).to eq('Updated conference dates email template')
expect(find('#email_settings_updated_conference_registration_dates_subject').
value).to eq('Updated conference registration dates subject')
expect(find('#email_settings_updated_conference_registration_dates_template').
value).to eq('Updated conference registration dates template')
expect(find('#email_settings_venue_update_subject').
value).to eq('Updated conference venue subject')
expect(find('#email_settings_venue_update_template').
value).to eq('Updated conference venue template')
expect(EmailSettings.count).to eq(expected_count)