refinerycms-inquiries 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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