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.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.travis.yml +29 -0
  4. data/CHANGELOG.md +207 -0
  5. data/CONTRIBUTING.md +57 -0
  6. data/Dangerfile +54 -0
  7. data/Gemfile +21 -0
  8. data/LICENSE.txt +20 -0
  9. data/README.md +647 -0
  10. data/Rakefile +27 -0
  11. data/app/assets/stylesheets/rails_bootstrap_forms.css +10 -0
  12. data/bootstrap_form.gemspec +26 -0
  13. data/demo/README.md +17 -0
  14. data/demo/Rakefile +6 -0
  15. data/demo/app/controllers/application_controller.rb +2 -0
  16. data/demo/app/controllers/bootstrap_controller.rb +16 -0
  17. data/demo/app/helpers/bootstrap_helper.rb +23 -0
  18. data/demo/app/models/address.rb +3 -0
  19. data/demo/app/models/application_record.rb +3 -0
  20. data/demo/app/models/faux_user.rb +9 -0
  21. data/demo/app/models/super_user.rb +2 -0
  22. data/demo/app/models/user.rb +9 -0
  23. data/demo/app/views/bootstrap/form.html.erb +53 -0
  24. data/demo/app/views/layouts/application.html.erb +65 -0
  25. data/demo/bin/bundle +3 -0
  26. data/demo/bin/rails +4 -0
  27. data/demo/bin/rake +4 -0
  28. data/demo/bin/setup +36 -0
  29. data/demo/bin/update +31 -0
  30. data/demo/bin/yarn +11 -0
  31. data/demo/config.ru +5 -0
  32. data/demo/config/application.rb +24 -0
  33. data/demo/config/boot.rb +5 -0
  34. data/demo/config/database.yml +21 -0
  35. data/demo/config/environment.rb +5 -0
  36. data/demo/config/environments/development.rb +60 -0
  37. data/demo/config/environments/test.rb +48 -0
  38. data/demo/config/initializers/application_controller_renderer.rb +8 -0
  39. data/demo/config/initializers/assets.rb +14 -0
  40. data/demo/config/initializers/backtrace_silencers.rb +7 -0
  41. data/demo/config/initializers/cookies_serializer.rb +5 -0
  42. data/demo/config/initializers/filter_parameter_logging.rb +4 -0
  43. data/demo/config/initializers/inflections.rb +16 -0
  44. data/demo/config/initializers/mime_types.rb +4 -0
  45. data/demo/config/initializers/wrap_parameters.rb +14 -0
  46. data/demo/config/locales/en.yml +33 -0
  47. data/demo/config/puma.rb +56 -0
  48. data/demo/config/routes.rb +5 -0
  49. data/demo/config/spring.rb +6 -0
  50. data/demo/config/storage.yml +35 -0
  51. data/demo/db/schema.rb +24 -0
  52. data/demo/log/.keep +0 -0
  53. data/demo/package.json +5 -0
  54. data/demo/public/favicon.ico +0 -0
  55. data/lib/bootstrap_form.rb +13 -0
  56. data/lib/bootstrap_form/aliasing.rb +35 -0
  57. data/lib/bootstrap_form/form_builder.rb +564 -0
  58. data/lib/bootstrap_form/helper.rb +59 -0
  59. data/lib/bootstrap_form/helpers/bootstrap.rb +99 -0
  60. data/lib/bootstrap_form/version.rb +3 -0
  61. 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
@@ -0,0 +1,3 @@
1
+ module BootstrapForm
2
+ VERSION = "4.0.1.dev".freeze
3
+ 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: []