Commit 844fb58c by juanvallejo

add ability to "disable" form validity

parent d2005bc3
......@@ -989,11 +989,13 @@ angular.module('openshiftCommonUI')
return {
restrict: 'A',
scope: {
oscUnique: '='
oscUnique: '=',
oscUniqueDisabled: '='
},
require: 'ngModel',
link: function($scope, $elem, $attrs, ctrl) {
var list = [];
var isUnique = true;
$scope.$watchCollection('oscUnique', function(newVal) {
list = _.isArray(newVal) ?
......@@ -1001,9 +1003,15 @@ angular.module('openshiftCommonUI')
_.keys(newVal);
});
var updateValidity = function() {
ctrl.$setValidity('oscUnique', $scope.oscUniqueDisabled || isUnique);
};
$scope.$watch('oscUniqueDisabled', updateValidity);
ctrl.$parsers.unshift(function(value) {
// is valid so long as it doesn't already exist
ctrl.$setValidity('oscUnique', !_.includes(list, value));
isUnique = !_.includes(list, value);
updateValidity();
return value;
});
}
......
......@@ -1160,11 +1160,13 @@ angular.module('openshiftCommonUI')
return {
restrict: 'A',
scope: {
oscUnique: '='
oscUnique: '=',
oscUniqueDisabled: '='
},
require: 'ngModel',
link: function($scope, $elem, $attrs, ctrl) {
var list = [];
var isUnique = true;
$scope.$watchCollection('oscUnique', function(newVal) {
list = _.isArray(newVal) ?
......@@ -1172,9 +1174,15 @@ angular.module('openshiftCommonUI')
_.keys(newVal);
});
var updateValidity = function() {
ctrl.$setValidity('oscUnique', $scope.oscUniqueDisabled || isUnique);
};
$scope.$watch('oscUniqueDisabled', updateValidity);
ctrl.$parsers.unshift(function(value) {
// is valid so long as it doesn't already exist
ctrl.$setValidity('oscUnique', !_.includes(list, value));
isUnique = !_.includes(list, value);
updateValidity();
return value;
});
}
......
......@@ -354,15 +354,20 @@ ctrl.shown && onHide();
return {
restrict:"A",
scope:{
oscUnique:"="
oscUnique:"=",
oscUniqueDisabled:"="
},
require:"ngModel",
link:function($scope, $elem, $attrs, ctrl) {
var list = [];
var list = [], isUnique = !0;
$scope.$watchCollection("oscUnique", function(newVal) {
list = _.isArray(newVal) ? newVal :_.keys(newVal);
}), ctrl.$parsers.unshift(function(value) {
return ctrl.$setValidity("oscUnique", !_.includes(list, value)), value;
});
var updateValidity = function() {
ctrl.$setValidity("oscUnique", $scope.oscUniqueDisabled || isUnique);
};
$scope.$watch("oscUniqueDisabled", updateValidity), ctrl.$parsers.unshift(function(value) {
return isUnique = !_.includes(list, value), updateValidity(), value;
});
}
};
......
......@@ -31,11 +31,13 @@ angular.module('openshiftCommonUI')
return {
restrict: 'A',
scope: {
oscUnique: '='
oscUnique: '=',
oscUniqueDisabled: '='
},
require: 'ngModel',
link: function($scope, $elem, $attrs, ctrl) {
var list = [];
var isUnique = true;
$scope.$watchCollection('oscUnique', function(newVal) {
list = _.isArray(newVal) ?
......@@ -43,9 +45,15 @@ angular.module('openshiftCommonUI')
_.keys(newVal);
});
var updateValidity = function() {
ctrl.$setValidity('oscUnique', $scope.oscUniqueDisabled || isUnique);
};
$scope.$watch('oscUniqueDisabled', updateValidity);
ctrl.$parsers.unshift(function(value) {
// is valid so long as it doesn't already exist
ctrl.$setValidity('oscUnique', !_.includes(list, value));
isUnique = !_.includes(list, value);
updateValidity();
return value;
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment