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
#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 |
#success ⇒ Object
Returns the value of attribute success.
29 30 31 |
# File 'app/models/forms/form.rb', line 29 def success @success end |
#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
#confirmation_email_sender ⇒ Object
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 |
#default_email_sender ⇒ Object
60 61 62 |
# File 'app/models/forms/form.rb', line 60 def default_email_sender "noreply@#{site.domain}" if site end |
#deliver(submission) ⇒ Object
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 |
#first_content_field ⇒ Object
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 |
#handler ⇒ Object
84 85 86 |
# File 'app/models/forms/form.rb', line 84 def handler Forms::FormHandler end |
#notification_email_recipients=(recipients) ⇒ Object
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 |
#notification_email_sender ⇒ Object
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 |
#render(template) ⇒ Object
35 36 37 |
# File 'app/models/forms/form.rb', line 35 def render(template) Forms::FormRenderer.new(self, current_submission, template).render end |
#submit(params, request) ⇒ Object
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 |
#success? ⇒ Boolean
71 72 73 |
# File 'app/models/forms/form.rb', line 71 def success? @success end |
#to_s ⇒ Object
31 32 33 |
# File 'app/models/forms/form.rb', line 31 def to_s render(view_context) end |