Class: Forms::Form

Inherits:
Wheelhouse::Resource
  • Object
show all
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

Instance Method Summary collapse

Instance Attribute Details

#current_submissionObject

Returns the value of attribute current_submission.



27
28
29
# File 'app/models/forms/form.rb', line 27

def current_submission
  @current_submission
end

#successObject

Returns the value of attribute success.



27
28
29
# File 'app/models/forms/form.rb', line 27

def success
  @success
end

#view_contextObject

Returns the value of attribute view_context.



27
28
29
# File 'app/models/forms/form.rb', line 27

def view_context
  @view_context
end

Instance Method Details

#deliver(submission) ⇒ Object



54
55
56
57
58
59
# File 'app/models/forms/form.rb', line 54

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

#email_senderObject



50
51
52
# File 'app/models/forms/form.rb', line 50

def email_sender
  "noreply@#{site.domain}"
end

#first_content_fieldObject



65
66
67
# File 'app/models/forms/form.rb', line 65

def first_content_field
  @first_content_field ||= fields.flatten.find { |f| f.respond_to?(:label) }
end

#handlerObject



74
75
76
# File 'app/models/forms/form.rb', line 74

def handler
  Forms::FormHandler
end

#recipients=(recipients) ⇒ Object



69
70
71
72
# File 'app/models/forms/form.rb', line 69

def recipients=(recipients)
  recipients = recipients.split(/,/) if recipients.is_a?(String)
  write_attribute(:recipients, recipients.map(&:strip))
end

#render(template) ⇒ Object



33
34
35
# File 'app/models/forms/form.rb', line 33

def render(template)
  Forms::FormRenderer.new(self, current_submission, template).render
end

#submit(params, request) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/models/forms/form.rb', line 37

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

Returns:

  • (Boolean)


61
62
63
# File 'app/models/forms/form.rb', line 61

def success?
  @success
end

#to_sObject



29
30
31
# File 'app/models/forms/form.rb', line 29

def to_s
  render(view_context)
end