Class: MailManager::SubscriptionsController
Instance Method Summary
collapse
#site_url, #title, #use_show_for_resources?
Instance Method Details
#create ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 59
def create
@subscription = Subscription.new(params[:subscription])
@subscription.mailing_list_id = @mailing_list.id
if @subscription.save
flash[:notice] = 'Subscription was successfully created.'
return redirect_to(mail_manager.mailing_list_subscriptions_path(@mailing_list))
else
@contact = @subscription
render :action => "new"
end
end
|
#destroy ⇒ Object
81
82
83
84
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 81
def destroy
@subscription.destroy
redirect_to(mail_manager.subscriptions_url)
end
|
#edit ⇒ Object
56
57
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 56
def edit
end
|
#index ⇒ Object
8
9
10
11
12
13
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 8
def index
params[:search] = Hash.new unless params[:search]
search_params = params[:search].merge(:mailing_list_id => params[:mailing_list_id])
@valid_statuses = Subscription.valid_statuses
@subscriptions = Subscription.search(search_params).paginate(:all, :page => params[:page])
end
|
#new ⇒ Object
50
51
52
53
54
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 50
def new
@subscription = Subscription.new
@subscription.mailing_list = @mailing_list
@contact = @subscription
end
|
#show ⇒ Object
47
48
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 47
def show
end
|
#unsubscribe ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 15
def unsubscribe
raise "Empty id for#{params[:guid]}" if params[:guid].blank?
if params[:guid] =~ /^test/
@message = TestMessage.find_by_guid(params[:guid])
@mailing_lists = ['Test Mailing List']
@contact = Contact.new(:first_name => 'Test', :last_name => 'Guy',
:email_address => @message.test_email_address)
else
unsubscribed_subscriptions = Subscription.unsubscribe_by_message_guid(params[:guid])
@mailing_lists = unsubscribed_subscriptions.reject{|subscription|
subscription.mailing_list.nil?}.collect{|subscription| subscription.mailing_list.name}
@contact = Message.find_by_guid(params[:guid]).try(:contact)
raise "Could not find your subscription. Please try unsubscribing with your email address." if @contact.nil?
end
render 'unsubscribe', :layout => 'layout'
rescue => e
Rails.logger.warn "Error unsubscribing: #{e.message}\n #{e.backtrace.join("\n ")}"
flash[:error] = e.message
redirect_to mail_manager.unsubscribe_by_email_address_path
end
|
#unsubscribe_by_email_address ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 36
def unsubscribe_by_email_address
unless params[:email_address].blank?
unsubscribed_subscriptions = Subscription.unsubscribe_by_email_address(params[:email_address])
@mailing_lists = unsubscribed_subscriptions.reject{|subscription|
subscription.mailing_list.nil?}.collect{|subscription| subscription.mailing_list.name}
@contact = Contact.new(:email_address => params[:email_address])
return render('unsubscribe', :layout => 'layout')
end
render :layout => 'layout'
end
|
#update ⇒ Object
71
72
73
74
75
76
77
78
79
|
# File 'app/controllers/mail_manager/subscriptions_controller.rb', line 71
def update
if @subscription.update_attributes(params[:subscription])
@subscription.change_status(params[:subscription][:status])
flash[:notice] = 'Subscription was successfully updated.'
redirect_to(mail_manager.mailing_list_subscriptions_path(@mailing_list))
else
render :action => "edit"
end
end
|