Class: Forms::Form
- Inherits:
-
Wheelhouse::Resource
- Object
- Wheelhouse::Resource
- Forms::Form
- Includes:
- Wheelhouse::Resource::Addressable, Wheelhouse::Resource::Content, Wheelhouse::Resource::Node, Wheelhouse::Resource::Renderable, Wheelhouse::Resource::Versioned
- Defined in:
- app/models/forms/form.rb
Instance Attribute Summary collapse
-
#current_submission ⇒ Object
Returns the value of attribute current_submission.
-
#success ⇒ Object
Returns the value of attribute success.
-
#view_context ⇒ Object
Returns the value of attribute view_context.
Instance Method Summary collapse
- #confirmation_email_sender ⇒ Object
- #default_email_sender ⇒ Object
- #deliver(submission) ⇒ Object
- #first_content_field ⇒ Object
- #handler ⇒ Object
- #notification_email_recipients=(recipients) ⇒ Object
- #notification_email_sender ⇒ Object
- #render(template) ⇒ Object
- #submit(params, request) ⇒ Object
- #success? ⇒ Boolean
- #to_s ⇒ Object
Instance Attribute Details
permalink #current_submission ⇒ Object
Returns the value of attribute current_submission.
29 30 31 |
# File 'app/models/forms/form.rb', line 29 def current_submission @current_submission end |
permalink #success ⇒ Object
Returns the value of attribute success.
29 30 31 |
# File 'app/models/forms/form.rb', line 29 def success @success end |
permalink #view_context ⇒ Object
Returns the value of attribute view_context.
29 30 31 |
# File 'app/models/forms/form.rb', line 29 def view_context @view_context end |
Instance Method Details
permalink #confirmation_email_sender ⇒ Object
[View source]
56 57 58 |
# File 'app/models/forms/form.rb', line 56 def confirmation_email_sender read_attribute(:confirmation_email_sender).presence || default_email_sender end |
permalink #default_email_sender ⇒ Object
[View source]
60 61 62 |
# File 'app/models/forms/form.rb', line 60 def default_email_sender "noreply@#{site.domain}" if site end |
permalink #deliver(submission) ⇒ Object
[View source]
64 65 66 67 68 69 |
# File 'app/models/forms/form.rb', line 64 def deliver(submission) Forms::Mailer.submission(self, submission).deliver if deliver_submission_notification? Forms::Mailer.confirmation(self, submission).deliver if deliver_confirmation_email?(submission) rescue # Mail delivery failed end |
permalink #first_content_field ⇒ Object
[View source]
75 76 77 |
# File 'app/models/forms/form.rb', line 75 def first_content_field @first_content_field ||= fields.flatten.find { |f| f.respond_to?(:label) } end |
permalink #handler ⇒ Object
[View source]
84 85 86 |
# File 'app/models/forms/form.rb', line 84 def handler Forms::FormHandler end |
permalink #notification_email_recipients=(recipients) ⇒ Object
[View source]
79 80 81 82 |
# File 'app/models/forms/form.rb', line 79 def notification_email_recipients=(recipients) recipients = recipients.split(/,/) if recipients.is_a?(String) write_attribute(:notification_email_recipients, recipients.map(&:strip)) end |
permalink #notification_email_sender ⇒ Object
[View source]
52 53 54 |
# File 'app/models/forms/form.rb', line 52 def notification_email_sender read_attribute(:notification_email_sender).presence || default_email_sender end |
permalink #render(template) ⇒ Object
[View source]
35 36 37 |
# File 'app/models/forms/form.rb', line 35 def render(template) Forms::FormRenderer.new(self, current_submission, template).render end |
permalink #submit(params, request) ⇒ Object
[View source]
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/models/forms/form.rb', line 39 def submit(params, request) submission = submissions.build(:params => params, :ip_address => request.remote_ip) Forms::Plugin.config.wheelhouse.forms.spam_filter.check(submission) if submission.save deliver(submission) unless submission.spam? self.success = true else self.current_submission = submission self.success = false end end |
permalink #success? ⇒ Boolean
71 72 73 |
# File 'app/models/forms/form.rb', line 71 def success? @success end |
permalink #to_s ⇒ Object
[View source]
31 32 33 |
# File 'app/models/forms/form.rb', line 31 def to_s render(view_context) end |