Skip to content

Commit 84595b3

Browse files
committed
feat(form) If css style is BS3 then has-error is now applied to form-group by ng-class
Same idea as previous commit, but this works before model is updated and with nested sub schemas. Known issues: Only works with sub schemas one level deep at the moment
1 parent 161e0ec commit 84595b3

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

js/controllers/base.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,22 @@ formsAngular.controller('BaseCtrl', [
1919

2020
$rootScope.$broadcast('fngFormLoadStart', $scope);
2121

22+
// Invalid field styling for BS3 - only works for one level of nesting
23+
$scope.hasError = function(name, index) {
24+
var form = $scope[$scope.topLevelFormName];
25+
var field;
26+
if (typeof index === 'undefined') {
27+
field = form['f_' + name.replace(/\./g,'_')];
28+
} else {
29+
var parts = name.split('.');
30+
form = form['form_' + parts[0] + index];
31+
field = form[name.replace(/\./g,'-')];
32+
}
33+
if (field && field.$invalid) {
34+
return true
35+
}
36+
};
37+
2238
formGenerator.decorateScope($scope, formGenerator, recordHandler, sharedStuff);
2339
recordHandler.decorateScope($scope, $modal, recordHandler, ctrlState);
2440

js/services/form-markup-helper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ formsAngular.factory('formMarkupHelper', [
6464
classes += ' col-sm-' + inputSizeHelper.sizeAsNumber(info.size);
6565
closeTag += '</div>';
6666
}
67-
template += '<div' + addAllService.addAll(scope, 'Group', classes, options);
67+
template += '<div' + addAllService.addAll(scope, 'Group', classes, options)+' ng-class="{\'has-error\': hasError(\'' + info.name + '\', $index)}"';
6868
closeTag += '</div>';
6969
} else {
7070
if (exports.isHorizontalStyle(options.formstyle)) {

0 commit comments

Comments
 (0)