diff --git a/app/controllers/admin/conference_controller.rb b/app/controllers/admin/conference_controller.rb index a30905e5..b4d25a43 100644 --- a/app/controllers/admin/conference_controller.rb +++ b/app/controllers/admin/conference_controller.rb @@ -1,5 +1,4 @@ class Admin::ConferenceController < ApplicationController - include HomeHelper before_filter :verify_organizer def index @@ -81,6 +80,13 @@ class Admin::ConferenceController < ApplicationController Mailbot.conference_date_update_mail(@conference,date_string(@conference.start_date, @conference.end_date)).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 + end + end + if @conference.update_attributes(params[:conference]) redirect_to(edit_admin_conference_path(id: @conference.short_title), notice: 'Conference was successfully updated.') diff --git a/app/mailers/mailbot.rb b/app/mailers/mailbot.rb index fefaed2c..a7bd0807 100644 --- a/app/mailers/mailbot.rb +++ b/app/mailers/mailbot.rb @@ -39,7 +39,7 @@ class Mailbot < ActionMailer::Base 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 + 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| @@ -47,6 +47,15 @@ class Mailbot < ActionMailer::Base 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) + end + end + def build_email(conference, to, subject, body) mail(:to => to, :from => conference.contact_email, diff --git a/app/views/admin/emails/index.html.haml b/app/views/admin/emails/index.html.haml index 43474048..0cf146ff 100644 --- a/app/views/admin/emails/index.html.haml +++ b/app/views/admin/emails/index.html.haml @@ -38,6 +38,9 @@ = 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.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"} :javascript diff --git a/spec/factories/email_settings.rb b/spec/factories/email_settings.rb index cda8bcc6..a21238ac 100644 --- a/spec/factories/email_settings.rb +++ b/spec/factories/email_settings.rb @@ -7,7 +7,9 @@ FactoryGirl.define do send_on_rejected false send_on_confirmed_without_registration false send_on_updated_conference_dates true + send_on_updated_conference_registration_dates true updated_conference_dates_subject 'Conference dates have been updated' + updated_conference_registration_dates_subject 'Conference registration dates have been updated' registration_subject 'Lorem Ipsum Dolsum' registration_email_template 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit' end diff --git a/spec/views/admin/emails/index.html.haml_spec.rb b/spec/views/admin/emails/index.html.haml_spec.rb index fec814f9..c6acb8d1 100644 --- a/spec/views/admin/emails/index.html.haml_spec.rb +++ b/spec/views/admin/emails/index.html.haml_spec.rb @@ -8,13 +8,15 @@ describe 'admin/emails/index' do assign :settings, @settings render expect(rendered). - to have_selector("input[type='checkbox'][value='1']", count: 5) + to have_selector("input[type='checkbox'][value='1']", count: 6) expect(rendered). - to have_selector("input[checked='checked'][type='checkbox'][value='1']", count: 2) + to have_selector("input[checked='checked'][type='checkbox'][value='1']", count: 3) expect(rendered).to include('Lorem Ipsum Dolsum') expect(rendered). to include('Lorem ipsum dolor sit amet, consectetuer adipiscing elit') expect(rendered). to include('Conference dates have been updated') + expect(rendered). + to include('Conference registration dates have been updated') end end