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.


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

def current_submission
  @current_submission
end

#successObject

Returns the value of attribute success.


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

def success
  @success
end

#view_contextObject

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_senderObject

[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

#default_email_senderObject

[View source]

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

def default_email_sender
  "noreply@#{site.domain}" if site
end

#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

#first_content_fieldObject

[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

#handlerObject

[View source]

84
85
86
# File 'app/models/forms/form.rb', line 84

def handler
  Forms::FormHandler
end

#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

#notification_email_senderObject

[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

#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

#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

#success?Boolean

Returns:

  • (Boolean)
[View source]

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

def success?
  @success
end

#to_sObject

[View source]

31
32
33
# File 'app/models/forms/form.rb', line 31

def to_s
  render(view_context)
end