Skip to content

Commit aa3954e

Browse files
committed
Added tests for :horizontal_form wrapper and made it pass
1 parent 62a6d81 commit aa3954e

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

dist/simple-form.bootstrap4.esm.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,24 @@ ClientSideValidations.formBuilders['SimpleForm::FormBuilder'] = {
2020
wrappers: {
2121
"default": {
2222
add: function add(element, settings, message) {
23-
var wrapperElement = element.parent();
23+
var parentElement = element.parent();
24+
var wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'));
2425
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
2526

2627
if (!errorElement.length) {
2728
errorElement = $('<' + settings.error_tag + '>', {
2829
"class": 'invalid-feedback',
2930
text: message
3031
});
31-
wrapperElement.append(errorElement);
32+
parentElement.append(errorElement);
3233
}
3334

3435
wrapperElement.addClass(settings.wrapper_error_class);
3536
element.addClass('is-invalid');
3637
errorElement.text(message);
3738
},
3839
remove: function remove(element, settings) {
39-
var wrapperElement = element.parent();
40+
var wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'));
4041
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
4142
wrapperElement.removeClass(settings.wrapper_error_class);
4243
element.removeClass('is-invalid');

dist/simple-form.bootstrap4.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,24 @@
2626
wrappers: {
2727
"default": {
2828
add: function add(element, settings, message) {
29-
var wrapperElement = element.parent();
29+
var parentElement = element.parent();
30+
var wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'));
3031
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
3132

3233
if (!errorElement.length) {
3334
errorElement = $('<' + settings.error_tag + '>', {
3435
"class": 'invalid-feedback',
3536
text: message
3637
});
37-
wrapperElement.append(errorElement);
38+
parentElement.append(errorElement);
3839
}
3940

4041
wrapperElement.addClass(settings.wrapper_error_class);
4142
element.addClass('is-invalid');
4243
errorElement.text(message);
4344
},
4445
remove: function remove(element, settings) {
45-
var wrapperElement = element.parent();
46+
var wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'));
4647
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
4748
wrapperElement.removeClass(settings.wrapper_error_class);
4849
element.removeClass('is-invalid');

src/main.bootstrap4.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ ClientSideValidations.formBuilders['SimpleForm::FormBuilder'] = {
1515
wrappers: {
1616
default: {
1717
add (element, settings, message) {
18-
const wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/\ /g, '.'));
18+
const parentElement = element.parent()
19+
const wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'))
20+
1921
let errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback')
2022

2123
if (!errorElement.length) {
2224
errorElement = $('<' + settings.error_tag + '>', { class: 'invalid-feedback', text: message })
23-
wrapperElement.append(errorElement)
25+
parentElement.append(errorElement)
2426
}
2527

2628
wrapperElement.addClass(settings.wrapper_error_class)
@@ -29,7 +31,7 @@ ClientSideValidations.formBuilders['SimpleForm::FormBuilder'] = {
2931
},
3032

3133
remove (element, settings) {
32-
const wrapperElement = settings.wrapper_tag + "." + settings.wrapper_class.replace(/\ /g, ".")
34+
const wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'))
3335
const errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback')
3436

3537
wrapperElement.removeClass(settings.wrapper_error_class)

vendor/assets/javascripts/rails.validations.simple_form.bootstrap4.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,24 @@
2626
wrappers: {
2727
"default": {
2828
add: function add(element, settings, message) {
29-
var wrapperElement = element.parent();
29+
var parentElement = element.parent();
30+
var wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'));
3031
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
3132

3233
if (!errorElement.length) {
3334
errorElement = $('<' + settings.error_tag + '>', {
3435
"class": 'invalid-feedback',
3536
text: message
3637
});
37-
wrapperElement.append(errorElement);
38+
parentElement.append(errorElement);
3839
}
3940

4041
wrapperElement.addClass(settings.wrapper_error_class);
4142
element.addClass('is-invalid');
4243
errorElement.text(message);
4344
},
4445
remove: function remove(element, settings) {
45-
var wrapperElement = element.parent();
46+
var wrapperElement = element.closest(settings.wrapper_tag + '.' + settings.wrapper_class.replace(/ /g, '.'));
4647
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
4748
wrapperElement.removeClass(settings.wrapper_error_class);
4849
element.removeClass('is-invalid');

0 commit comments

Comments
 (0)