bootstrap_feedbacker 0.4.3 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +40 -44
- data/Rakefile +5 -34
- data/app/assets/javascripts/controllers/bootstrap_feedbacker/remarks_controller.js +10 -0
- data/app/controllers/bootstrap_feedbacker/application_controller.rb +2 -0
- data/app/controllers/bootstrap_feedbacker/remarks_controller.rb +17 -9
- data/app/helpers/bootstrap_feedbacker/modals_helper.rb +11 -0
- data/app/mailers/bootstrap_feedbacker/feedback_mailer.rb +2 -0
- data/app/models/bootstrap_feedbacker/remark.rb +2 -0
- data/app/views/bootstrap_feedbacker/remarks/_close_button.html.erb +1 -0
- data/app/views/bootstrap_feedbacker/remarks/_error.erb +6 -0
- data/app/views/bootstrap_feedbacker/remarks/_form.html.erb +5 -10
- data/app/views/bootstrap_feedbacker/remarks/_new.html.erb +17 -0
- data/app/views/bootstrap_feedbacker/remarks/_thank_you.html.erb +6 -0
- data/config/importmap.rb +1 -0
- data/config/locales/bootstrap_feedbacker.en.yml +9 -1
- data/config/routes.rb +3 -1
- data/lib/bootstrap_feedbacker/engine.rb +18 -0
- data/lib/bootstrap_feedbacker/settings.rb +9 -5
- data/lib/bootstrap_feedbacker/version.rb +3 -1
- data/lib/bootstrap_feedbacker.rb +2 -3
- metadata +20 -106
- data/app/assets/javascripts/bootstrap_feedbacker/application.js +0 -13
- data/app/assets/javascripts/bootstrap_feedbacker/remarks.js +0 -2
- data/app/assets/stylesheets/bootstrap_feedbacker/application.css +0 -15
- data/app/assets/stylesheets/bootstrap_feedbacker/remarks.css +0 -4
- data/app/assets/stylesheets/scaffold.css +0 -56
- data/app/helpers/bootstrap_feedbacker/application_helper.rb +0 -4
- data/app/helpers/bootstrap_feedbacker/remarks_helper.rb +0 -4
- data/app/views/bootstrap_feedbacker/remarks/_button_with_modal.html.erb +0 -6
- data/app/views/bootstrap_feedbacker/remarks/_modal.html.erb +0 -14
- data/app/views/bootstrap_feedbacker/remarks/create.js.erb +0 -11
- data/app/views/layouts/bootstrap_feedbacker/application.html.erb +0 -14
- data/lib/tasks/bootstrap_feedbacker_tasks.rake +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0763e8f5de9a484cef61e29ff04d6c514feb7638a3d8be70c0f19b5942305bd
|
4
|
+
data.tar.gz: 3028c1838f0d5431b183521b3d88930f9ba486a79f76a5d24e7f02d9c95bdcf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a8d440c55358f40da87e6c0e5d91083da8a60029dae50ff36755af2d8d18412d671c39ae7741febac7539404dd34235f1a153ddae1bb48a5a14d6366e013031
|
7
|
+
data.tar.gz: 309c785527e8d1cdeb72305affbb37fc4194d9b5988d256af185dec8535934a380f3152bfb1ee5d4b34120193e03bd3888f353d77aa88b3c52280a83d3f4a20f
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,65 +1,61 @@
|
|
1
|
-
[![Gem Version](https://badge.fury.io/rb/
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/bootstrap_feedbacker.png)](http://badge.fury.io/rb/bootstrap_feedbacker)
|
2
2
|
[![Code Climate](https://codeclimate.com/github/wwidea/bootstrap_feedbacker.png)](https://codeclimate.com/github/wwidea/bootstrap_feedbacker)
|
3
3
|
|
4
|
+
# BootstrapFeedbacker
|
5
|
+
BootstrapFeedbacker provides a modal form to collect user feedback and sends it in an email including the current page URL to the configured email address.
|
4
6
|
|
5
|
-
|
6
|
-
BoostrapFeedbacker provides a tab for users to contact developers from within the application
|
7
|
+
## Requirements
|
7
8
|
|
8
|
-
|
9
|
+
* Rails 6.0 or higher with Import Maps, Turbo Frames, and Stimulus
|
10
|
+
* Bootstrap version 4
|
11
|
+
* **User** model with an **email** attribute
|
12
|
+
* **current_user** method defined in **ApplicationController**
|
9
13
|
|
10
|
-
|
14
|
+
## Installation
|
11
15
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
That you have a User class(can be configured to use a different class name) with email and name methods (name can be configured to something else)
|
18
|
-
and probably some other things that we've failed to mention.
|
19
|
-
|
20
|
-
Installation
|
21
|
-
|
22
|
-
Add the following to your Gemfile.
|
23
|
-
|
24
|
-
```gem 'bootstrap_feedbacker'```
|
16
|
+
1. Add the `bootstrap_feedbacker` gem to your Gemfile:
|
17
|
+
```ruby
|
18
|
+
gem "bootstrap_feedbacker"
|
19
|
+
```
|
25
20
|
|
26
|
-
Run bundle install
|
21
|
+
2. Run `bundle install`.
|
27
22
|
|
28
|
-
|
23
|
+
3. Run `rails bootstrap_feedbacker:install:migrations`.
|
29
24
|
|
30
|
-
|
31
|
-
|
32
|
-
OR: If you only want the modal, and want to use your own button, use:
|
25
|
+
4. Run `rails db:migrate` to add the **bootstrap_feedbacker_remarks** table to your schema.
|
33
26
|
|
34
|
-
|
27
|
+
5. Mount the engine in your **routes.rb** file:
|
28
|
+
```ruby
|
29
|
+
mount BootstrapFeedbacker::Engine, at: '/bootstrap_feedbacker'
|
30
|
+
```
|
35
31
|
|
36
|
-
|
37
|
-
|
38
|
-
|
32
|
+
6. Add the bootstrap feedbacker link and modal container to a view file:
|
33
|
+
```erb
|
34
|
+
<%= bootstrap_feedbacker_link %>
|
35
|
+
<%= bootstrap_feedbacker_modal %>
|
36
|
+
```
|
39
37
|
|
38
|
+
## Configure
|
40
39
|
|
41
|
-
|
40
|
+
Create `config/initializersbootstrap_feedbacker.rb` and set your email address:
|
42
41
|
|
43
|
-
|
42
|
+
```ruby
|
43
|
+
BootstrapFeedbacker::SETTINGS.email_to = 'support@yourdomain.com'
|
44
|
+
```
|
44
45
|
|
45
|
-
|
46
|
+
Or set your email address and override any of these default settings:
|
46
47
|
|
47
|
-
|
48
|
-
```
|
48
|
+
```ruby
|
49
49
|
BootstrapFeedbacker::SETTINGS.update do |settings|
|
50
|
-
settings.email_to
|
51
|
-
settings.
|
52
|
-
settings.
|
50
|
+
settings.email_to = 'support@yourdomain.com'
|
51
|
+
settings.email_prefix = '[FEEDBACKER]' # default
|
52
|
+
settings.modal_content_id = 'bootstrap_feedbacker_remark_modal_content' # default
|
53
|
+
settings.modal_id = 'bootstrap_feedbacker_remark_modal' # default
|
54
|
+
settings.user_class = 'User' # default
|
55
|
+
settings.user_name_method = :name # default
|
53
56
|
end
|
54
57
|
```
|
55
58
|
|
56
|
-
|
57
|
-
```
|
58
|
-
mount BootstrapFeedbacker::Engine => "/bootstrap_feedbacker"
|
59
|
-
```
|
60
|
-
|
61
|
-
Contributions
|
62
|
-
|
63
|
-
If have improvements to contribute to this gem, please feel free to fork, commit with tests (if applicable), and then send a pull request. Thank You!
|
59
|
+
## License
|
64
60
|
|
65
|
-
|
61
|
+
Bootstrap Feedbacker is released under the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
@@ -1,37 +1,8 @@
|
|
1
|
-
|
2
|
-
require 'bundler/setup'
|
3
|
-
rescue LoadError
|
4
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
-
end
|
1
|
+
require "bundler/setup"
|
6
2
|
|
7
|
-
|
3
|
+
APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
|
4
|
+
load "rails/tasks/engine.rake"
|
8
5
|
|
9
|
-
|
10
|
-
rdoc.rdoc_dir = 'rdoc'
|
11
|
-
rdoc.title = 'BootstrapFeedbacker'
|
12
|
-
rdoc.options << '--line-numbers'
|
13
|
-
rdoc.rdoc_files.include('README.rdoc')
|
14
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
-
end
|
6
|
+
load "rails/tasks/statistics.rake"
|
16
7
|
|
17
|
-
|
18
|
-
load 'rails/tasks/engine.rake'
|
19
|
-
|
20
|
-
|
21
|
-
load 'rails/tasks/statistics.rake'
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
Bundler::GemHelper.install_tasks
|
26
|
-
|
27
|
-
require 'rake/testtask'
|
28
|
-
|
29
|
-
Rake::TestTask.new(:test) do |t|
|
30
|
-
t.libs << 'lib'
|
31
|
-
t.libs << 'test'
|
32
|
-
t.pattern = 'test/**/*_test.rb'
|
33
|
-
t.verbose = false
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
task default: :test
|
8
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Controller } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
// Connects to data-controller="bootstrap-feedbacker--remarks"
|
4
|
+
export default class extends Controller {
|
5
|
+
static targets = [ "modal" ]
|
6
|
+
|
7
|
+
modalTargetConnected(element) {
|
8
|
+
$(element).modal('show')
|
9
|
+
}
|
10
|
+
}
|
@@ -1,25 +1,33 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module BootstrapFeedbacker
|
4
4
|
class RemarksController < ApplicationController
|
5
|
+
def new
|
6
|
+
@remark = BootstrapFeedbacker::Remark.new
|
7
|
+
render_update(SETTINGS.modal_id, partial: 'new')
|
8
|
+
end
|
5
9
|
|
6
|
-
# POST /remarks
|
7
10
|
def create
|
8
|
-
@remark = Remark.new(remark_params
|
9
|
-
@remark.source_url = request.env['HTTP_REFERER'] || "no referrer"
|
11
|
+
@remark = Remark.new(remark_params)
|
10
12
|
if @remark.save
|
11
13
|
FeedbackMailer.feedback(@remark).deliver_now
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
render_update(SETTINGS.modal_content_id, partial: 'thank_you')
|
15
|
+
else
|
16
|
+
render_update(SETTINGS.modal_content_id, partial: 'error', status: :unprocessable_entity)
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
20
|
private
|
19
21
|
|
20
|
-
# Only allow a trusted parameter "white list" through.
|
21
22
|
def remark_params
|
22
|
-
params.require(:remark).permit(:content)
|
23
|
+
params.require(:remark).permit(:content).merge(
|
24
|
+
user_id: current_user.id,
|
25
|
+
source_url: request.env['HTTP_REFERER'] || 'no referrer'
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def render_update(dom_id, partial:, status: :ok)
|
30
|
+
render(turbo_stream: turbo_stream.update(dom_id, partial: partial), status:)
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module BootstrapFeedbacker
|
2
|
+
module ModalsHelper
|
3
|
+
def bootstrap_feedbacker_link(name: 'Feedback', **html_options)
|
4
|
+
link_to(name, bootstrap_feedbacker.new_remark_path, 'data-turbo-stream': true, **html_options)
|
5
|
+
end
|
6
|
+
|
7
|
+
def bootstrap_feedbacker_modal
|
8
|
+
tag.div(id: BootstrapFeedbacker::SETTINGS.modal_id)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<button type="button" class="btn btn-info" data-dismiss="modal">Close</button>
|
@@ -1,17 +1,12 @@
|
|
1
|
-
<%= form_for
|
1
|
+
<%= form_for(@remark) do |f| %>
|
2
2
|
<div class="modal-body">
|
3
3
|
<div class="mb-2">
|
4
|
-
<%= t(
|
4
|
+
<%= t('.greeting') %>
|
5
5
|
</div>
|
6
|
-
<%= f.text_area :content, class:
|
6
|
+
<%= f.text_area :content, class: "form-control" %>
|
7
7
|
</div>
|
8
8
|
<div class="modal-footer">
|
9
|
-
|
10
|
-
|
11
|
-
<button type="button" class="btn btn-info" data-dismiss="modal">Close</button>
|
12
|
-
</div>
|
13
|
-
<div id="feedback_thank_you_message" style="display:none" class="text-success">
|
14
|
-
Thank you for your feedback!
|
15
|
-
</div>
|
9
|
+
<%= f.submit('Submit Feedback', class: "btn btn-success") %>
|
10
|
+
<%= render('close_button') %>
|
16
11
|
</div>
|
17
12
|
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div data-controller="bootstrap-feedbacker--remarks">
|
2
|
+
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalFeedbackLabel" data-bootstrap-feedbacker--remarks-target="modal">
|
3
|
+
<div class="modal-dialog" role="document">
|
4
|
+
<div class="modal-content">
|
5
|
+
<div class="modal-header">
|
6
|
+
<h4 class="modal-title" id="modalFeedbackLabel"><%= t('.title') %></h4>
|
7
|
+
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
8
|
+
<span aria-hidden="true">×</span>
|
9
|
+
</button>
|
10
|
+
</div>
|
11
|
+
<%= tag.div id: BootstrapFeedbacker::SETTINGS.modal_content_id do %>
|
12
|
+
<%= render('form') %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
</div>
|
data/config/importmap.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pin_all_from File.expand_path("../app/assets/javascripts/controllers", __dir__), under: "controllers"
|
@@ -1,4 +1,12 @@
|
|
1
1
|
---
|
2
2
|
en:
|
3
3
|
bootstrap_feedbacker:
|
4
|
-
|
4
|
+
remarks:
|
5
|
+
error:
|
6
|
+
message: An error occured saving your feedback. Please try again.
|
7
|
+
form:
|
8
|
+
greeting: What's on your mind?
|
9
|
+
new:
|
10
|
+
title: Feedback
|
11
|
+
thank_you:
|
12
|
+
message: Thank you for your feedback!
|
data/config/routes.rb
CHANGED
@@ -1,5 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module BootstrapFeedbacker
|
2
4
|
class Engine < ::Rails::Engine
|
3
5
|
isolate_namespace BootstrapFeedbacker
|
6
|
+
|
7
|
+
config.to_prepare do
|
8
|
+
::ApplicationController.helper(ModalsHelper)
|
9
|
+
end
|
10
|
+
|
11
|
+
initializer "bootstrap_feedbacker.assets" do
|
12
|
+
if Rails.application.config.respond_to?(:assets)
|
13
|
+
Rails.application.config.assets.precompile += %w( controllers/bootstrap_feedbacker/remarks_controller.js )
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
initializer "bootstrap_feedbacker.importmap", before: "importmap" do |app|
|
18
|
+
if Rails.application.respond_to?(:importmap)
|
19
|
+
app.config.importmap.paths << Engine.root.join("config/importmap.rb")
|
20
|
+
end
|
21
|
+
end
|
4
22
|
end
|
5
23
|
end
|
@@ -1,18 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module BootstrapFeedbacker
|
2
4
|
class Settings
|
3
|
-
attr_accessor :email_to, :email_prefix, :user_name_method, :user_class
|
4
|
-
|
5
|
+
attr_accessor :email_to, :email_prefix, :modal_content_id, :modal_id, :user_name_method, :user_class
|
6
|
+
|
5
7
|
def initialize
|
6
8
|
self.email_to = ''
|
7
9
|
self.email_prefix = '[FEEDBACKER]'
|
8
|
-
self.
|
10
|
+
self.modal_content_id = 'bootstrap_feedbacker_remark_modal_content'
|
11
|
+
self.modal_id = 'bootstrap_feedbacker_remark_modal'
|
12
|
+
self.user_class = 'User'
|
9
13
|
self.user_name_method = :name
|
10
14
|
end
|
11
|
-
|
15
|
+
|
12
16
|
def update
|
13
17
|
yield self
|
14
18
|
end
|
15
19
|
end
|
16
|
-
|
20
|
+
|
17
21
|
SETTINGS = Settings.new
|
18
22
|
end
|
data/lib/bootstrap_feedbacker.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap_feedbacker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Baldwin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-02-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -17,100 +17,16 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 6.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
-
|
29
|
-
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '2.1'
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '2.1'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: jquery-rails
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - ">="
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 4.0.4
|
49
|
-
type: :runtime
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - ">="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 4.0.4
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: bootstrap
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 4.1.1
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 4.1.1
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: pry
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: sqlite3
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - "~>"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: 1.4.0
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - "~>"
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: 1.4.0
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: mini_racer
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: 0.2.0
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: 0.2.0
|
112
|
-
description: Feedbacker provides a modal window with a button on side of every page
|
113
|
-
on a site for users to send feedback to the site.
|
27
|
+
version: 6.0.0
|
28
|
+
description: Bootstrap Feedbacker opens a modal window for users to send application
|
29
|
+
feedback over email that includes the referring url.
|
114
30
|
email:
|
115
31
|
- baldwina@brightwayslearning.org
|
116
32
|
executables: []
|
@@ -120,23 +36,19 @@ files:
|
|
120
36
|
- MIT-LICENSE
|
121
37
|
- README.md
|
122
38
|
- Rakefile
|
123
|
-
- app/assets/javascripts/bootstrap_feedbacker/
|
124
|
-
- app/assets/javascripts/bootstrap_feedbacker/remarks.js
|
125
|
-
- app/assets/stylesheets/bootstrap_feedbacker/application.css
|
126
|
-
- app/assets/stylesheets/bootstrap_feedbacker/remarks.css
|
127
|
-
- app/assets/stylesheets/scaffold.css
|
39
|
+
- app/assets/javascripts/controllers/bootstrap_feedbacker/remarks_controller.js
|
128
40
|
- app/controllers/bootstrap_feedbacker/application_controller.rb
|
129
41
|
- app/controllers/bootstrap_feedbacker/remarks_controller.rb
|
130
|
-
- app/helpers/bootstrap_feedbacker/
|
131
|
-
- app/helpers/bootstrap_feedbacker/remarks_helper.rb
|
42
|
+
- app/helpers/bootstrap_feedbacker/modals_helper.rb
|
132
43
|
- app/mailers/bootstrap_feedbacker/feedback_mailer.rb
|
133
44
|
- app/models/bootstrap_feedbacker/remark.rb
|
134
45
|
- app/views/bootstrap_feedbacker/feedback_mailer/feedback.html.erb
|
135
|
-
- app/views/bootstrap_feedbacker/remarks/
|
46
|
+
- app/views/bootstrap_feedbacker/remarks/_close_button.html.erb
|
47
|
+
- app/views/bootstrap_feedbacker/remarks/_error.erb
|
136
48
|
- app/views/bootstrap_feedbacker/remarks/_form.html.erb
|
137
|
-
- app/views/bootstrap_feedbacker/remarks/
|
138
|
-
- app/views/bootstrap_feedbacker/remarks/
|
139
|
-
-
|
49
|
+
- app/views/bootstrap_feedbacker/remarks/_new.html.erb
|
50
|
+
- app/views/bootstrap_feedbacker/remarks/_thank_you.html.erb
|
51
|
+
- config/importmap.rb
|
140
52
|
- config/locales/bootstrap_feedbacker.en.yml
|
141
53
|
- config/routes.rb
|
142
54
|
- db/migrate/20150901232221_create_bootstrap_feedbacker_remarks.rb
|
@@ -145,11 +57,13 @@ files:
|
|
145
57
|
- lib/bootstrap_feedbacker/engine.rb
|
146
58
|
- lib/bootstrap_feedbacker/settings.rb
|
147
59
|
- lib/bootstrap_feedbacker/version.rb
|
148
|
-
- lib/tasks/bootstrap_feedbacker_tasks.rake
|
149
60
|
homepage: https://github.com/wwidea/bootstrap_feedbacker
|
150
61
|
licenses:
|
151
62
|
- MIT
|
152
|
-
metadata:
|
63
|
+
metadata:
|
64
|
+
homepage_uri: https://github.com/wwidea/bootstrap_feedbacker
|
65
|
+
source_code_uri: https://github.com/wwidea/bootstrap_feedbacker
|
66
|
+
rubygems_mfa_required: 'true'
|
153
67
|
post_install_message:
|
154
68
|
rdoc_options: []
|
155
69
|
require_paths:
|
@@ -158,15 +72,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
72
|
requirements:
|
159
73
|
- - ">="
|
160
74
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
75
|
+
version: 2.7.0
|
162
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
77
|
requirements:
|
164
78
|
- - ">="
|
165
79
|
- !ruby/object:Gem::Version
|
166
80
|
version: '0'
|
167
81
|
requirements: []
|
168
|
-
rubygems_version: 3.
|
82
|
+
rubygems_version: 3.4.5
|
169
83
|
signing_key:
|
170
84
|
specification_version: 4
|
171
|
-
summary:
|
85
|
+
summary: User feedback form in a Bootstrap modal.
|
172
86
|
test_files: []
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// compiled file.
|
9
|
-
//
|
10
|
-
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
-
// about supported directives.
|
12
|
-
//
|
13
|
-
//= require_tree .
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
-
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
-
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
-
* file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
@@ -1,56 +0,0 @@
|
|
1
|
-
body { background-color: #fff; color: #333; }
|
2
|
-
|
3
|
-
body, p, ol, ul, td {
|
4
|
-
font-family: verdana, arial, helvetica, sans-serif;
|
5
|
-
font-size: 13px;
|
6
|
-
line-height: 18px;
|
7
|
-
}
|
8
|
-
|
9
|
-
pre {
|
10
|
-
background-color: #eee;
|
11
|
-
padding: 10px;
|
12
|
-
font-size: 11px;
|
13
|
-
}
|
14
|
-
|
15
|
-
a { color: #000; }
|
16
|
-
a:visited { color: #666; }
|
17
|
-
a:hover { color: #fff; background-color:#000; }
|
18
|
-
|
19
|
-
div.field, div.actions {
|
20
|
-
margin-bottom: 10px;
|
21
|
-
}
|
22
|
-
|
23
|
-
#notice {
|
24
|
-
color: green;
|
25
|
-
}
|
26
|
-
|
27
|
-
.field_with_errors {
|
28
|
-
padding: 2px;
|
29
|
-
background-color: red;
|
30
|
-
display: table;
|
31
|
-
}
|
32
|
-
|
33
|
-
#error_explanation {
|
34
|
-
width: 450px;
|
35
|
-
border: 2px solid red;
|
36
|
-
padding: 7px;
|
37
|
-
padding-bottom: 0;
|
38
|
-
margin-bottom: 20px;
|
39
|
-
background-color: #f0f0f0;
|
40
|
-
}
|
41
|
-
|
42
|
-
#error_explanation h2 {
|
43
|
-
text-align: left;
|
44
|
-
font-weight: bold;
|
45
|
-
padding: 5px 5px 5px 15px;
|
46
|
-
font-size: 12px;
|
47
|
-
margin: -7px;
|
48
|
-
margin-bottom: 0px;
|
49
|
-
background-color: #c00;
|
50
|
-
color: #fff;
|
51
|
-
}
|
52
|
-
|
53
|
-
#error_explanation ul li {
|
54
|
-
font-size: 12px;
|
55
|
-
list-style: square;
|
56
|
-
}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<div class="modal fade" id="modalFeedbackForm" tabindex="-1" role="dialog" aria-labelledby="modalFeedbackLabel">
|
2
|
-
<div class="modal-dialog" role="document">
|
3
|
-
<div class="modal-content">
|
4
|
-
<div class="modal-header">
|
5
|
-
<h4 class="modal-title" id="modalFeedbackLabel">Feedback</h4>
|
6
|
-
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
7
|
-
<span aria-hidden="true">×</span>
|
8
|
-
</button>
|
9
|
-
</div>
|
10
|
-
<% @remark = BootstrapFeedbacker::Remark.new %>
|
11
|
-
<%= render partial: 'bootstrap_feedbacker/remarks/form' %>
|
12
|
-
</div>
|
13
|
-
</div>
|
14
|
-
</div>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
$('#feedback_submit_button').hide();
|
2
|
-
$('#feedback_thank_you_message').fadeIn('500')
|
3
|
-
setTimeout(function() {
|
4
|
-
$('#feedback_thank_you_message').fadeOut('500');
|
5
|
-
$('#modalFeedbackForm').modal("hide");
|
6
|
-
setTimeout(function(){
|
7
|
-
$('#feedback_submit_button').show();
|
8
|
-
$('#remark_content').val("");
|
9
|
-
},
|
10
|
-
1000);
|
11
|
-
}, 2000);
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>BootstrapFeedbacker</title>
|
5
|
-
<%= stylesheet_link_tag "bootstrap_feedbacker/application", media: "all" %>
|
6
|
-
<%= javascript_include_tag "bootstrap_feedbacker/application" %>
|
7
|
-
<%= csrf_meta_tags %>
|
8
|
-
</head>
|
9
|
-
<body>
|
10
|
-
|
11
|
-
<%= yield %>
|
12
|
-
|
13
|
-
</body>
|
14
|
-
</html>
|