Class: MailManager::ContactsController
Instance Method Summary
collapse
#delete, #destroy, #undelete
Instance Method Details
#create ⇒ Object
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_in ⇒ Object
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.generate_login_token
@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
|
#edit ⇒ Object
63
64
|
# File 'app/controllers/mail_manager/contacts_controller.rb', line 63
def edit
end
|
#index ⇒ Object
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
|
#new ⇒ Object
59
60
61
|
# File 'app/controllers/mail_manager/contacts_controller.rb', line 59
def new
@contact = Contact.new
end
|
#send_one_off_message ⇒ Object
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
|
#subscribe ⇒ Object
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.signup(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_you ⇒ Object
19
20
21
|
# File 'app/controllers/mail_manager/contacts_controller.rb', line 19
def thank_you
render layout: MailManager.public_layout
end
|
#update ⇒ Object
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
|