summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.html4
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts25
2 files changed, 20 insertions, 9 deletions
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.html b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.html
index a609db41b8..2d1e26bb3c 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.html
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.html
@@ -36,7 +36,9 @@
</form>
<div class="i-sdc-form-item" *ngFor="let indexVal of indexListValues; index as i">
<label class="i-sdc-form-label required" *ngIf="indexVal.indexFlag">Index</label>
- <input type="text" *ngIf="indexVal.indexFlag" [(ngModel)]="indexVal.indexValue" (change)="indexTokenChange(indexVal)"/>
+ <input type="text" *ngIf="indexVal.indexFlag" [(ngModel)]="indexVal.indexValue" (change)="indexTokenChange(indexVal)"
+ (input)="onChangeIndexValue(indexVal, $event.target.value)"/>
+ <span id ="error" class="input-error"></span>
<label class="i-sdc-form-label required" *ngIf="indexVal.nestedFlag">{{dropdownValuesLabel}}</label>
<select [(ngModel)]="indexVal.indexProperty" *ngIf="indexVal.nestedFlag" (change)="onSubPropertyValueChange(indexVal,i)">
<option *ngFor="let value of indexVal.subPropertyArray" [ngValue]="value">{{value.propertyLabel}}</option>
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts
index 26098b7020..a1ed8aa137 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts
@@ -229,7 +229,7 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
const selectedProperty: PropertyDropdownValue = this.formGroup.value.selectedProperty;
if (selectedProperty != null && selectedProperty.isList && formGroupStatus && this.indexListValues.length > 0) {
this.indexListValues.forEach((indexObject : ToscaIndexObject, index) => {
- if (indexObject.indexValue == null) {
+ if (indexObject.indexValue == '') {
formGroupStatus = false;
return;
}
@@ -617,17 +617,23 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
}
indexTokenChange(indexObject : ToscaIndexObject): void {
- if ((indexObject.indexValue).toLowerCase() === 'index') {
+ if ((indexObject.indexValue).toLowerCase() === 'index' ) {
this.formValidation();
- return;
}
- let indexTokenValue = Number(indexObject.indexValue);
- if (isNaN(indexTokenValue)) {
- indexObject.indexValue = "0";
+
+ const regEx = /^[0-9]*$/;
+ const error = document.getElementById('error');
+
+ if (!(regEx.test(indexObject.indexValue)) && (indexObject.indexValue).toLowerCase() !== 'index') {
+ error.textContent='Invalid value - must be an integer or INDEX';
+ this.onValidityChange.emit({
+ isValid: false,
+ toscaGetFunction: this.formGroup.valid ? this.buildGetFunctionFromForm() : undefined
+ });
+ } else {
+ error.textContent='';
this.formValidation();
- return;
}
- this.formValidation();
}
showPropertySourceDropdown(): boolean {
@@ -646,6 +652,9 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
return this.formGroup.get('selectedProperty') as FormControl;
}
+ onChangeIndexValue(index: ToscaIndexObject, value: any) {
+ this.indexTokenChange(index);
+ }
}
export interface PropertyDropdownValue {