From 1c003deeb0b0ba44ae2cd5b4b7b871ad9b4d62dc Mon Sep 17 00:00:00 2001 From: "Mark H. Wilkinson" Date: Tue, 6 Apr 2021 14:39:16 +0100 Subject: [PATCH] input_groups: add .has-validation, move feedback New .has-validation class was added so validation feedback can move inside input-group. This works ok for simple_form, but the plain HTML version with both .valid-feedback and .invalid-feedback divs loses the rounded end on the input group. See https://github.com/twbs/bootstrap/issues/25110 --- .../examples/input_groups/_bootstrap.html.erb | 24 +++++++++---------- config/initializers/simple_form_bootstrap.rb | 4 ++-- .../simple_form-bootstrap/input_group_test.rb | 6 ++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/views/examples/input_groups/_bootstrap.html.erb b/app/views/examples/input_groups/_bootstrap.html.erb index e819ef56..07eb1137 100644 --- a/app/views/examples/input_groups/_bootstrap.html.erb +++ b/app/views/examples/input_groups/_bootstrap.html.erb @@ -3,46 +3,46 @@
-
+
@ +
Name can't be blank
+
Looks good!
-
Name can't be blank
-
Looks good!
Text input example
-
+
example- @gmail.com +
Email can't be blank
+
Looks good!
-
Email can't be blank
-
Looks good!
We'll never share your email with anyone else.
-
+
🙊 +
Please provide a valid value.
+
Looks good!
-
Please provide a valid value.
-
Looks good!
Password input example
-
+
With textarea +
Please provide a valid value.
+
Looks good!
-
Please provide a valid value.
-
Looks good!
Textarea input example
diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb index 178fb7e5..52e4fca8 100644 --- a/config/initializers/simple_form_bootstrap.rb +++ b/config/initializers/simple_form_bootstrap.rb @@ -302,12 +302,12 @@ b.optional :min_max b.optional :readonly b.use :label, class: 'form-label' - b.wrapper :input_group_tag, tag: 'div', class: 'input-group' do |ba| + b.wrapper :input_group_tag, tag: 'div', class: 'input-group has-validation' do |ba| ba.optional :prepend ba.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid' ba.optional :append + ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' } end - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' } b.use :hint, wrap_with: { tag: 'div', class: 'form-text' } end diff --git a/test/simple_form-bootstrap/input_group_test.rb b/test/simple_form-bootstrap/input_group_test.rb index 005b42e3..9a33bf87 100644 --- a/test/simple_form-bootstrap/input_group_test.rb +++ b/test/simple_form-bootstrap/input_group_test.rb @@ -11,7 +11,7 @@ def test_input_group_prepend expected = <<-HTML
-
+
$
@@ -26,7 +26,7 @@ def test_input_group_append expected = <<-HTML
-
+
.00
@@ -41,7 +41,7 @@ def test_input_group_prepend_and_append expected = <<-HTML
-
+
$ .00