Class: Admin::NewsletterController

Inherits:
AdminController
  • Object
show all
Defined in:
app/controllers/admin/newsletter_controller.rb

Instance Method Summary collapse

Instance Method Details

#emailObject



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

#fetchObject



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

#historyObject



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

#indexObject



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

#previewObject



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_nowObject



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