contact_us 0.3.0 → 0.4.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -12,18 +12,18 @@ There is also a demo application showing how the ContactUs form works:
12
12
 
13
13
  ## REQUIREMENTS
14
14
 
15
- Contact Us requires the Formtastic Gem. Read more about Formtastic @ https://github.com/justinfrench/formtastic
15
+ Contact Us requires:
16
16
 
17
- I used Formtastic as a dependency to keep things simple, and hook into your apps custom Formtastic stylesheets.
18
- People have different tastes for their html / css markup, and I find Formtastic to be a great standardized and reusable way to build forms across apps.
17
+ * Ruby >= 1.8.7 (will soon only support > 1.9.2)
18
+ * Rails >= 3.0.0
19
19
 
20
- If you don't want to have Formtastic as a dependency there is a fork of this project without it [here](https://github.com/sch1zo/contact_us).
20
+ It is also recommended to use Formtastic or SimpleForm (see configuration) in order to hook into your apps custom form builders.
21
21
 
22
22
  ## INSTALLATION
23
23
 
24
24
  In your `Gemfile`, add the following dependencies:
25
25
 
26
- gem 'contact_us', '~> 0.3.0'
26
+ gem 'contact_us', '~> 0.4.0.beta'
27
27
 
28
28
  From `Rails.root` run:
29
29
 
@@ -43,6 +43,30 @@ You may also specify an email address for the notification emails from field:
43
43
 
44
44
  config.mailer_from = "dontreply@yourdomain.com"
45
45
 
46
+ ## CONFIGURATION
47
+
48
+ The generator copies the view files to `app/views/contact_us`, and you can customize them to suit your needs. If you would like to add a name or subject field to the form you may simply
49
+ set the options to true within the contact_us initializer located at `config/initializers/contact_us.rb`:
50
+
51
+ config.require_name = true
52
+ config.require_subject = true
53
+
54
+ You may also update your locales under `config/locales/contact_us.en.yml` or create your own. Please feel free to submit your own locales so that other users will hopefully find this gem more useful.
55
+
56
+ ### Formtastic
57
+
58
+ In order to use a Formtastic compatible template to hook into your custom form styles configure `config/initializers/contact_us.rb`:
59
+
60
+ config.form_gem = 'formtastic'
61
+
62
+ * By default the HTML should match that produced by Formtastic, but to ensure it is up to date you should set Formtastic.
63
+
64
+ ### SimpleForm
65
+
66
+ In order to use a SimpleForm compatible template to hook into your custom form styles configure `config/initializers/contact_us.rb`:
67
+
68
+ config.form_gem = 'simple_form'
69
+
46
70
  ## UPGRADING
47
71
 
48
72
  When upgrading from 0.1.x to 0.2.x you should rerun the install generator to install the new settings, views, and locale updates:
@@ -54,16 +78,6 @@ Or you may run the generators for each specific component you would like to upda
54
78
  $ bundle exec rake contact_us:copy_locales
55
79
  $ bundle exec rake contact_us:copy_views
56
80
 
57
- ## CONFIGURATION
58
-
59
- The generator copies the view files to `app/views/contact_us`, and you can customize them to suit your needs. If you would like to add a name or subject field to the form you may simply
60
- set the options to true within the contact_us initializer located at `config/initializers/contact_us.rb`:
61
-
62
- config.require_name = true
63
- config.require_subject = true
64
-
65
- You may also update your locales under `config/locales/contact_us.en.yml` or create your own. Please feel free to submit your own locales so that other users will hopefully find this gem more useful.
66
-
67
81
  ## USAGE
68
82
 
69
83
  Visit your website and navigate to `/contact-us` to see the form in action.
@@ -97,6 +111,7 @@ Here are some ways *you* can contribute:
97
111
 
98
112
  ## TODO
99
113
 
100
- * Add new language translations
114
+ * Add new language translations.
115
+ * Stop copying views/locales by default.
101
116
 
102
117
  Copyright (c) 2011 Jeff Dutil, released under the [MIT license](https://github.com/jdutil/contact_us/tree/master/MIT-LICENSE).
@@ -7,12 +7,24 @@ class ContactUs::ContactsController < ApplicationController
7
7
  redirect_to('/', :notice => t('contact_us.notices.success'))
8
8
  else
9
9
  flash[:error] = t('contact_us.notices.error')
10
- render :new
10
+ render_new_page
11
11
  end
12
12
  end
13
13
 
14
14
  def new
15
15
  @contact = ContactUs::Contact.new
16
+ render_new_page
16
17
  end
17
18
 
19
+ protected
20
+
21
+ def render_new_page
22
+ case ContactUs.form_gem
23
+ when 'formtastic' then render 'new_formtastic'
24
+ when 'simple_form' then render 'new_simple_form'
25
+ else
26
+ render 'new'
27
+ end
28
+ end
29
+
18
30
  end
@@ -1,8 +1,38 @@
1
1
  <h2><%= t('.contact_us') %></h2>
2
- <%= semantic_form_for @contact, :url => contacts_path do |f| %>
3
- <%= f.input :name, :label => t('.name') if ContactUs.require_name %>
4
- <%= f.input :email, :label => t('.email') %>
5
- <%= f.input :subject, :label => t('.subject') if ContactUs.require_subject %>
6
- <%= f.input :message, :as => :text, :label => t('.message') %>
7
- <%= f.action :submit, :label => t('.submit'), :button_html => { :alt => t('.submit'), :id => 'contact_us_contact_submit', :title => t('.submit') } %>
2
+ <%= form_for @contact, :url => contacts_path, :html => {:class => 'formtastic'} do |f| %>
3
+ <% if ContactUs.require_name %>
4
+ <li class='string required' id='contact_us_contact_name_input'>
5
+ <%= f.label :name, (t('.name') + content_tag(:abbr, '*', :class => 'required')).html_safe %>
6
+ <%= f.text_field :name %>
7
+ <% if f.object.errors[:name].present? %>
8
+ <p class='inline-error'><%= f.object.errors[:name].join(' and ') %></p>
9
+ <% end %>
10
+ </li>
11
+ <% end %>
12
+ <li class='string required' id='contact_us_contact_email_input'>
13
+ <%= f.label :email, (t('.email') + content_tag(:abbr, '*', :class => 'required')).html_safe %>
14
+ <%= f.text_field :email %>
15
+ <% if f.object.errors[:email].present? %>
16
+ <p class='inline-error'><%= f.object.errors[:email].join(' and ') %></p>
17
+ <% end %>
18
+ </li>
19
+ <% if ContactUs.require_subject %>
20
+ <li class='string required' id='contact_us_contact_subject_input'>
21
+ <%= f.label :subject, (t('.subject') + content_tag(:abbr, '*', :class => 'required')).html_safe %>
22
+ <%= f.text_field :subject %>
23
+ <% if f.object.errors[:subject].present? %>
24
+ <p class='inline-error'><%= f.object.errors[:subject].join(' and ') %></p>
25
+ <% end %>
26
+ </li>
27
+ <% end %>
28
+ <li class='text required' id='contact_us_contact_message_input'>
29
+ <%= f.label :message, (t('.message') + content_tag(:abbr, '*', :class => 'required')).html_safe %>
30
+ <%= f.text_area :message %>
31
+ <% if f.object.errors[:message].present? %>
32
+ <p class='inline-error'><%= f.object.errors[:message].join(' and ') %></p>
33
+ <% end %>
34
+ </li>
35
+ <li class='commit'>
36
+ <%= f.submit :submit, :alt => t('.submit'), :class => 'submit create', :label => t('.submit'), :title => t('.submit') %>
37
+ </li>
8
38
  <% end %>
@@ -0,0 +1,8 @@
1
+ <h2><%= t('.contact_us') %></h2>
2
+ <%= semantic_form_for @contact, :url => contacts_path do |f| %>
3
+ <%= f.input :name, :label => t('.name') if ContactUs.require_name %>
4
+ <%= f.input :email, :label => t('.email') %>
5
+ <%= f.input :subject, :label => t('.subject') if ContactUs.require_subject %>
6
+ <%= f.input :message, :as => :text, :label => t('.message') %>
7
+ <%= f.action :submit, :label => t('.submit'), :button_html => { :alt => t('.submit'), :id => 'contact_us_contact_submit', :title => t('.submit') } %>
8
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <h2><%= t('.contact_us') %></h2>
2
+ <%= simple_form_for @contact, :url => contacts_path do |f| %>
3
+ <%= f.input :name, :label => t('.name') if ContactUs.require_name %>
4
+ <%= f.input :email, :label => t('.email') %>
5
+ <%= f.input :subject, :label => t('.subject') if ContactUs.require_subject %>
6
+ <%= f.input :message, :as => :text, :label => t('.message') %>
7
+ <%= f.button :submit, :label => t('.submit'), :button_html => { :alt => t('.submit'), :id => 'contact_us_contact_submit', :title => t('.submit') } %>
8
+ <% end %>
@@ -9,13 +9,17 @@ de:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Kontaktiere Uns"
14
14
  email: "Email"
15
15
  message: "Nachricht"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Abschicken"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Beide Felder müssen ausgefüllt werden."
21
25
  success: "Die Nachricht wurde erfolgreich versendet."
@@ -9,13 +9,17 @@ en:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contact Us"
14
14
  email: "Email"
15
15
  message: "Message"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Submit"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "You must enter both fields."
21
25
  success: "Contact email was successfully sent."
@@ -9,13 +9,17 @@ es:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contactanos"
14
14
  email: "Email"
15
15
  message: "Mensaje"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Enviar"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Debes de ingresar ambos campos."
21
25
  success: "El correo electrónico de contacto fue enviado con éxito."
@@ -9,13 +9,17 @@ it:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contattaci"
14
14
  email: "Email"
15
15
  message: "Messaggio"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Inviare"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Devi inserire entrambi i campi."
21
25
  success: "La mail di contatto è stata inviata."
@@ -9,13 +9,17 @@ pt-BR:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contate-nos"
14
14
  email: "Email"
15
15
  message: "Messagem"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Enviar"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Você deve preencher os campos."
21
25
  success: "Email de contato foi enviado com sucesso."
@@ -9,13 +9,17 @@ zh:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "联系我们"
14
14
  email: "邮箱"
15
15
  message: "消息"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "发送"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "请正确输入邮箱与信息。"
21
25
  success: "邮件已成功发送。"
@@ -1,3 +1,3 @@
1
1
  module ContactUs
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0.beta"
3
3
  end
data/lib/contact_us.rb CHANGED
@@ -13,6 +13,9 @@ module ContactUs
13
13
  # Enable or Disable subject field.
14
14
  mattr_accessor :require_subject
15
15
 
16
+ # Formtastic or SimpleForm
17
+ mattr_accessor :form_gem
18
+
16
19
  # Default way to setup ContactUs. Run rake contact_us:install to create
17
20
  # a fresh initializer with all configuration values.
18
21
  def self.setup
@@ -19,4 +19,9 @@ ContactUs.setup do |config|
19
19
  # Configure the form to ask for a subject.
20
20
  config.require_subject = false
21
21
 
22
+ # Configure the form gem to use.
23
+ # Example:
24
+ # config.form_gem = 'formtastic
25
+ config.form_gem = nil
26
+
22
27
  end
@@ -9,13 +9,17 @@ de:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Kontaktiere Uns"
14
14
  email: "Email"
15
15
  message: "Nachricht"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Abschicken"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Beide Felder müssen ausgefüllt werden."
21
25
  success: "Die Nachricht wurde erfolgreich versendet."
@@ -9,13 +9,17 @@ es:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contactanos"
14
14
  email: "Email"
15
15
  message: "Mensaje"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Enviar"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Debes de ingresar ambos campos."
21
25
  success: "El correo electrónico de contacto fue enviado con éxito."
@@ -9,13 +9,17 @@ it:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contattaci"
14
14
  email: "Email"
15
15
  message: "Messaggio"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Inviare"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Devi inserire entrambi i campi."
21
25
  success: "La mail di contatto è stata inviata."
@@ -9,13 +9,17 @@ pt-BR:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "Contate-nos"
14
14
  email: "Email"
15
15
  message: "Messagem"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "Enviar"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "Você deve preencher os campos."
21
25
  success: "Email de contato foi enviado com sucesso."
@@ -9,13 +9,17 @@ zh:
9
9
  sent_by_name: "Sent by %{name} from %{email}"
10
10
  subject: "Contact Us message from %{email}"
11
11
  contacts:
12
- new:
12
+ new: &new
13
13
  contact_us: "联系我们"
14
14
  email: "邮箱"
15
15
  message: "消息"
16
16
  name: "Name"
17
17
  subject: "Subject"
18
18
  submit: "发送"
19
+ new_formtastic:
20
+ <<: *new
21
+ new_simple_form:
22
+ <<: *new
19
23
  notices:
20
24
  error: "请正确输入邮箱与信息。"
21
25
  success: "邮件已成功发送。"