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



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

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



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

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



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

def edit
end

#indexObject



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

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



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

def new
  @contact = Contact.new
end

#send_one_off_messageObject



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

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



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

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



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

def thank_you
end

#updateObject



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

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