Class: MailManager::ContactsController

Inherits:
ApplicationController show all
Includes:
DeleteableActions
Defined in:
app/controllers/mail_manager/contacts_controller.rb

Instance Method Summary collapse

Methods included from DeleteableActions

#delete, #destroy, #undelete

Instance Method Details

#createObject



66
67
68
69
70
71
72
73
74
# File 'app/controllers/mail_manager/contacts_controller.rb', line 66

def create
  @contact = Contact.new(params[:contact])
  if @contact.save
    flash[:notice] = 'Contact was successfully created.'
    redirect_to(mail_manager.contacts_path)
  else
    render :action => "new"
  end
end

#double_opt_inObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/mail_manager/contacts_controller.rb', line 23

def double_opt_in
  @contact = Contact.find_by_token(params[:login_token])
  if @contact.authorized?(params[:login_token])
    @mailing_list_names = []
    @contact.subscriptions.select(&:"pending?").reject(&:new_record?).each do |subscription|
      subscription.change_status(:active)
      @mailing_list_names << subscription.mailing_list_name
    end
    @message = "You have successfully subscribed to #{@mailing_list_names.join(',')}!"
  else
    @contact.
    @contact.delay.deliver_double_opt_in
    @message = "Your token has expired! Please check your email for a new one."
  end
  render :layout => ::MailManager.public_layout
end

#editObject



63
64
# File 'app/controllers/mail_manager/contacts_controller.rb', line 63

def edit
end

#indexObject



48
49
50
51
52
53
54
55
56
57
# File 'app/controllers/mail_manager/contacts_controller.rb', line 48

def index
  @mailing_lists = MailingList.order('name').map{|mailing_list| [mailing_list.name,
    mailing_list.id]
  }
  params[:status] ||= 'active'
  @statuses = [["Any", ""], ["Active", "active"], ["Unsubscribed", "unsubscribed"], 
    ["Failed Address", "failed_address"], ["Pending", "pending"]
  ]
  @contacts = Contact.search(params).paginate(:page => params[:page], :per_page => params[:per_page])
end

#newObject



59
60
61
# File 'app/controllers/mail_manager/contacts_controller.rb', line 59

def new
  @contact = Contact.new
end

#send_one_off_messageObject



40
41
42
43
44
45
46
# File 'app/controllers/mail_manager/contacts_controller.rb', line 40

def send_one_off_message
  @contact = Contact.find(params[:id])
  @mailing = Mailing.find(params[:mailing_id])
  @mailing.send_one_off_message(@contact)
  flash[:info] = "Test message sent to #{@contact.email_address_with_name}"
  redirect_to mail_manager.contacts_path
end

#subscribeObject



6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/mail_manager/contacts_controller.rb', line 6

def subscribe
  if valid_subscribe_submission?
    @contact = Contact.(params[:contact])
    @contact.double_opt_in(params[:mailing_list_ids])
  end

  if params[:redirect_url].present?
    redirect_to params[:redirect_url]
  else
    redirect_to main_app.subscribe_thank_you_path
  end
end

#thank_youObject



19
20
21
# File 'app/controllers/mail_manager/contacts_controller.rb', line 19

def thank_you
  render layout: MailManager.public_layout
end

#updateObject



76
77
78
79
80
81
82
83
# File 'app/controllers/mail_manager/contacts_controller.rb', line 76

def update
  if @contact.update_attributes(params[:contact])
    flash[:notice] = 'Contact was successfully updated.'
    redirect_to(mail_manager.contacts_path)
  else
    render :action => "edit"
  end
end