summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/constraints/constraints.component.ts44
1 files changed, 23 insertions, 21 deletions
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/constraints/constraints.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/constraints/constraints.component.ts
index 831732dcf5..1e0eb4f2aa 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/constraints/constraints.component.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/constraints/constraints.component.ts
@@ -27,23 +27,8 @@ import { PROPERTY_DATA, PROPERTY_TYPES } from "app/utils/constants"
})
export class ConstraintsComponent implements OnInit {
- @Input() set propertyConstraints(propertyConstraints: any[]) {
- this.constraints = new Array();
- if(propertyConstraints) {
- propertyConstraints.forEach((constraint: any) => {
- this.constraints.push(this.getConstraintFromPropertyBEModel(constraint));
- });
- }
- }
- @Input() set propertyType(propertyType: string) {
- if (!this._propertyType || propertyType == this._propertyType) {
- this._propertyType = propertyType;
- return;
- }
- this.constraints = new Array();
- this._propertyType = propertyType;
- this.emitOnConstraintChange();
- }
+ @Input() propertyConstraints: any[];
+ @Input() propertyType: string;
@Input() isViewOnly: boolean = false;
@Output() onConstraintChange: EventEmitter<any> = new EventEmitter<any>();
@@ -51,12 +36,29 @@ export class ConstraintsComponent implements OnInit {
constraintTypes: string[];
ConstraintTypesMapping = ConstraintTypesMapping;
valid: boolean = true;
- _propertyType: string;
ngOnInit() {
this.constraintTypes = Object.keys(ConstraintTypes).map(key => ConstraintTypes[key]);
}
+ ngOnChanges(changes): void {
+ if (changes.propertyType) {
+ if (!this.propertyType || changes.propertyType.currentValue == this.propertyType) {
+ this.propertyType = changes.propertyType.currentValue;
+ } else {
+ this.constraints = new Array();
+ this.propertyType = changes.propertyType;
+ this.emitOnConstraintChange();
+ }
+ }
+ this.constraints = new Array();
+ if(changes.propertyConstraints.currentValue) {
+ changes.propertyConstraints.currentValue.forEach((constraint: any) => {
+ this.constraints.push(this.getConstraintFromPropertyBEModel(constraint));
+ });
+ }
+ }
+
private getConstraintFromPropertyBEModel(constraint: any):Constraint {
let constraintType: ConstraintTypes;
let constraintValue: any;
@@ -265,19 +267,19 @@ export class ConstraintsComponent implements OnInit {
case ConstraintTypes.greater_or_equal:
case ConstraintTypes.greater_than:
case ConstraintTypes.in_range:
- if (this.isComparable(this._propertyType)){
+ if (this.isComparable(this.propertyType)){
return false;
}
break;
case ConstraintTypes.length:
case ConstraintTypes.max_length:
case ConstraintTypes.min_length:
- if (this._propertyType == PROPERTY_TYPES.STRING || this._propertyType == PROPERTY_TYPES.MAP || this._propertyType == PROPERTY_TYPES.LIST){
+ if (this.propertyType == PROPERTY_TYPES.STRING || this.propertyType == PROPERTY_TYPES.MAP || this.propertyType == PROPERTY_TYPES.LIST){
return false;
}
break;
case ConstraintTypes.pattern:
- if (this._propertyType == PROPERTY_TYPES.STRING){
+ if (this.propertyType == PROPERTY_TYPES.STRING){
return false;
}
break;