bootstrap_form_legacy 4.0.1.dev
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.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.travis.yml +29 -0
- data/CHANGELOG.md +207 -0
- data/CONTRIBUTING.md +57 -0
- data/Dangerfile +54 -0
- data/Gemfile +21 -0
- data/LICENSE.txt +20 -0
- data/README.md +647 -0
- data/Rakefile +27 -0
- data/app/assets/stylesheets/rails_bootstrap_forms.css +10 -0
- data/bootstrap_form.gemspec +26 -0
- data/demo/README.md +17 -0
- data/demo/Rakefile +6 -0
- data/demo/app/controllers/application_controller.rb +2 -0
- data/demo/app/controllers/bootstrap_controller.rb +16 -0
- data/demo/app/helpers/bootstrap_helper.rb +23 -0
- data/demo/app/models/address.rb +3 -0
- data/demo/app/models/application_record.rb +3 -0
- data/demo/app/models/faux_user.rb +9 -0
- data/demo/app/models/super_user.rb +2 -0
- data/demo/app/models/user.rb +9 -0
- data/demo/app/views/bootstrap/form.html.erb +53 -0
- data/demo/app/views/layouts/application.html.erb +65 -0
- data/demo/bin/bundle +3 -0
- data/demo/bin/rails +4 -0
- data/demo/bin/rake +4 -0
- data/demo/bin/setup +36 -0
- data/demo/bin/update +31 -0
- data/demo/bin/yarn +11 -0
- data/demo/config.ru +5 -0
- data/demo/config/application.rb +24 -0
- data/demo/config/boot.rb +5 -0
- data/demo/config/database.yml +21 -0
- data/demo/config/environment.rb +5 -0
- data/demo/config/environments/development.rb +60 -0
- data/demo/config/environments/test.rb +48 -0
- data/demo/config/initializers/application_controller_renderer.rb +8 -0
- data/demo/config/initializers/assets.rb +14 -0
- data/demo/config/initializers/backtrace_silencers.rb +7 -0
- data/demo/config/initializers/cookies_serializer.rb +5 -0
- data/demo/config/initializers/filter_parameter_logging.rb +4 -0
- data/demo/config/initializers/inflections.rb +16 -0
- data/demo/config/initializers/mime_types.rb +4 -0
- data/demo/config/initializers/wrap_parameters.rb +14 -0
- data/demo/config/locales/en.yml +33 -0
- data/demo/config/puma.rb +56 -0
- data/demo/config/routes.rb +5 -0
- data/demo/config/spring.rb +6 -0
- data/demo/config/storage.yml +35 -0
- data/demo/db/schema.rb +24 -0
- data/demo/log/.keep +0 -0
- data/demo/package.json +5 -0
- data/demo/public/favicon.ico +0 -0
- data/lib/bootstrap_form.rb +13 -0
- data/lib/bootstrap_form/aliasing.rb +35 -0
- data/lib/bootstrap_form/form_builder.rb +564 -0
- data/lib/bootstrap_form/helper.rb +59 -0
- data/lib/bootstrap_form/helpers/bootstrap.rb +99 -0
- data/lib/bootstrap_form/version.rb +3 -0
- metadata +120 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
module BootstrapForm
|
2
|
+
module Helper
|
3
|
+
|
4
|
+
def bootstrap_form_for(object, options = {}, &block)
|
5
|
+
options.reverse_merge!({builder: BootstrapForm::FormBuilder})
|
6
|
+
|
7
|
+
options = process_options(options)
|
8
|
+
|
9
|
+
temporarily_disable_field_error_proc do
|
10
|
+
form_for(object, options, &block)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def bootstrap_form_tag(options = {}, &block)
|
15
|
+
bootstrap_form_for(options[:as].to_s, options, &block)
|
16
|
+
end
|
17
|
+
|
18
|
+
def bootstrap_form_with(options = {}, &block)
|
19
|
+
options.reverse_merge!(builder: BootstrapForm::FormBuilder)
|
20
|
+
|
21
|
+
options = process_options(options)
|
22
|
+
|
23
|
+
temporarily_disable_field_error_proc do
|
24
|
+
form_with(options, &block)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def bootstrap_fields_for(record_name, record_object = nil, options = {}, &block)
|
29
|
+
options.reverse_merge!(builder: BootstrapForm::FormBuilder)
|
30
|
+
|
31
|
+
temporarily_disable_field_error_proc do
|
32
|
+
fields_for(record_name, record_object, options, &block)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def process_options(options)
|
39
|
+
options[:html] ||= {}
|
40
|
+
options[:html][:role] ||= 'form'
|
41
|
+
|
42
|
+
if options[:layout] == :inline
|
43
|
+
options[:html][:class] = [options[:html][:class], 'form-inline'].compact.join(' ')
|
44
|
+
end
|
45
|
+
|
46
|
+
options
|
47
|
+
end
|
48
|
+
|
49
|
+
public
|
50
|
+
|
51
|
+
def temporarily_disable_field_error_proc
|
52
|
+
original_proc = ActionView::Base.field_error_proc
|
53
|
+
ActionView::Base.field_error_proc = proc { |input, instance| input }
|
54
|
+
yield
|
55
|
+
ensure
|
56
|
+
ActionView::Base.field_error_proc = original_proc
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module BootstrapForm
|
2
|
+
module Helpers
|
3
|
+
module Bootstrap
|
4
|
+
def submit(name = nil, options = {})
|
5
|
+
options.reverse_merge! class: 'btn btn-secondary'
|
6
|
+
super(name, options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def primary(name = nil, options = {})
|
10
|
+
options.reverse_merge! class: 'btn btn-primary'
|
11
|
+
submit(name, options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def alert_message(title, options = {})
|
15
|
+
css = options[:class] || 'alert alert-danger'
|
16
|
+
|
17
|
+
if object.respond_to?(:errors) && object.errors.full_messages.any?
|
18
|
+
content_tag :div, class: css do
|
19
|
+
concat content_tag :p, title
|
20
|
+
concat error_summary unless options[:error_summary] == false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def error_summary
|
26
|
+
content_tag :ul, class: 'rails-bootstrap-forms-error-summary' do
|
27
|
+
object.errors.full_messages.each do |error|
|
28
|
+
concat content_tag(:li, error)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def errors_on(name, options = {})
|
34
|
+
if has_error?(name)
|
35
|
+
hide_attribute_name = options[:hide_attribute_name] || false
|
36
|
+
|
37
|
+
content_tag :div, class: "alert alert-danger" do
|
38
|
+
if hide_attribute_name
|
39
|
+
object.errors[name].join(", ")
|
40
|
+
else
|
41
|
+
object.errors.full_messages_for(name).join(", ")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def static_control(*args)
|
48
|
+
options = args.extract_options!
|
49
|
+
name = args.first
|
50
|
+
|
51
|
+
static_options = options.merge({
|
52
|
+
readonly: true,
|
53
|
+
control_class: [options[:control_class], static_class].compact.join(" ")
|
54
|
+
})
|
55
|
+
|
56
|
+
static_options[:value] = object.send(name) if static_options[:value].nil?
|
57
|
+
|
58
|
+
text_field_with_bootstrap(name, static_options)
|
59
|
+
end
|
60
|
+
|
61
|
+
def custom_control(*args, &block)
|
62
|
+
options = args.extract_options!
|
63
|
+
name = args.first
|
64
|
+
|
65
|
+
form_group_builder(name, options, &block)
|
66
|
+
end
|
67
|
+
|
68
|
+
def prepend_and_append_input(name, options, &block)
|
69
|
+
options = options.extract!(:prepend, :append, :input_group_class)
|
70
|
+
input_group_class = ["input-group", options[:input_group_class]].compact.join(' ')
|
71
|
+
|
72
|
+
input = capture(&block) || "".html_safe
|
73
|
+
|
74
|
+
input = content_tag(:div, input_group_content(options[:prepend]), class: 'input-group-prepend') + input if options[:prepend]
|
75
|
+
input << content_tag(:div, input_group_content(options[:append]), class: 'input-group-append') if options[:append]
|
76
|
+
input << generate_error(name)
|
77
|
+
input = content_tag(:div, input, class: input_group_class) unless options.empty?
|
78
|
+
input
|
79
|
+
end
|
80
|
+
|
81
|
+
# Some helpers don't currently accept prepend and append. However, it's not
|
82
|
+
# clear if that's corrent. In the meantime, strip to options before calling
|
83
|
+
# methods that don't accept prepend and append.
|
84
|
+
def prevent_prepend_and_append!(options)
|
85
|
+
options.delete(:append)
|
86
|
+
options.delete(:prepend)
|
87
|
+
end
|
88
|
+
|
89
|
+
def input_group_content(content)
|
90
|
+
return content if content.match(/btn/)
|
91
|
+
content_tag(:span, content, class: 'input-group-text')
|
92
|
+
end
|
93
|
+
|
94
|
+
def static_class
|
95
|
+
"form-control-plaintext"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
metadata
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bootstrap_form_legacy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 4.0.1.dev
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephen Potenza
|
8
|
+
- Carlos Lopes
|
9
|
+
autorequire:
|
10
|
+
bindir: exe
|
11
|
+
cert_chain: []
|
12
|
+
date: 2018-04-18 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '4.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '4.0'
|
28
|
+
description: bootstrap_form is a rails form builder that makes it super easy to create
|
29
|
+
beautiful-looking forms using Bootstrap 4
|
30
|
+
email:
|
31
|
+
- potenza@gmail.com
|
32
|
+
- carlos.el.lopes@gmail.com
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- ".gitignore"
|
38
|
+
- ".travis.yml"
|
39
|
+
- CHANGELOG.md
|
40
|
+
- CONTRIBUTING.md
|
41
|
+
- Dangerfile
|
42
|
+
- Gemfile
|
43
|
+
- LICENSE.txt
|
44
|
+
- README.md
|
45
|
+
- Rakefile
|
46
|
+
- app/assets/stylesheets/rails_bootstrap_forms.css
|
47
|
+
- bootstrap_form.gemspec
|
48
|
+
- demo/README.md
|
49
|
+
- demo/Rakefile
|
50
|
+
- demo/app/controllers/application_controller.rb
|
51
|
+
- demo/app/controllers/bootstrap_controller.rb
|
52
|
+
- demo/app/helpers/bootstrap_helper.rb
|
53
|
+
- demo/app/models/address.rb
|
54
|
+
- demo/app/models/application_record.rb
|
55
|
+
- demo/app/models/faux_user.rb
|
56
|
+
- demo/app/models/super_user.rb
|
57
|
+
- demo/app/models/user.rb
|
58
|
+
- demo/app/views/bootstrap/form.html.erb
|
59
|
+
- demo/app/views/layouts/application.html.erb
|
60
|
+
- demo/bin/bundle
|
61
|
+
- demo/bin/rails
|
62
|
+
- demo/bin/rake
|
63
|
+
- demo/bin/setup
|
64
|
+
- demo/bin/update
|
65
|
+
- demo/bin/yarn
|
66
|
+
- demo/config.ru
|
67
|
+
- demo/config/application.rb
|
68
|
+
- demo/config/boot.rb
|
69
|
+
- demo/config/database.yml
|
70
|
+
- demo/config/environment.rb
|
71
|
+
- demo/config/environments/development.rb
|
72
|
+
- demo/config/environments/test.rb
|
73
|
+
- demo/config/initializers/application_controller_renderer.rb
|
74
|
+
- demo/config/initializers/assets.rb
|
75
|
+
- demo/config/initializers/backtrace_silencers.rb
|
76
|
+
- demo/config/initializers/cookies_serializer.rb
|
77
|
+
- demo/config/initializers/filter_parameter_logging.rb
|
78
|
+
- demo/config/initializers/inflections.rb
|
79
|
+
- demo/config/initializers/mime_types.rb
|
80
|
+
- demo/config/initializers/wrap_parameters.rb
|
81
|
+
- demo/config/locales/en.yml
|
82
|
+
- demo/config/puma.rb
|
83
|
+
- demo/config/routes.rb
|
84
|
+
- demo/config/spring.rb
|
85
|
+
- demo/config/storage.yml
|
86
|
+
- demo/db/schema.rb
|
87
|
+
- demo/log/.keep
|
88
|
+
- demo/package.json
|
89
|
+
- demo/public/favicon.ico
|
90
|
+
- lib/bootstrap_form.rb
|
91
|
+
- lib/bootstrap_form/aliasing.rb
|
92
|
+
- lib/bootstrap_form/form_builder.rb
|
93
|
+
- lib/bootstrap_form/helper.rb
|
94
|
+
- lib/bootstrap_form/helpers/bootstrap.rb
|
95
|
+
- lib/bootstrap_form/version.rb
|
96
|
+
homepage: https://github.com/bootstrap-ruby/bootstrap_form
|
97
|
+
licenses:
|
98
|
+
- MIT
|
99
|
+
metadata: {}
|
100
|
+
post_install_message:
|
101
|
+
rdoc_options: []
|
102
|
+
require_paths:
|
103
|
+
- lib
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 1.3.1
|
114
|
+
requirements: []
|
115
|
+
rubyforge_project:
|
116
|
+
rubygems_version: 2.6.14
|
117
|
+
signing_key:
|
118
|
+
specification_version: 4
|
119
|
+
summary: Rails form builder that makes it easy to style forms using Bootstrap 4
|
120
|
+
test_files: []
|