Use propertyAlias in fieldset validation

As described in #162 the umbracoPropertyAlias has been removed in favor
of a more unique propertyAlias. This propertyAlias should be used for
property identification in the validation.
This commit is contained in:
kjac
2014-07-01 22:28:20 +02:00
parent d7477eaf6d
commit 44ea6c56f5
+7 -9
View File
@@ -129,25 +129,23 @@ angular.module("umbraco.directives").directive('archetypeProperty', function ($c
}
// handle nested fieldset validation by storing the identifier of all invalid fieldset properties
var fieldsetIdentifier = scope.umbracoPropertyAlias + "_" + scope.fieldsetIndex;
var propertyIdentifier = fieldsetIdentifier + "_" + property.alias;
var propertyIdentifierIndex = ngModelCtrl.invalidProperties.indexOf(propertyIdentifier);
var propertyAliasIndex = ngModelCtrl.invalidProperties.indexOf(propertyAlias);
if (valid == false) {
if (propertyIdentifierIndex == -1) {
ngModelCtrl.invalidProperties.push(propertyIdentifier);
if (propertyAliasIndex == -1) {
ngModelCtrl.invalidProperties.push(propertyAlias);
}
}
else {
if (propertyIdentifierIndex != -1) {
ngModelCtrl.invalidProperties.splice(propertyIdentifierIndex, 1);
if (propertyAliasIndex != -1) {
ngModelCtrl.invalidProperties.splice(propertyAliasIndex, 1);
}
}
if (markAsInvalid) {
// mark the entire fieldset as invalid if there are any invalid properties in the fieldset, otherwise mark it as valid
fieldset.isValid =
_.find(ngModelCtrl.invalidProperties, function (item) {
return item.indexOf(fieldsetIdentifier) == 0
_.find(fieldset.properties, function (property) {
return property.isValid == false
}) == null;
}