Class: Admin::NewsletterController
- Inherits:
-
AdminController
- Object
- AdminController
- Admin::NewsletterController
- Defined in:
- app/controllers/admin/newsletter_controller.rb
Instance Method Summary collapse
- #email ⇒ Object
- #fetch ⇒ Object
- #history ⇒ Object
- #index ⇒ Object
- #preview ⇒ Object
- #send_now ⇒ Object
Instance Method Details
#email ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'app/controllers/admin/newsletter_controller.rb', line 8 def email @newsletter = Newsletter.where(:id=>params[:id]).sys(_sid).first mail = Mail.new(@newsletter.raw_mail) Newsletter.send_email(@newsletter.name, mail.content_type, mail.body, nil, current_user) flash[:notice] = "Email sent" redirect_to "/admin/newsletters/#{@newsletter.id}" end |
#fetch ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'app/controllers/admin/newsletter_controller.rb', line 65 def fetch if Preference.get_cached(_sid, 'newsletter_use_ssl') == 'true' Net::POP.enable_ssl end pop = Net::POP3.new Preference.get_cached(_sid, 'newsletter_pop_server') pop.start Preference.get_cached(_sid, 'newsletter_pop_email'), Preference.get_cached(_sid, 'newsletter_pop_password') @mails = [] pop.mails.each { |m| mm = Mail.new(m.pop) if mm.subject =~ /^newsletter\:\s?\S+/i Newsletter.make(m.pop,mm) @mails << mm delete = true else delete = Newsletter.process_mail(_sid, mm) end m.delete if delete } pop.finish flash[:notice] = "Checked messages for account #{Preference.get_cached(_sid, 'newsletter_pop_email')}" end |
#history ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/admin/newsletter_controller.rb', line 18 def history @newsletter = Newsletter.where(:id=>params[:id]).sys(_sid).first if params[:recips] @send = NewsletterSend.where(:id=>params[:recips]).sys(_sid) @recipients = NewsletterSent.includes(:user).order("created_at desc").where(:newsletter_sends_id=>@send.id).page(params[:page]).per(100) elsif params[:check] @send = nil @recipients = @newsletter.recipients(_sid, params[:test], false).page(params[:page]).per(100) else @recipients = nil end end |
#index ⇒ Object
52 53 54 55 56 57 58 |
# File 'app/controllers/admin/newsletter_controller.rb', line 52 def index @newsletters = Newsletter.order("newsletters.created_at desc").sys(_sid) @newsletters = @newsletters.where("newsletters.name like '%#{params[:search]}%'") @newsletters = @newsletters.page(params[:page]).per(50) end |
#preview ⇒ Object
60 61 62 63 |
# File 'app/controllers/admin/newsletter_controller.rb', line 60 def preview @newsletter = Newsletter.where(:id=>params[:id]).sys(_sid) end |
#send_now ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/controllers/admin/newsletter_controller.rb', line 32 def send_now @newsletter = Newsletter.where(:id=>params[:id]).sys(_sid).first test = params[:test]!=nil @sent = false if @newsletter.status=='sent' && !params[:confirm] @already_sent = true return end if @newsletter.status=='unsent' && !params[:confirm] && !test @not_sent_test = true return end @newsletter.send_now(_sid, current_user, '', test) @sent = true end |