pointless_feedback 4.0.3 → 4.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +20 -3
- data/app/controllers/pointless_feedback/messages_controller.rb +2 -0
- data/app/models/pointless_feedback/message.rb +26 -4
- data/lib/generators/templates/pointless_feedback.rb +27 -5
- data/lib/pointless_feedback.rb +11 -0
- data/lib/pointless_feedback/version.rb +1 -1
- data/test/dummy/log/test.log +0 -0
- metadata +59 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d53eed87ef989df133f64d5f4fa0900eb0d6aee928d3dffcfdafbf68eb053d11
|
4
|
+
data.tar.gz: a02e3a8589e71aaeff63f3c3de7fc43e91517735fb5e56593d63f92a08df8fb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd9f9db0beb9fc3dc24b43aba150c476aaf9aff9a94994da1df9fe63e6d08ebad7a59cc100b9fbeac15b80f62028e61b2725d631ca9f114ffd33dbb5d753e4bc
|
7
|
+
data.tar.gz: b055d4ceaebbe4b094629ca0c7451cc8dcaee96b3cc904ba129a76ab1b4941d3390ea656f4f1e5d49903f5d0d3ac8f8a857fb1ca025dd462dbb827a52b824991
|
data/README.md
CHANGED
@@ -72,12 +72,14 @@ feedback form that users can submit.
|
|
72
72
|
|
73
73
|
There are a number of configuration variables you can set in the initializer generated by `rails generate pointless_feedback:install`
|
74
74
|
|
75
|
-
|
76
|
-
Defaults to `['Error on page', 'Other']`. Populates the "Topic" dropdown for feedback submissions.
|
75
|
+
#### Email Configuration
|
77
76
|
|
78
77
|
**email_feedback:**
|
79
78
|
Defaults to `false`. If set to `true` will send feedback as an email.
|
80
79
|
|
80
|
+
**message_topics:**
|
81
|
+
Defaults to `['Error on page', 'Other']`. Populates the "Topic" dropdown for feedback submissions.
|
82
|
+
|
81
83
|
**send_from_submitter:**
|
82
84
|
Defaults to `false`. If set to `true` will use the submitted email address as the from address for feedback emails.
|
83
85
|
|
@@ -90,6 +92,22 @@ Specifies what address the feedback email is sent from.
|
|
90
92
|
**table_name:**
|
91
93
|
Defaults to engine's namespace, e.g. `pointless_feedback_messages`. Change to any desired table for `PointlessFeedback::Message` model.
|
92
94
|
|
95
|
+
**google_captcha_site_key & google_captcha_secret_key:**
|
96
|
+
If you'd like to block out the robots, set up a Google Captcha instance:
|
97
|
+
|
98
|
+
Do so here - http://www.google.com/recaptcha/admin. Be sure to configure it with the reCAPTCHA v2 `"I'm not a robot" Checkbox`. Then copy the site_key and secret_key into these config variables and PointlessFeedback will handle the rest!
|
99
|
+
|
100
|
+
#### Airtable Configuration
|
101
|
+
|
102
|
+
**airtable_api_key:**
|
103
|
+
Self explanatory, required if you want to export submitted feedback contents into an Airtable database.
|
104
|
+
|
105
|
+
**airtable_app_key:**
|
106
|
+
Self explanatory
|
107
|
+
|
108
|
+
**airtable_table_name:**
|
109
|
+
Self explanatory
|
110
|
+
|
93
111
|
## Customization
|
94
112
|
|
95
113
|
Pointless Feedback provides you with a simple setup that should cover most
|
@@ -159,7 +177,6 @@ to customize your redirect hook.
|
|
159
177
|
|
160
178
|
## Roadmap
|
161
179
|
|
162
|
-
- [ ] Add service to send to Unfuddle
|
163
180
|
- [ ] Add service to send to Github
|
164
181
|
- [ ] Add admin view for messages with comments
|
165
182
|
|
@@ -15,6 +15,8 @@ module PointlessFeedback
|
|
15
15
|
|
16
16
|
redirect_to after_message_create_path
|
17
17
|
else
|
18
|
+
flash[:alert] = I18n.t('pointless_feedback.messages.invalid_captcha',
|
19
|
+
:default => 'Are you a robot? Please check the box at the bottom of the page and try again.')
|
18
20
|
render :new
|
19
21
|
end
|
20
22
|
end
|
@@ -16,11 +16,33 @@ module PointlessFeedback
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def export_feedback
|
19
|
-
|
19
|
+
if PointlessFeedback.email_feedback
|
20
|
+
# Support Rails < 4.2 and >= 4.2 delivery options
|
21
|
+
mailer = FeedbackMailer.feedback(self)
|
22
|
+
mailer.respond_to?(:deliver_now) ? mailer.deliver_now : mailer.deliver
|
23
|
+
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
25
|
+
if PointlessFeedback.airtable_api_key
|
26
|
+
feedback_table = Airrecord.table(
|
27
|
+
PointlessFeedback.airtable_api_key,
|
28
|
+
PointlessFeedback.airtable_app_key,
|
29
|
+
PointlessFeedback.airtable_table_name
|
30
|
+
)
|
31
|
+
|
32
|
+
begin
|
33
|
+
feedback_table.create(
|
34
|
+
"Name" => name,
|
35
|
+
"Email" => email_address,
|
36
|
+
"Topic" => topic,
|
37
|
+
"Description" => description,
|
38
|
+
"Date" => created_at
|
39
|
+
)
|
40
|
+
rescue => e
|
41
|
+
# ignore errors in production, last thing you want is a 500
|
42
|
+
# when someone's trying to complain about your site.
|
43
|
+
raise(e) if Rails.env.development?
|
44
|
+
end
|
45
|
+
end
|
24
46
|
end
|
25
47
|
|
26
48
|
def honeypot_filled_in?
|
@@ -1,15 +1,37 @@
|
|
1
1
|
PointlessFeedback.setup do |config|
|
2
2
|
# ==> Feedback Configuration
|
3
3
|
# Configure the topics for the user to choose from on the feedback form
|
4
|
-
# config.message_topics = ['Error on page', 'Other']
|
4
|
+
# config.message_topics = ['Error on page', 'Feature Request', 'Praise', 'Other']
|
5
5
|
|
6
6
|
# ==> Email Configuration
|
7
7
|
# Configure feedback email properties (disabled by default)
|
8
8
|
# Variables needed for emailing feedback
|
9
|
-
# config.email_feedback
|
10
|
-
# config.send_from_submitter
|
11
|
-
# config.from_email
|
12
|
-
# config.to_emails
|
9
|
+
# config.email_feedback = false
|
10
|
+
# config.send_from_submitter = false
|
11
|
+
# config.from_email = 'feedback@pointlesscorp.com'
|
12
|
+
# config.to_emails = ['first@example.com', 'second@example.com']
|
13
|
+
|
14
|
+
# ==> Google reCAPTCHA Configuration
|
15
|
+
# If you'd like to enable Google reCAPTCHA,
|
16
|
+
# 1. Register your site at: https://www.google.com/recaptcha/admin
|
17
|
+
# 2. !! Ensure you opt for reCAPTCHA v2. Support for v3 is not here yet.
|
18
|
+
# 3. Grab the site and secret key and paste them here.
|
19
|
+
#
|
13
20
|
# config.google_captcha_site_key = nil
|
14
21
|
# config.google_captcha_secret_key = nil
|
22
|
+
|
23
|
+
# ==> Airtable Configuration
|
24
|
+
# If you'd like to export feedback submissions to an Airtable database,
|
25
|
+
# 1. Create an Airtable database with the following columns:
|
26
|
+
# - Name
|
27
|
+
# - Email
|
28
|
+
# - Topic
|
29
|
+
# - Description
|
30
|
+
# 2. Generate an API Key: https://airtable.com/account
|
31
|
+
# 3. Find your app key and table name: https://airtable.com/api
|
32
|
+
# 4. Fill in all these configs
|
33
|
+
#
|
34
|
+
# config.airtable_api_key = "key--------------"
|
35
|
+
# config.airtable_app_key = "app--------------"
|
36
|
+
# config.airtable_table_name = "Feedback Tracker"
|
15
37
|
end
|
data/lib/pointless_feedback.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require "pointless_feedback/engine"
|
2
2
|
require "pointless_feedback/captcha"
|
3
3
|
require "typhoeus"
|
4
|
+
require "jquery-rails"
|
5
|
+
require "airrecord"
|
4
6
|
|
5
7
|
module PointlessFeedback
|
6
8
|
module Controllers
|
@@ -41,6 +43,15 @@ module PointlessFeedback
|
|
41
43
|
mattr_accessor :google_captcha_secret_key
|
42
44
|
@@google_captcha_secret_key = nil
|
43
45
|
|
46
|
+
mattr_accessor :airtable_api_key
|
47
|
+
@@airtable_api_key = nil
|
48
|
+
|
49
|
+
mattr_accessor :airtable_app_key
|
50
|
+
@@airtable_app_key = nil
|
51
|
+
|
52
|
+
mattr_accessor :airtable_table_name
|
53
|
+
@@airtable_table_name = nil
|
54
|
+
|
44
55
|
# Default way to setup PointlessFeedback. Run rails generate
|
45
56
|
# pointless_feedback_install to create a fresh initializer with all
|
46
57
|
# configuration values.
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pointless_feedback
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zachary Porter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -44,6 +44,34 @@ dependencies:
|
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 0.7.3
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: jquery-rails
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '4.0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '4.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: airrecord
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.0'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.0'
|
47
75
|
- !ruby/object:Gem::Dependency
|
48
76
|
name: sqlite3
|
49
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,6 +200,7 @@ files:
|
|
172
200
|
- test/dummy/config/locales/en.yml
|
173
201
|
- test/dummy/config/routes.rb
|
174
202
|
- test/dummy/db/schema.rb
|
203
|
+
- test/dummy/log/test.log
|
175
204
|
- test/dummy/public/404.html
|
176
205
|
- test/dummy/public/422.html
|
177
206
|
- test/dummy/public/500.html
|
@@ -209,52 +238,53 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
238
|
version: '0'
|
210
239
|
requirements: []
|
211
240
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.
|
241
|
+
rubygems_version: 2.7.6
|
213
242
|
signing_key:
|
214
243
|
specification_version: 4
|
215
244
|
summary: Simple Rails Engine to allow users to submit feedback
|
216
245
|
test_files:
|
217
|
-
- test/
|
218
|
-
- test/
|
246
|
+
- test/unit/pointless_feedback/captcha_test.rb
|
247
|
+
- test/unit/pointless_feedback/message_test.rb
|
248
|
+
- test/unit/helpers/pointless_feedback/application_helper_test.rb
|
219
249
|
- test/dummy/app/controllers/application_controller.rb
|
220
250
|
- test/dummy/app/controllers/home_controller.rb
|
221
|
-
- test/dummy/app/helpers/application_helper.rb
|
222
251
|
- test/dummy/app/views/home/index.html.erb
|
223
252
|
- test/dummy/app/views/layouts/application.html.erb
|
224
|
-
- test/dummy/
|
225
|
-
- test/dummy/
|
226
|
-
- test/dummy/
|
227
|
-
- test/dummy/config/
|
228
|
-
- test/dummy/config/
|
253
|
+
- test/dummy/app/assets/javascripts/application.js
|
254
|
+
- test/dummy/app/assets/stylesheets/application.css
|
255
|
+
- test/dummy/app/helpers/application_helper.rb
|
256
|
+
- test/dummy/config/routes.rb
|
257
|
+
- test/dummy/config/locales/en.yml
|
229
258
|
- test/dummy/config/environments/production.rb
|
259
|
+
- test/dummy/config/environments/development.rb
|
230
260
|
- test/dummy/config/environments/test.rb
|
261
|
+
- test/dummy/config/environment.rb
|
262
|
+
- test/dummy/config/application.rb
|
263
|
+
- test/dummy/config/database.yml
|
264
|
+
- test/dummy/config/boot.rb
|
231
265
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
232
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
233
|
-
- test/dummy/config/initializers/inflections.rb
|
234
266
|
- test/dummy/config/initializers/mime_types.rb
|
235
|
-
- test/dummy/config/initializers/
|
267
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
236
268
|
- test/dummy/config/initializers/session_store.rb
|
237
269
|
- test/dummy/config/initializers/wrap_parameters.rb
|
238
|
-
- test/dummy/config/
|
239
|
-
- test/dummy/config/
|
270
|
+
- test/dummy/config/initializers/secret_token.rb
|
271
|
+
- test/dummy/config/initializers/inflections.rb
|
240
272
|
- test/dummy/config.ru
|
241
|
-
- test/dummy/
|
242
|
-
- test/dummy/
|
273
|
+
- test/dummy/script/rails
|
274
|
+
- test/dummy/Rakefile
|
275
|
+
- test/dummy/public/favicon.ico
|
243
276
|
- test/dummy/public/422.html
|
244
277
|
- test/dummy/public/500.html
|
245
|
-
- test/dummy/public/
|
246
|
-
- test/dummy/
|
278
|
+
- test/dummy/public/404.html
|
279
|
+
- test/dummy/db/schema.rb
|
280
|
+
- test/dummy/log/test.log
|
247
281
|
- test/dummy/README.rdoc
|
248
|
-
- test/dummy/script/rails
|
249
|
-
- test/factories/messages.rb
|
250
|
-
- test/functional/pointless_feedback/feedback_mailer_test.rb
|
251
|
-
- test/functional/pointless_feedback/messages_controller_test.rb
|
252
|
-
- test/generators/install_generator_test.rb
|
253
|
-
- test/generators/views_generator_test.rb
|
254
282
|
- test/integration/pointless_feedback/feedback_submission_test.rb
|
255
283
|
- test/integration/pointless_feedback/main_app_root_url_test.rb
|
256
284
|
- test/pointless_feedback_test.rb
|
285
|
+
- test/factories/messages.rb
|
257
286
|
- test/test_helper.rb
|
258
|
-
- test/
|
259
|
-
- test/
|
260
|
-
- test/
|
287
|
+
- test/generators/install_generator_test.rb
|
288
|
+
- test/generators/views_generator_test.rb
|
289
|
+
- test/functional/pointless_feedback/messages_controller_test.rb
|
290
|
+
- test/functional/pointless_feedback/feedback_mailer_test.rb
|