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.
Files changed (87) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +16 -0
  3. data/Gemfile +68 -0
  4. data/Guardfile +20 -0
  5. data/Rakefile +19 -0
  6. data/app/assets/stylesheets/refinery/inquiries/inquiries.css.scss +21 -0
  7. data/app/controllers/refinery/inquiries/admin/inquiries_controller.rb +50 -0
  8. data/app/controllers/refinery/inquiries/admin/settings_controller.rb +56 -0
  9. data/app/controllers/refinery/inquiries/inquiries_controller.rb +47 -0
  10. data/app/helpers/refinery/inquiries/inquiries_helper.rb +6 -0
  11. data/app/mailers/refinery/inquiries/inquiry_mailer.rb +22 -0
  12. data/app/models/refinery/inquiries/inquiry.rb +27 -0
  13. data/app/models/refinery/inquiries/setting.rb +63 -0
  14. data/app/views/refinery/inquiries/admin/inquiries/_inquiry.html.erb +27 -0
  15. data/app/views/refinery/inquiries/admin/inquiries/_submenu.html.erb +27 -0
  16. data/app/views/{admin → refinery/inquiries/admin}/inquiries/index.html.erb +2 -2
  17. data/app/views/{admin → refinery/inquiries/admin}/inquiries/show.html.erb +9 -7
  18. data/app/views/refinery/inquiries/admin/settings/_confirmation_email_form.html.erb +59 -0
  19. data/app/views/{admin/inquiry_settings → refinery/inquiries/admin/settings}/_notification_recipients_form.html.erb +3 -3
  20. data/app/views/{admin/inquiry_settings → refinery/inquiries/admin/settings}/edit.html.erb +1 -1
  21. data/app/views/refinery/inquiries/inquiries/new.html.erb +32 -0
  22. data/app/views/refinery/inquiries/inquiries/thank_you.html.erb +1 -0
  23. data/app/views/refinery/inquiries/inquiry_mailer/confirmation.text.erb +1 -0
  24. data/app/views/refinery/inquiries/inquiry_mailer/notification.text.erb +18 -0
  25. data/config/locales/bg.yml +77 -0
  26. data/config/locales/cs.yml +68 -66
  27. data/config/locales/da.yml +60 -58
  28. data/config/locales/de.yml +69 -67
  29. data/config/locales/en-GB.yml +68 -66
  30. data/config/locales/en.yml +68 -66
  31. data/config/locales/es.yml +71 -69
  32. data/config/locales/fr.yml +69 -67
  33. data/config/locales/it.yml +70 -68
  34. data/config/locales/lolcat.yml +69 -67
  35. data/config/locales/lt.yml +69 -67
  36. data/config/locales/lv.yml +69 -67
  37. data/config/locales/nb.yml +70 -68
  38. data/config/locales/nl.yml +69 -67
  39. data/config/locales/pl.yml +69 -67
  40. data/config/locales/pt-BR.yml +69 -67
  41. data/config/locales/ru.yml +69 -67
  42. data/config/locales/sk.yml +69 -67
  43. data/config/locales/sl.yml +69 -67
  44. data/config/locales/sv.yml +69 -67
  45. data/config/locales/zh-CN.yml +69 -67
  46. data/config/routes.rb +16 -16
  47. data/db/migrate/20101208082840_create_inquiries.rb +16 -34
  48. data/db/seeds.rb +50 -0
  49. data/lib/generators/refinery/inquiries/inquiries_generator.rb +19 -0
  50. data/lib/refinery/inquiries/configuration.rb +9 -0
  51. data/lib/refinery/inquiries/engine.rb +28 -0
  52. data/lib/refinery/inquiries.rb +26 -0
  53. data/lib/refinerycms-inquiries.rb +1 -23
  54. data/readme.md +12 -4
  55. data/refinerycms-inquiries.gemspec +11 -86
  56. data/spec/factories/inquiry.rb +7 -0
  57. data/spec/models/refinery/inquiries/inquiry_spec.rb +52 -0
  58. data/spec/requests/refinery/inquiries/admin/inquiries_spec.rb +138 -0
  59. data/spec/requests/refinery/inquiries/inquiries_spec.rb +81 -0
  60. data/spec/spec_helper.rb +56 -0
  61. data/tasks/rspec.rake +4 -0
  62. metadata +114 -39
  63. data/app/controllers/admin/inquiries_controller.rb +0 -41
  64. data/app/controllers/admin/inquiry_settings_controller.rb +0 -43
  65. data/app/controllers/inquiries_controller.rb +0 -43
  66. data/app/helpers/inquiries_helper.rb +0 -2
  67. data/app/mailers/inquiry_mailer.rb +0 -20
  68. data/app/models/inquiry.rb +0 -21
  69. data/app/models/inquiry_setting.rb +0 -33
  70. data/app/views/admin/inquiries/_inquiry.html.erb +0 -24
  71. data/app/views/admin/inquiries/_submenu.html.erb +0 -27
  72. data/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +0 -57
  73. data/app/views/inquiries/new.html.erb +0 -34
  74. data/app/views/inquiries/thank_you.html.erb +0 -1
  75. data/app/views/inquiry_mailer/confirmation.html.erb +0 -1
  76. data/app/views/inquiry_mailer/notification.html.erb +0 -18
  77. data/db/migrate/20101208082841_remove_position_and_open_from_inquiries.rb +0 -11
  78. data/db/seeds/pages_for_inquiries.rb +0 -55
  79. data/features/create_inquiries.feature +0 -38
  80. data/features/manage_inquiries.feature +0 -57
  81. data/features/step_definitions/inquiry_steps.rb +0 -25
  82. data/features/support/factories.rb +0 -7
  83. data/features/support/paths.rb +0 -26
  84. data/lib/gemspec.rb +0 -29
  85. data/lib/generators/refinerycms_inquiries_generator.rb +0 -6
  86. data/lib/inquiries.rb +0 -2
  87. data/spec/models/inquiry_spec.rb +0 -59
@@ -0,0 +1,138 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ module Inquiries
5
+ module Admin
6
+ describe Inquiry do
7
+ login_refinery_user
8
+
9
+ let!(:inquiry) do
10
+ Factory(:inquiry, :name => "David Jones",
11
+ :email => "dave@refinerycms.com",
12
+ :message => "Hello, I really like your website. Was it hard to build and maintain or could anyone do it?")
13
+ end
14
+
15
+ context "when no" do
16
+ before(:each) { Refinery::Inquiries::Inquiry.destroy_all }
17
+
18
+ context "inquiries" do
19
+ it "shows message" do
20
+ visit refinery.inquiries_admin_inquiries_path
21
+
22
+ page.should have_content("You have not received any inquiries yet.")
23
+ end
24
+ end
25
+
26
+ context "spam inquiries" do
27
+ it "shows message" do
28
+ visit refinery.spam_inquiries_admin_inquiries_path
29
+
30
+ page.should have_content("Hooray! You don't have any spam.")
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "action links" do
36
+ before(:each) { visit refinery.inquiries_admin_inquiries_path }
37
+
38
+ specify "in the side pane" do
39
+ within "#actions" do
40
+ page.should have_content("Inbox")
41
+ page.should have_selector("a[href='/refinery/inquiries']")
42
+ page.should have_content("Spam")
43
+ page.should have_selector("a[href='/refinery/inquiries/spam']")
44
+ page.should have_content("Update who gets notified")
45
+ page.should have_selector("a[href*='/refinery/inquiries/settings/inquiry_notification_recipients/edit']")
46
+ page.should have_content("Edit confirmation email")
47
+ page.should have_selector("a[href*='/refinery/inquiries/settings/inquiry_confirmation_body/edit']")
48
+ end
49
+ end
50
+ end
51
+
52
+ describe "index" do
53
+ it "shows inquiry list" do
54
+ visit refinery.inquiries_admin_inquiries_path
55
+
56
+ page.should have_content("David Jones said Hello, I really like your website. Was it hard to build ...")
57
+ end
58
+ end
59
+
60
+ describe "show" do
61
+ it "shows inquiry details" do
62
+ visit refinery.inquiries_admin_inquiries_path
63
+
64
+ click_link "Read the inquiry"
65
+
66
+ page.should have_content("From David Jones [dave@refinerycms.com]")
67
+ page.should have_content("Hello, I really like your website. Was it hard to build and maintain or could anyone do it?")
68
+ within "#actions" do
69
+ page.should have_content("Age")
70
+ page.should have_content("Back to all Inquiries")
71
+ page.should have_selector("a[href='/refinery/inquiries']")
72
+ page.should have_content("Remove this inquiry forever")
73
+ page.should have_selector("a[href='/refinery/inquiries/#{inquiry.id}']")
74
+ end
75
+ end
76
+ end
77
+
78
+ describe "destroy" do
79
+ it "removes inquiry" do
80
+ visit refinery.inquiries_admin_inquiries_path
81
+
82
+ click_link "Remove this inquiry forever"
83
+
84
+ page.should have_content("'#{inquiry.name}' was successfully removed.")
85
+ Refinery::Inquiries::Inquiry.count.should == 0
86
+ end
87
+ end
88
+
89
+ describe "spam" do
90
+ it "moves inquiry to spam" do
91
+ visit refinery.inquiries_admin_inquiries_path
92
+
93
+ click_link "Mark as spam"
94
+
95
+ within "#actions" do
96
+ page.should have_content("Spam (1)")
97
+ click_link "Spam (1)"
98
+ end
99
+
100
+ page.should have_content("David Jones said Hello, I really like your website. Was it hard to build ...")
101
+ end
102
+ end
103
+
104
+ =begin
105
+ describe "update who gets notified" do
106
+ it "sets receiver", :js => true do
107
+ visit refinery.inquiries_admin_inquiries_path
108
+
109
+ click_link "Update who gets notified"
110
+
111
+ within_frame "dialog_iframe" do
112
+ fill_in "Send notifications to", :with => "phil@refinerycms.com"
113
+ click_button "Save"
114
+ end
115
+
116
+ page.should have_content("'Notification Recipients' was successfully updated.")
117
+ end
118
+ end
119
+
120
+ describe "updating confirmation email copy" do
121
+ it "sets message", :js => true do
122
+ visit refinery.inquiries_admin_inquiries_path
123
+
124
+ click_link "Edit confirmation email"
125
+
126
+ within_frame "dialog_iframe" do
127
+ fill_in "Message", :with => "Thanks %name%! We'll never get back to you!"
128
+ click_button "Save"
129
+ end
130
+
131
+ page.should have_content("'Confirmation Body' was successfully updated.")
132
+ end
133
+ end
134
+ =end
135
+ end
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,81 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ module Inquiries
5
+ describe "inquiries" do
6
+ before(:each) do
7
+ Factory(:refinery_user)
8
+
9
+ # load in seeds we use in migration
10
+ Refinery::Inquiries::Engine.load_seed
11
+ end
12
+
13
+ context "when valid data" do
14
+ it "is successful" do
15
+ visit refinery.inquiries_new_inquiry_path
16
+
17
+ fill_in "Name", :with => "Ugis Ozols"
18
+ fill_in "Email", :with => "ugis.ozols@refinerycms.com"
19
+ fill_in "Message", :with => "Hey, I'm testing!"
20
+ click_button "Send message"
21
+
22
+ page.current_path.should == refinery.thank_you_inquiries_inquiries_path
23
+ page.should have_content("Thank You")
24
+
25
+ within "#body_content" do
26
+ page.should have_content("We've received your inquiry and will get back to you with a response shortly.")
27
+ page.should have_content("Return to the home page")
28
+ page.should have_selector("a[href='/']")
29
+ end
30
+
31
+ Refinery::Inquiries::Inquiry.count.should == 1
32
+ end
33
+ end
34
+
35
+ context "when invalid data" do
36
+ it "is not successful" do
37
+ visit refinery.inquiries_new_inquiry_path
38
+
39
+ click_button "Send message"
40
+
41
+ page.current_path.should == refinery.inquiries_new_inquiry_path
42
+ page.should have_content("There were problems with the following fields")
43
+ page.should have_content("Name can't be blank")
44
+ page.should have_content("Email is invalid")
45
+ page.should have_content("Message can't be blank")
46
+ page.should have_no_content("Phone can't be blank")
47
+
48
+ Refinery::Inquiries::Inquiry.count.should == 0
49
+ end
50
+ end
51
+
52
+ describe "privacy" do
53
+ context "when show contact privacy link setting set to false" do
54
+ before(:each) do
55
+ Refinery::Inquiries.stub(:show_contact_privacy_link).and_return(false)
56
+ end
57
+
58
+ it "won't show link" do
59
+ visit refinery.inquiries_new_inquiry_path
60
+
61
+ page.should have_no_content("We value your privacy")
62
+ page.should have_no_selector("a[href='/pages/privacy-policy']")
63
+ end
64
+ end
65
+
66
+ context "when show contact privacy link setting set to true" do
67
+ before(:each) do
68
+ Refinery::Inquiries.config.stub(:show_contact_privacy_link).and_return(true)
69
+ end
70
+
71
+ it "shows the link" do
72
+ visit refinery.inquiries_new_inquiry_path
73
+
74
+ page.should have_content("We value your privacy")
75
+ page.should have_selector("a[href='/pages/privacy-policy']")
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,56 @@
1
+ require 'rubygems'
2
+
3
+ def setup_environment
4
+ # Configure Rails Environment
5
+ ENV["RAILS_ENV"] ||= 'test'
6
+
7
+ require File.expand_path("../dummy/config/environment", __FILE__)
8
+
9
+ require 'rspec/rails'
10
+ require 'capybara/rspec'
11
+ require 'factory_girl_rails'
12
+
13
+ Rails.backtrace_cleaner.remove_silencers!
14
+
15
+ RSpec.configure do |config|
16
+ config.mock_with :rspec
17
+ config.treat_symbols_as_metadata_keys_with_true_values = true
18
+ config.filter_run :focus => true
19
+ config.run_all_when_everything_filtered = true
20
+ end
21
+
22
+ # set javascript driver for capybara
23
+ Capybara.javascript_driver = :selenium
24
+ end
25
+
26
+ def each_run
27
+ ActiveSupport::Dependencies.clear
28
+
29
+ FactoryGirl.reload
30
+
31
+ # Requires supporting files with custom matchers and macros, etc,
32
+ # in ./support/ and its subdirectories including factories.
33
+ ([Rails.root.to_s] | ::Refinery::Plugins.registered.pathnames).map{|p|
34
+ Dir[File.join(p, 'spec', 'support', '**', '*.rb').to_s]
35
+ }.flatten.sort.each do |support_file|
36
+ require support_file
37
+ end
38
+ end
39
+
40
+ # If spork is available in the Gemfile it'll be used but we don't force it.
41
+ unless (begin; require 'spork'; rescue LoadError; nil end).nil?
42
+ Spork.prefork do
43
+ # Loading more in this block will cause your tests to run faster. However,
44
+ # if you change any configuration or code from libraries loaded here, you'll
45
+ # need to restart spork for it take effect.
46
+ setup_environment
47
+ end
48
+
49
+ Spork.each_run do
50
+ # This code will be run each time you run your specs.
51
+ each_run
52
+ end
53
+ else
54
+ setup_environment
55
+ each_run
56
+ end
data/tasks/rspec.rake ADDED
@@ -0,0 +1,4 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ desc "Run specs"
4
+ RSpec::Core::RakeTask.new
metadata CHANGED
@@ -1,29 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinerycms-inquiries
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease:
5
- version: 1.0.1
6
+ segments:
7
+ - 2
8
+ - 0
9
+ - 0
10
+ version: 2.0.0
6
11
  platform: ruby
7
12
  authors:
8
- - Resolve Digital
13
+ - Philip Arndt
14
+ - "U\xC4\xA3is Ozols"
15
+ - David Jones
9
16
  autorequire:
10
17
  bindir: bin
11
18
  cert_chain: []
12
19
 
13
- date: 2011-05-28 00:00:00 +12:00
14
- default_executable:
20
+ date: 2012-03-06 00:00:00 Z
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
17
- name: filters_spam
23
+ name: refinerycms-core
18
24
  prerelease: false
19
25
  requirement: &id001 !ruby/object:Gem::Requirement
20
26
  none: false
21
27
  requirements:
22
28
  - - ~>
23
29
  - !ruby/object:Gem::Version
24
- version: "0.2"
30
+ hash: 13
31
+ segments:
32
+ - 2
33
+ - 0
34
+ - 1
35
+ version: 2.0.1
25
36
  type: :runtime
26
37
  version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
39
+ name: refinerycms-settings
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ hash: 13
47
+ segments:
48
+ - 2
49
+ - 0
50
+ - 1
51
+ version: 2.0.1
52
+ type: :runtime
53
+ version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
55
+ name: filters_spam
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ hash: 15
63
+ segments:
64
+ - 0
65
+ - 2
66
+ version: "0.2"
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: refinerycms-testing
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 15
78
+ segments:
79
+ - 2
80
+ - 0
81
+ - 0
82
+ version: 2.0.0
83
+ type: :development
84
+ version_requirements: *id004
27
85
  description: Inquiry handling functionality extracted from Refinery CMS to allow you to have a contact form and manage inquiries in the Refinery backend.
28
86
  email: info@refinerycms.com
29
87
  executables: []
@@ -33,24 +91,31 @@ extensions: []
33
91
  extra_rdoc_files: []
34
92
 
35
93
  files:
36
- - app/controllers/admin/inquiries_controller.rb
37
- - app/controllers/admin/inquiry_settings_controller.rb
38
- - app/controllers/inquiries_controller.rb
39
- - app/helpers/inquiries_helper.rb
40
- - app/mailers/inquiry_mailer.rb
41
- - app/models/inquiry.rb
42
- - app/models/inquiry_setting.rb
43
- - app/views/admin/inquiries/_inquiry.html.erb
44
- - app/views/admin/inquiries/_submenu.html.erb
45
- - app/views/admin/inquiries/index.html.erb
46
- - app/views/admin/inquiries/show.html.erb
47
- - app/views/admin/inquiry_settings/_confirmation_email_form.html.erb
48
- - app/views/admin/inquiry_settings/_notification_recipients_form.html.erb
49
- - app/views/admin/inquiry_settings/edit.html.erb
50
- - app/views/inquiries/new.html.erb
51
- - app/views/inquiries/thank_you.html.erb
52
- - app/views/inquiry_mailer/confirmation.html.erb
53
- - app/views/inquiry_mailer/notification.html.erb
94
+ - .gitignore
95
+ - .travis.yml
96
+ - Gemfile
97
+ - Guardfile
98
+ - Rakefile
99
+ - app/assets/stylesheets/refinery/inquiries/inquiries.css.scss
100
+ - app/controllers/refinery/inquiries/admin/inquiries_controller.rb
101
+ - app/controllers/refinery/inquiries/admin/settings_controller.rb
102
+ - app/controllers/refinery/inquiries/inquiries_controller.rb
103
+ - app/helpers/refinery/inquiries/inquiries_helper.rb
104
+ - app/mailers/refinery/inquiries/inquiry_mailer.rb
105
+ - app/models/refinery/inquiries/inquiry.rb
106
+ - app/models/refinery/inquiries/setting.rb
107
+ - app/views/refinery/inquiries/admin/inquiries/_inquiry.html.erb
108
+ - app/views/refinery/inquiries/admin/inquiries/_submenu.html.erb
109
+ - app/views/refinery/inquiries/admin/inquiries/index.html.erb
110
+ - app/views/refinery/inquiries/admin/inquiries/show.html.erb
111
+ - app/views/refinery/inquiries/admin/settings/_confirmation_email_form.html.erb
112
+ - app/views/refinery/inquiries/admin/settings/_notification_recipients_form.html.erb
113
+ - app/views/refinery/inquiries/admin/settings/edit.html.erb
114
+ - app/views/refinery/inquiries/inquiries/new.html.erb
115
+ - app/views/refinery/inquiries/inquiries/thank_you.html.erb
116
+ - app/views/refinery/inquiries/inquiry_mailer/confirmation.text.erb
117
+ - app/views/refinery/inquiries/inquiry_mailer/notification.text.erb
118
+ - config/locales/bg.yml
54
119
  - config/locales/cs.yml
55
120
  - config/locales/da.yml
56
121
  - config/locales/de.yml
@@ -73,22 +138,21 @@ files:
73
138
  - config/locales/zh-CN.yml
74
139
  - config/routes.rb
75
140
  - db/migrate/20101208082840_create_inquiries.rb
76
- - db/migrate/20101208082841_remove_position_and_open_from_inquiries.rb
77
- - db/seeds/pages_for_inquiries.rb
78
- - features/create_inquiries.feature
79
- - features/manage_inquiries.feature
80
- - features/step_definitions/inquiry_steps.rb
81
- - features/support/factories.rb
82
- - features/support/paths.rb
83
- - lib/gemspec.rb
84
- - lib/generators/refinerycms_inquiries_generator.rb
85
- - lib/inquiries.rb
141
+ - db/seeds.rb
142
+ - lib/generators/refinery/inquiries/inquiries_generator.rb
143
+ - lib/refinery/inquiries.rb
144
+ - lib/refinery/inquiries/configuration.rb
145
+ - lib/refinery/inquiries/engine.rb
86
146
  - lib/refinerycms-inquiries.rb
87
147
  - license.md
88
148
  - readme.md
89
149
  - refinerycms-inquiries.gemspec
90
- - spec/models/inquiry_spec.rb
91
- has_rdoc: true
150
+ - spec/factories/inquiry.rb
151
+ - spec/models/refinery/inquiries/inquiry_spec.rb
152
+ - spec/requests/refinery/inquiries/admin/inquiries_spec.rb
153
+ - spec/requests/refinery/inquiries/inquiries_spec.rb
154
+ - spec/spec_helper.rb
155
+ - tasks/rspec.rake
92
156
  homepage: http://refinerycms.com
93
157
  licenses: []
94
158
 
@@ -102,19 +166,30 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
166
  requirements:
103
167
  - - ">="
104
168
  - !ruby/object:Gem::Version
169
+ hash: 3
170
+ segments:
171
+ - 0
105
172
  version: "0"
106
173
  required_rubygems_version: !ruby/object:Gem::Requirement
107
174
  none: false
108
175
  requirements:
109
176
  - - ">="
110
177
  - !ruby/object:Gem::Version
178
+ hash: 3
179
+ segments:
180
+ - 0
111
181
  version: "0"
112
182
  requirements: []
113
183
 
114
184
  rubyforge_project:
115
- rubygems_version: 1.6.2
185
+ rubygems_version: 1.8.17
116
186
  signing_key:
117
187
  specification_version: 3
118
188
  summary: Inquiry handling functionality for the Refinery CMS project.
119
- test_files: []
120
-
189
+ test_files:
190
+ - spec/factories/inquiry.rb
191
+ - spec/models/refinery/inquiries/inquiry_spec.rb
192
+ - spec/requests/refinery/inquiries/admin/inquiries_spec.rb
193
+ - spec/requests/refinery/inquiries/inquiries_spec.rb
194
+ - spec/spec_helper.rb
195
+ has_rdoc:
@@ -1,41 +0,0 @@
1
- class Admin::InquiriesController < Admin::BaseController
2
-
3
- crudify :inquiry, :title_attribute => "name", :order => "created_at DESC"
4
- helper_method :group_by_date
5
-
6
- before_filter :find_all_ham, :only => [:index]
7
- before_filter :find_all_spam, :only => [:spam]
8
- before_filter :get_spam_count, :only => [:index, :spam]
9
-
10
- def index
11
- @inquiries = @inquiries.with_query(params[:search]) if searching?
12
- @inquiries = @inquiries.paginate({:page => params[:page]})
13
- end
14
-
15
- def spam
16
- self.index
17
- render :action => 'index'
18
- end
19
-
20
- def toggle_spam
21
- find_inquiry
22
- @inquiry.toggle!(:spam)
23
-
24
- redirect_to :back
25
- end
26
-
27
- protected
28
-
29
- def find_all_ham
30
- @inquiries = Inquiry.ham
31
- end
32
-
33
- def find_all_spam
34
- @inquiries = Inquiry.spam
35
- end
36
-
37
- def get_spam_count
38
- @spam_count = Inquiry.count(:conditions => {:spam => true})
39
- end
40
-
41
- end
@@ -1,43 +0,0 @@
1
- class Admin::InquirySettingsController < Admin::BaseController
2
-
3
- crudify :refinery_setting,
4
- :title_attribute => "name",
5
- :order => 'name ASC',
6
- :redirect_to_url => "admin_inquiries_url"
7
-
8
- before_filter :set_url_override?, :only => [:edit, :update]
9
- after_filter :save_subject_for_confirmation?, :only => :update
10
- around_filter :rewrite_flash?, :only => :update
11
-
12
- protected
13
- def rewrite_flash?
14
- yield
15
-
16
- flash[:notice] = flash[:notice].to_s.gsub(/(\'.*\')/) {|m| m.titleize}.gsub('Inquiry ', '')
17
- end
18
-
19
- def save_subject_for_confirmation?
20
- InquirySetting.confirmation_subject = params[:subject] if params.keys.include?('subject')
21
- end
22
-
23
- def set_url_override?
24
- @url_override = admin_inquiry_setting_url(@refinery_setting, :dialog => from_dialog?)
25
- end
26
-
27
- def find_refinery_setting
28
- # ensure that we're dealing with the name of the setting, not the id.
29
- begin
30
- if params[:id].to_i.to_s == params[:id]
31
- params[:id] = RefinerySetting.find(params[:id]).name.to_s
32
- end
33
- rescue
34
- end
35
-
36
- # prime the setting first, if it's valid.
37
- if InquirySetting.methods.map(&:to_sym).include?(params[:id].to_s.gsub('inquiry_', '').to_sym)
38
- InquirySetting.send(params[:id].to_s.gsub('inquiry_', '').to_sym)
39
- end
40
- @refinery_setting = RefinerySetting.find_by_name(params[:id])
41
- end
42
-
43
- end
@@ -1,43 +0,0 @@
1
- class InquiriesController < ApplicationController
2
-
3
- before_filter :find_page, :only => [:create, :new]
4
-
5
- def thank_you
6
- @page = Page.find_by_link_url("/contact/thank_you", :include => [:parts, :slugs])
7
- end
8
-
9
- def new
10
- @inquiry = Inquiry.new
11
- end
12
-
13
- def create
14
- @inquiry = Inquiry.new(params[:inquiry])
15
-
16
- if @inquiry.save
17
- if @inquiry.ham?
18
- begin
19
- InquiryMailer.notification(@inquiry, request).deliver
20
- rescue
21
- logger.warn "There was an error delivering an inquiry notification.\n#{$!}\n"
22
- end
23
-
24
- begin
25
- InquiryMailer.confirmation(@inquiry, request).deliver
26
- rescue
27
- logger.warn "There was an error delivering an inquiry confirmation:\n#{$!}\n"
28
- end
29
- end
30
-
31
- redirect_to thank_you_inquiries_url
32
- else
33
- render :action => 'new'
34
- end
35
- end
36
-
37
- protected
38
-
39
- def find_page
40
- @page = Page.find_by_link_url('/contact', :include => [:parts, :slugs])
41
- end
42
-
43
- end
@@ -1,2 +0,0 @@
1
- module InquiriesHelper
2
- end
@@ -1,20 +0,0 @@
1
- class InquiryMailer < ActionMailer::Base
2
-
3
- def confirmation(inquiry, request)
4
- subject InquirySetting.confirmation_subject
5
- recipients inquiry.email
6
- from "\"#{RefinerySetting[:site_name]}\" <no-reply@#{request.domain(RefinerySetting.find_or_set(:tld_length, 1))}>"
7
- reply_to InquirySetting.notification_recipients.split(',').first
8
- sent_on Time.now
9
- @inquiry = inquiry
10
- end
11
-
12
- def notification(inquiry, request)
13
- subject InquirySetting.notification_subject
14
- recipients InquirySetting.notification_recipients
15
- from "\"#{RefinerySetting[:site_name]}\" <no-reply@#{request.domain(RefinerySetting.find_or_set(:tld_length, 1))}>"
16
- sent_on Time.now
17
- @inquiry = inquiry
18
- end
19
-
20
- end
@@ -1,21 +0,0 @@
1
- class Inquiry < ActiveRecord::Base
2
-
3
- filters_spam :message_field => :message,
4
- :email_field => :email,
5
- :author_field => :name,
6
- :other_fields => [:phone],
7
- :extra_spam_words => %w()
8
-
9
- validates :name, :presence => true
10
- validates :message, :presence => true
11
- validates :email, :format=> { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i }
12
-
13
- acts_as_indexed :fields => [:name, :email, :message, :phone]
14
-
15
- default_scope :order => 'created_at DESC' # previously scope :newest
16
-
17
- def self.latest(number = 7, include_spam = false)
18
- include_spam ? limit(number) : ham.limit(number)
19
- end
20
-
21
- end