refinerycms-inquiries 1.0.1 → 2.0.0
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/.gitignore +3 -0
- data/.travis.yml +16 -0
- data/Gemfile +68 -0
- data/Guardfile +20 -0
- data/Rakefile +19 -0
- data/app/assets/stylesheets/refinery/inquiries/inquiries.css.scss +21 -0
- data/app/controllers/refinery/inquiries/admin/inquiries_controller.rb +50 -0
- data/app/controllers/refinery/inquiries/admin/settings_controller.rb +56 -0
- data/app/controllers/refinery/inquiries/inquiries_controller.rb +47 -0
- data/app/helpers/refinery/inquiries/inquiries_helper.rb +6 -0
- data/app/mailers/refinery/inquiries/inquiry_mailer.rb +22 -0
- data/app/models/refinery/inquiries/inquiry.rb +27 -0
- data/app/models/refinery/inquiries/setting.rb +63 -0
- data/app/views/refinery/inquiries/admin/inquiries/_inquiry.html.erb +27 -0
- data/app/views/refinery/inquiries/admin/inquiries/_submenu.html.erb +27 -0
- data/app/views/{admin → refinery/inquiries/admin}/inquiries/index.html.erb +2 -2
- data/app/views/{admin → refinery/inquiries/admin}/inquiries/show.html.erb +9 -7
- data/app/views/refinery/inquiries/admin/settings/_confirmation_email_form.html.erb +59 -0
- data/app/views/{admin/inquiry_settings → refinery/inquiries/admin/settings}/_notification_recipients_form.html.erb +3 -3
- data/app/views/{admin/inquiry_settings → refinery/inquiries/admin/settings}/edit.html.erb +1 -1
- data/app/views/refinery/inquiries/inquiries/new.html.erb +32 -0
- data/app/views/refinery/inquiries/inquiries/thank_you.html.erb +1 -0
- data/app/views/refinery/inquiries/inquiry_mailer/confirmation.text.erb +1 -0
- data/app/views/refinery/inquiries/inquiry_mailer/notification.text.erb +18 -0
- data/config/locales/bg.yml +77 -0
- data/config/locales/cs.yml +68 -66
- data/config/locales/da.yml +60 -58
- data/config/locales/de.yml +69 -67
- data/config/locales/en-GB.yml +68 -66
- data/config/locales/en.yml +68 -66
- data/config/locales/es.yml +71 -69
- data/config/locales/fr.yml +69 -67
- data/config/locales/it.yml +70 -68
- data/config/locales/lolcat.yml +69 -67
- data/config/locales/lt.yml +69 -67
- data/config/locales/lv.yml +69 -67
- data/config/locales/nb.yml +70 -68
- data/config/locales/nl.yml +69 -67
- data/config/locales/pl.yml +69 -67
- data/config/locales/pt-BR.yml +69 -67
- data/config/locales/ru.yml +69 -67
- data/config/locales/sk.yml +69 -67
- data/config/locales/sl.yml +69 -67
- data/config/locales/sv.yml +69 -67
- data/config/locales/zh-CN.yml +69 -67
- data/config/routes.rb +16 -16
- data/db/migrate/20101208082840_create_inquiries.rb +16 -34
- data/db/seeds.rb +50 -0
- data/lib/generators/refinery/inquiries/inquiries_generator.rb +19 -0
- data/lib/refinery/inquiries/configuration.rb +9 -0
- data/lib/refinery/inquiries/engine.rb +28 -0
- data/lib/refinery/inquiries.rb +26 -0
- data/lib/refinerycms-inquiries.rb +1 -23
- data/readme.md +12 -4
- data/refinerycms-inquiries.gemspec +11 -86
- data/spec/factories/inquiry.rb +7 -0
- data/spec/models/refinery/inquiries/inquiry_spec.rb +52 -0
- data/spec/requests/refinery/inquiries/admin/inquiries_spec.rb +138 -0
- data/spec/requests/refinery/inquiries/inquiries_spec.rb +81 -0
- data/spec/spec_helper.rb +56 -0
- data/tasks/rspec.rake +4 -0
- metadata +114 -39
- data/app/controllers/admin/inquiries_controller.rb +0 -41
- data/app/controllers/admin/inquiry_settings_controller.rb +0 -43
- data/app/controllers/inquiries_controller.rb +0 -43
- data/app/helpers/inquiries_helper.rb +0 -2
- data/app/mailers/inquiry_mailer.rb +0 -20
- data/app/models/inquiry.rb +0 -21
- data/app/models/inquiry_setting.rb +0 -33
- data/app/views/admin/inquiries/_inquiry.html.erb +0 -24
- data/app/views/admin/inquiries/_submenu.html.erb +0 -27
- data/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +0 -57
- data/app/views/inquiries/new.html.erb +0 -34
- data/app/views/inquiries/thank_you.html.erb +0 -1
- data/app/views/inquiry_mailer/confirmation.html.erb +0 -1
- data/app/views/inquiry_mailer/notification.html.erb +0 -18
- data/db/migrate/20101208082841_remove_position_and_open_from_inquiries.rb +0 -11
- data/db/seeds/pages_for_inquiries.rb +0 -55
- data/features/create_inquiries.feature +0 -38
- data/features/manage_inquiries.feature +0 -57
- data/features/step_definitions/inquiry_steps.rb +0 -25
- data/features/support/factories.rb +0 -7
- data/features/support/paths.rb +0 -26
- data/lib/gemspec.rb +0 -29
- data/lib/generators/refinerycms_inquiries_generator.rb +0 -6
- data/lib/inquiries.rb +0 -2
- data/spec/models/inquiry_spec.rb +0 -59
@@ -1,33 +0,0 @@
|
|
1
|
-
class InquirySetting < ActiveRecord::Base
|
2
|
-
|
3
|
-
def self.confirmation_body
|
4
|
-
RefinerySetting.find_or_set(:inquiry_confirmation_body,
|
5
|
-
"Thank you for your inquiry %name%,\n\nThis email is a receipt to confirm we have received your inquiry and we'll be in touch shortly.\n\nThanks."
|
6
|
-
)
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.confirmation_subject
|
10
|
-
RefinerySetting.find_or_set(:inquiry_confirmation_subject,
|
11
|
-
"Thank you for your inquiry")
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.confirmation_subject=(value)
|
15
|
-
# handles a change in Refinery API
|
16
|
-
if RefinerySetting.methods.map(&:to_sym).include?(:set)
|
17
|
-
RefinerySetting.set(:inquiry_confirmation_subject, value)
|
18
|
-
else
|
19
|
-
RefinerySetting[:inquiry_confirmation_subject] = value
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.notification_recipients
|
24
|
-
RefinerySetting.find_or_set(:inquiry_notification_recipients,
|
25
|
-
((Role[:refinery].users.first.email rescue nil) if defined?(Role)).to_s)
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.notification_subject
|
29
|
-
RefinerySetting.find_or_set(:inquiry_notification_subject,
|
30
|
-
"New inquiry from your website")
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
<li class='clearfix record <%= cycle("on", "on-hover") %>'>
|
2
|
-
<span class='title'>
|
3
|
-
<%= link_to inquiry.name, admin_inquiry_url(inquiry) %> <%= t('.said') %>
|
4
|
-
<span class="preview"><%= truncate(strip_tags(inquiry.message), :length => 60) -%></span>
|
5
|
-
</span>
|
6
|
-
<span class='actions'>
|
7
|
-
<%= link_to refinery_icon_tag('delete.png'), admin_inquiry_url(inquiry),
|
8
|
-
{ :method => :delete,
|
9
|
-
:confirm => t('shared.admin.delete.message', :title => inquiry.name) },
|
10
|
-
:class => "cancel confirm-delete",
|
11
|
-
:title => t('admin.inquiries.delete') -%>
|
12
|
-
|
13
|
-
<%= link_to refinery_icon_tag('zoom.png'), admin_inquiry_url(inquiry),
|
14
|
-
:title => t('.read_inquiry') -%>
|
15
|
-
|
16
|
-
<% if inquiry.spam? %>
|
17
|
-
<%= link_to refinery_icon_tag('email.png'), toggle_spam_admin_inquiry_url(inquiry),
|
18
|
-
:title => t('.mark_as_ham') -%>
|
19
|
-
<% else %>
|
20
|
-
<%= link_to refinery_icon_tag('bin_closed.png'), toggle_spam_admin_inquiry_url(inquiry),
|
21
|
-
:title => t('.mark_as_spam') -%>
|
22
|
-
<% end %>
|
23
|
-
</span>
|
24
|
-
</li>
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<div id='actions'>
|
2
|
-
<ul>
|
3
|
-
<li>
|
4
|
-
<%= render :partial => "/shared/admin/search", :locals => {:url => request.path} %>
|
5
|
-
</li>
|
6
|
-
<li <%= "class='selected'" if params[:action] == "index" %>>
|
7
|
-
<%= link_to t('.inbox'), admin_inquiries_url, :class => "email_icon" %>
|
8
|
-
</li>
|
9
|
-
<li <%= "class='selected'" if params[:action] == "spam" %>>
|
10
|
-
<% if @spam_count > 0 %>
|
11
|
-
<%= link_to "#{t('.spam')} (#{@spam_count})", spam_admin_inquiries_url, :class => "spam_icon" %>
|
12
|
-
<% else %>
|
13
|
-
<%= link_to t('.spam'), spam_admin_inquiries_url, :class => "spam_empty_icon" %>
|
14
|
-
<% end %>
|
15
|
-
</li>
|
16
|
-
<li>
|
17
|
-
<%= link_to t('.update_notified'),
|
18
|
-
edit_admin_inquiry_setting_url(:inquiry_notification_recipients, :dialog => true, :height => 300),
|
19
|
-
:class => "user_comment_icon" %>
|
20
|
-
</li>
|
21
|
-
<li>
|
22
|
-
<%= link_to t('.edit_confirmation_email'),
|
23
|
-
edit_admin_inquiry_setting_url(:inquiry_confirmation_body, :dialog => true),
|
24
|
-
:class => "edit_email_icon" %>
|
25
|
-
</li>
|
26
|
-
</ul>
|
27
|
-
</div>
|
@@ -1,57 +0,0 @@
|
|
1
|
-
<%= form_for([:admin, @refinery_setting], :url => (@url_override || @url)) do |f| %>
|
2
|
-
|
3
|
-
<p>
|
4
|
-
<%= t('.explanation') %>
|
5
|
-
</p>
|
6
|
-
<p>
|
7
|
-
<%= t('.below_edit_email_sent') %>
|
8
|
-
</p>
|
9
|
-
<table id='inquiry'>
|
10
|
-
<tr>
|
11
|
-
<td>
|
12
|
-
<label class='stripped'><%= t('.to') %></label>
|
13
|
-
</td>
|
14
|
-
<td>
|
15
|
-
<%= t('.the_customer_making_inquiry') %>
|
16
|
-
</td>
|
17
|
-
</tr>
|
18
|
-
<tr>
|
19
|
-
<td>
|
20
|
-
<label class='stripped'><%= t('.from') %></label>
|
21
|
-
</td>
|
22
|
-
<td>
|
23
|
-
<%= "#{RefinerySetting[:site_name]} <no-reply@#{request.domain(RefinerySetting.find_or_set(:tld_length, 1))}>".html_safe %>
|
24
|
-
</td>
|
25
|
-
</tr>
|
26
|
-
<tr>
|
27
|
-
<td>
|
28
|
-
<label class='stripped'><%= t('.subject') %></label>
|
29
|
-
</td>
|
30
|
-
<td>
|
31
|
-
<%= text_field_tag 'subject', InquirySetting.confirmation_subject,
|
32
|
-
:class => 'widest' %>
|
33
|
-
</td>
|
34
|
-
</tr>
|
35
|
-
<tr>
|
36
|
-
<td valign='top'>
|
37
|
-
<%= f.label :value, t('.message'),
|
38
|
-
:class => 'stripped' %>
|
39
|
-
</td>
|
40
|
-
<td>
|
41
|
-
<%= f.text_area :value, :value => f.object.value, # required, we can't use :value
|
42
|
-
:rows => "5",
|
43
|
-
:class => 'widest' %>
|
44
|
-
<br/>
|
45
|
-
<em><%= t('.note') %></em>
|
46
|
-
</td>
|
47
|
-
</tr>
|
48
|
-
</table>
|
49
|
-
|
50
|
-
<%= render :partial => "/shared/admin/form_actions",
|
51
|
-
:locals => {
|
52
|
-
:f => f,
|
53
|
-
:continue_editing => false,
|
54
|
-
:cancel_url => admin_inquiries_url,
|
55
|
-
:hide_delete => true
|
56
|
-
} %>
|
57
|
-
<% end %>
|
@@ -1,34 +0,0 @@
|
|
1
|
-
<% content_for :body_content_left do %>
|
2
|
-
<div class='inquiries'>
|
3
|
-
<%=raw @page[Page.default_parts.first.to_sym] %>
|
4
|
-
|
5
|
-
<%= form_for @inquiry do |f| %>
|
6
|
-
<%= render :partial => "/shared/admin/error_messages",
|
7
|
-
:locals => {
|
8
|
-
:object => @inquiry,
|
9
|
-
:include_object_name => true
|
10
|
-
} %>
|
11
|
-
<div class='field'>
|
12
|
-
<%= f.required_label :name %>
|
13
|
-
<%= f.text_field :name %>
|
14
|
-
</div>
|
15
|
-
<div class='field'>
|
16
|
-
<%= f.required_label :email %>
|
17
|
-
<%= f.text_field :email %>
|
18
|
-
</div>
|
19
|
-
<div class='field'>
|
20
|
-
<%= f.label :phone %>
|
21
|
-
<%= f.text_field :phone %>
|
22
|
-
</div>
|
23
|
-
<div class='field message_field'>
|
24
|
-
<%= f.required_label :message %>
|
25
|
-
<%= f.text_area :message, :rows => 8 %>
|
26
|
-
</div>
|
27
|
-
<div class='actions'>
|
28
|
-
<%= f.submit t('.send') %>
|
29
|
-
<%= link_to t('.privacy_policy'), "/pages/privacy-policy", :id => "privacy_link" if RefinerySetting.find_or_set(:show_contact_privacy_link, false) %>
|
30
|
-
</div>
|
31
|
-
<% end %>
|
32
|
-
</div>
|
33
|
-
<% end %>
|
34
|
-
<%= render :partial => "/shared/content_page" %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render :partial => "/shared/content_page" %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= InquirySetting.confirmation_body.gsub("%name%", @inquiry.name) %>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<%= t('.greeting') %>,
|
2
|
-
|
3
|
-
<%= t('.you_recieved_new_inquiry') %>
|
4
|
-
|
5
|
-
<%= t('.inquiry_starts') %>
|
6
|
-
|
7
|
-
<%= t('.from') %>: <%= @inquiry.name %>
|
8
|
-
<%= t('.email') %>: <%= @inquiry.email %>
|
9
|
-
<%= t('.phone') %>: <%= @inquiry.phone %>
|
10
|
-
<%= t('.message') %>:
|
11
|
-
<%= @inquiry.message %>
|
12
|
-
|
13
|
-
<%= t('.inquiry_ends') %>
|
14
|
-
|
15
|
-
<%= t('.closing_line') %>,
|
16
|
-
<%= RefinerySetting[:site_name] %>
|
17
|
-
|
18
|
-
<%= t('.ps') %>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
class RemovePositionAndOpenFromInquiries < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
remove_column :inquiries, :position
|
4
|
-
remove_column :inquiries, :open
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.down
|
8
|
-
add_column :inquiries, :position, :integer
|
9
|
-
add_column :inquiries, :open, :boolean, :default => true
|
10
|
-
end
|
11
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
::User.find(:all).each do |user|
|
2
|
-
if user.plugins.where(:name => 'refinery_inquiries').blank?
|
3
|
-
user.plugins.create(:name => "refinery_inquiries",
|
4
|
-
:position => (user.plugins.maximum(:position) || -1) +1)
|
5
|
-
end
|
6
|
-
end if defined?(::User)
|
7
|
-
|
8
|
-
if defined?(::Page)
|
9
|
-
page_position = (::Page.maximum(:position, :conditions => {:parent_id => nil}) || -1)
|
10
|
-
|
11
|
-
contact_us_page = ::Page.create({
|
12
|
-
:title => "Contact",
|
13
|
-
:link_url => "/contact",
|
14
|
-
:menu_match => "^/(inquiries|contact).*$",
|
15
|
-
:deletable => false,
|
16
|
-
:position => (page_position += 1)
|
17
|
-
})
|
18
|
-
contact_us_page.parts.create({
|
19
|
-
:title => "Body",
|
20
|
-
:body => "<p>Get in touch with us. Just use the form below and we'll get back to you as soon as we can.</p>",
|
21
|
-
:position => 0
|
22
|
-
})
|
23
|
-
contact_us_page.parts.create({
|
24
|
-
:title => "Side Body",
|
25
|
-
:body => "<p>163 Evergreen Terrace<br/>Happyville<br/>USA.<br/>Phone: 1-800 CALLUSNOW</p>",
|
26
|
-
:position => 1
|
27
|
-
})
|
28
|
-
contact_us_page_position = -1
|
29
|
-
|
30
|
-
thank_you_page = contact_us_page.children.create({
|
31
|
-
:title => "Thank You",
|
32
|
-
:link_url => "/contact/thank_you",
|
33
|
-
:menu_match => "^/(inquiries|contact)/thank_you$",
|
34
|
-
:show_in_menu => false,
|
35
|
-
:deletable => false,
|
36
|
-
:position => (contact_us_page_position += 1)
|
37
|
-
})
|
38
|
-
thank_you_page.parts.create({
|
39
|
-
:title => "Body",
|
40
|
-
:body => "<p>We've received your inquiry and will get back to you with a response shortly.</p><p><a href='/'>Return to the home page</a></p>",
|
41
|
-
:position => 0
|
42
|
-
})
|
43
|
-
|
44
|
-
privacy_policy_page = contact_us_page.children.create({
|
45
|
-
:title => "Privacy Policy",
|
46
|
-
:deletable => true,
|
47
|
-
:show_in_menu => false,
|
48
|
-
:position => (contact_us_page_position += 1)
|
49
|
-
})
|
50
|
-
privacy_policy_page.parts.create({
|
51
|
-
:title => "Body",
|
52
|
-
:body => "<p>We respect your privacy. We do not market, rent or sell our email list to any outside parties.</p><p>We need your e-mail address so that we can ensure that the people using our forms are bona fide. It also allows us to send you e-mail newsletters and other communications, if you opt-in. Your postal address is required in order to send you information and pricing, if you request it.</p><p>Please call us at 123 456 7890 if you have any questions or concerns.</p>",
|
53
|
-
:position => 0
|
54
|
-
})
|
55
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
@refinerycms @inquiries @inquiries-create
|
2
|
-
Feature: Create Inquiries
|
3
|
-
In order to contact the website owner
|
4
|
-
I want to create an inquiry
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given A Refinery user exists
|
8
|
-
And I have no inquiries
|
9
|
-
And I have a page titled "Contact Us" with a custom url "/contact"
|
10
|
-
And I have a page titled "Thank You" with a custom url "/contact/thank_you"
|
11
|
-
|
12
|
-
Scenario: Contact page
|
13
|
-
When I go to the contact page
|
14
|
-
Then I should see "Name *"
|
15
|
-
And I should see "Email *"
|
16
|
-
And I should see "Phone"
|
17
|
-
And I should see "Message *"
|
18
|
-
|
19
|
-
Scenario: Create a valid inquiry
|
20
|
-
When I go to the contact page
|
21
|
-
And I fill in "Name *" with "Philip"
|
22
|
-
And I fill in "Email *" with "phil@refinerycms.com"
|
23
|
-
And I fill in "Message *" with "It sure is good to have a functional test coverage."
|
24
|
-
And I press "Send"
|
25
|
-
Then I should be on the contact thank you page
|
26
|
-
And I should see "Thank You"
|
27
|
-
And I should have 1 inquiries
|
28
|
-
|
29
|
-
Scenario: Create an invalid inquiry
|
30
|
-
When I go to the contact page
|
31
|
-
And I press "Send"
|
32
|
-
Then I should be on the contact create page
|
33
|
-
And I should see "Name can't be blank"
|
34
|
-
And I should not see "Email can't be blank"
|
35
|
-
And I should see "Email is invalid"
|
36
|
-
And I should not see "Phone can't be blank"
|
37
|
-
And I should see "Message can't be blank"
|
38
|
-
And I should have 0 inquiries
|
@@ -1,57 +0,0 @@
|
|
1
|
-
@refinerycms @inquiries @inquiries-manage
|
2
|
-
Feature: Manage Inquiries
|
3
|
-
In order to see inquiries left for me on my website
|
4
|
-
As an Administrator
|
5
|
-
I want to manage inquiries
|
6
|
-
|
7
|
-
Background:
|
8
|
-
Given I am a logged in refinery user
|
9
|
-
And I have no inquiries
|
10
|
-
And I have an inquiry from "David Jones" with email "dave@refinerycms.com" and message "Hello, I really like your website. Was it hard to build and maintain or could anyone do it?"
|
11
|
-
|
12
|
-
Scenario: Inquiries List
|
13
|
-
When I go to the list of inquiries
|
14
|
-
Then I should see "David Jones said Hello, I really like your website. Was it hard to build ..."
|
15
|
-
And I should have 1 inquiries
|
16
|
-
And I should not see "Add"
|
17
|
-
|
18
|
-
Scenario: Spam List
|
19
|
-
When I go to the list of inquiries
|
20
|
-
And I follow "Spam"
|
21
|
-
Then I should see "Hooray! You don't have any spam."
|
22
|
-
|
23
|
-
@inquiry-settings
|
24
|
-
Scenario: Updating who gets notified
|
25
|
-
When I go to the list of inquiries
|
26
|
-
And I follow "Update who gets notified"
|
27
|
-
And I fill in "Send notifications to" with "phil@refinerycms.com"
|
28
|
-
And I press "Save"
|
29
|
-
Then I should be redirected back to "the list of inquiries"
|
30
|
-
And I should see "'Notification Recipients' was successfully updated."
|
31
|
-
And I should be on the list of inquiries
|
32
|
-
|
33
|
-
@inquiry-settings
|
34
|
-
Scenario: Updating confirmation email copy
|
35
|
-
When I go to the list of inquiries
|
36
|
-
And I follow "Edit confirmation email"
|
37
|
-
And I fill in "Message" with "Thanks %name%! We'll never get back to you!"
|
38
|
-
And I press "Save"
|
39
|
-
Then I should be redirected back to "the list of inquiries"
|
40
|
-
And I should see "'Confirmation Body' was successfully updated."
|
41
|
-
And I should be on the list of inquiries
|
42
|
-
|
43
|
-
Scenario: Inquiries Show
|
44
|
-
When I go to the list of inquiries
|
45
|
-
And I follow "Read the inquiry"
|
46
|
-
Then I should see "From David Jones [dave@refinerycms.com]"
|
47
|
-
And I should see "Hello, I really like your website. Was it hard to build and maintain or could anyone do it?"
|
48
|
-
And I should see "Age"
|
49
|
-
And I should see "Back to all Inquiries"
|
50
|
-
And I should see "Remove this inquiry forever"
|
51
|
-
|
52
|
-
Scenario: Inquiries Delete
|
53
|
-
When I go to the list of inquiries
|
54
|
-
And I follow "Read the inquiry"
|
55
|
-
And I follow "Remove this inquiry forever"
|
56
|
-
Then I should see "'David Jones' was successfully removed."
|
57
|
-
And I should have 0 inquiries
|
@@ -1,25 +0,0 @@
|
|
1
|
-
Given /^I have no inquiries$/ do
|
2
|
-
Inquiry.delete_all
|
3
|
-
end
|
4
|
-
|
5
|
-
Then /^I should have ([0-9]+) inquiries?$/ do |count|
|
6
|
-
Inquiry.count.should == count.to_i
|
7
|
-
end
|
8
|
-
|
9
|
-
Given /^I have an? inquiry from "([^"]*)" with email "([^\"]*)" and message "([^\"]*)"$/ do |name, email, message|
|
10
|
-
Inquiry.create(:name => name,
|
11
|
-
:email => email,
|
12
|
-
:message => message)
|
13
|
-
end
|
14
|
-
|
15
|
-
Given /^I have an? inquiry titled "([^"]*)"$/ do |title|
|
16
|
-
Inquiry.create(:name => title,
|
17
|
-
:email => 'test@cukes.com',
|
18
|
-
:message => 'cuking ...',
|
19
|
-
:spam => false)
|
20
|
-
|
21
|
-
Inquiry.create(:name => title,
|
22
|
-
:email => 'test@cukes.com',
|
23
|
-
:message => 'cuking ...',
|
24
|
-
:spam => true)
|
25
|
-
end
|
data/features/support/paths.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module NavigationHelpers
|
2
|
-
module Refinery
|
3
|
-
module Inquiries
|
4
|
-
def path_to(page_name)
|
5
|
-
case page_name
|
6
|
-
when /the contact page/
|
7
|
-
new_inquiry_path
|
8
|
-
|
9
|
-
when /the contact thank you page/
|
10
|
-
thank_you_inquiries_path
|
11
|
-
|
12
|
-
when /the contact create page/
|
13
|
-
inquiries_path
|
14
|
-
|
15
|
-
when /the list of inquiries/
|
16
|
-
admin_inquiries_path
|
17
|
-
|
18
|
-
when /the list of spam inquiries/
|
19
|
-
spam_admin_inquiries_path
|
20
|
-
else
|
21
|
-
nil
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/lib/gemspec.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
version = '1.0.1'
|
3
|
-
raise "Could not get version so gemspec can not be built" if version.nil?
|
4
|
-
files = Dir.glob("**/*").flatten.reject do |file|
|
5
|
-
file =~ /\.gem$/
|
6
|
-
end
|
7
|
-
|
8
|
-
gemspec = <<EOF
|
9
|
-
Gem::Specification.new do |s|
|
10
|
-
s.name = %q{refinerycms-inquiries}
|
11
|
-
s.version = %q{#{version}}
|
12
|
-
s.date = %q{#{Time.now.strftime('%Y-%m-%d')}}
|
13
|
-
s.summary = %q{Inquiry handling functionality for the Refinery CMS project.}
|
14
|
-
s.description = %q{Inquiry handling functionality extracted from Refinery CMS to allow you to have a contact form and manage inquiries in the Refinery backend.}
|
15
|
-
s.homepage = %q{http://refinerycms.com}
|
16
|
-
s.email = %q{info@refinerycms.com}
|
17
|
-
s.authors = ["Resolve Digital"]
|
18
|
-
s.require_paths = %w(lib)
|
19
|
-
|
20
|
-
s.files = [
|
21
|
-
'#{files.join("',\n '")}'
|
22
|
-
]
|
23
|
-
s.require_path = 'lib'
|
24
|
-
|
25
|
-
s.add_dependency('filters_spam', '~> 0.2')
|
26
|
-
end
|
27
|
-
EOF
|
28
|
-
|
29
|
-
File.open(File.expand_path("../../refinerycms-inquiries.gemspec", __FILE__), 'w').puts(gemspec)
|
data/lib/inquiries.rb
DELETED
data/spec/models/inquiry_spec.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
Dir[File.expand_path('../../../features/support/factories.rb', __FILE__)].each {|f| require f}
|
4
|
-
|
5
|
-
describe Inquiry do
|
6
|
-
describe "validations" do
|
7
|
-
before(:each) do
|
8
|
-
@attr = {
|
9
|
-
:name => "rspec",
|
10
|
-
:email => "rspec@refinery.com",
|
11
|
-
:message => "test"
|
12
|
-
}
|
13
|
-
end
|
14
|
-
|
15
|
-
it "rejects empty name" do
|
16
|
-
Inquiry.new(@attr.merge(:name => "")).should_not be_valid
|
17
|
-
end
|
18
|
-
|
19
|
-
it "rejects empty message" do
|
20
|
-
Inquiry.new(@attr.merge(:message => "")).should_not be_valid
|
21
|
-
end
|
22
|
-
|
23
|
-
it "rejects invalid email format" do
|
24
|
-
["", "@refinerycms.com", "refinery@cms", "refinery@cms.123"].each do |email|
|
25
|
-
Inquiry.new(@attr.merge(:email => email)).should_not be_valid
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "default scope" do
|
31
|
-
it "orders by created_at in desc" do
|
32
|
-
inquiry1 = Factory(:inquiry, :created_at => 1.hour.ago)
|
33
|
-
inquiry2 = Factory(:inquiry, :created_at => 2.hours.ago)
|
34
|
-
inquiries = Inquiry.all
|
35
|
-
inquiries.first.should == inquiry1
|
36
|
-
inquiries.second.should == inquiry2
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe ".latest" do
|
41
|
-
it "returns latest 7 non-spam inquiries by default" do
|
42
|
-
8.times { Factory(:inquiry) }
|
43
|
-
Inquiry.last.toggle!(:spam)
|
44
|
-
Inquiry.latest.length.should == 7
|
45
|
-
end
|
46
|
-
|
47
|
-
it "returns latest 7 inquiries including spam ones" do
|
48
|
-
4.times { Factory(:inquiry) }
|
49
|
-
3.times { Factory(:inquiry) }
|
50
|
-
Inquiry.all[0..2].each { |inquiry| inquiry.toggle!(:spam) }
|
51
|
-
Inquiry.latest(7, true).length.should == 7
|
52
|
-
end
|
53
|
-
|
54
|
-
it "returns latest n inquiries" do
|
55
|
-
4.times { Factory(:inquiry) }
|
56
|
-
Inquiry.latest(3).length.should == 3
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|