diff --git a/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.html b/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.html index 5d4827c465a644be2ff280249b0e410624bbbdfc..8aad3424dcde471b407750c7d32feaa4b8a4324e 100644 --- a/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.html +++ b/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.html @@ -20,6 +20,16 @@ <label class="control-label" for="{{id}}-tag-{{accessMethod.type}}">{{'APP_ACCESS_METHOD_EDIT.TAG' | translate}}: </label> <input class="form-control" type="text" id="{{id}}-tag-{{accessMethod.type}}" ngDefaultControl [(ngModel)]="accessMethod.tag"> </div> + <div class="form-group"> + <label class="control-label" for="{{id}}-conditionType-{{accessMethod.conditionType}}">{{'APP_ACCESS_METHOD_EDIT.CONDITION_TYPE' | translate}}: </label> + <select class="form-control" id="{{id}}-conditionType-{{accessMethod.conditionType}}" [(ngModel)]="accessMethod.conditionType" (change)="onSelectConditionType($event)"> + <option *ngFor="let s of conditionType; let i=index" value="{{s}}">{{s}}</option> + </select> + </div> + <div *ngIf="accessMethod.conditionType === 'DEPLOYMENT_PARAMETER'" class="form-group"> + <label class="control-label" for="{{id}}-condition-{{accessMethod.type}}">{{'APP_ACCESS_METHOD_EDIT.CONDITION' | translate}}: </label> + <input class="form-control" type="text" id="{{id}}-condition-{{accessMethod.type}}" ngDefaultControl [(ngModel)]="accessMethod.condition"> + </div> </div> <ul class="col-sm-7"> diff --git a/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.spec.ts b/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.spec.ts index 2b8c8f2c6d67983198efa05b8eca2b79d24613a1..464e8a0589c1ee98f3c62c9a6f1b25c4481e6af0 100644 --- a/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.spec.ts +++ b/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.spec.ts @@ -1,9 +1,10 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing'; import {AppAccessMethodEditComponent} from './app-access-method-edit.component'; import {FormsModule} from '@angular/forms'; import {ServiceAccessMethodType} from '../../../model/service-access-method'; import {TranslateFakeLoader, TranslateLoader, TranslateModule} from '@ngx-translate/core'; +import {ConditionType} from '../../../model/app-access-method'; describe('AppAccessMethodEditComponent', () => { let component: AppAccessMethodEditComponent; @@ -35,7 +36,9 @@ describe('AppAccessMethodEditComponent', () => { type: ServiceAccessMethodType.INTERNAL, name: 'd', tag: 't', - deployParameters: {} + deployParameters: {}, + conditionType: ConditionType.NONE, + condition: '' }; fixture.detectChanges(); }); diff --git a/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.ts b/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.ts index cad91f7bd42817aeea7b1483d3e157973307848a..614c1ce7aeb47ca446b3807bebc0b6ff335e9eb8 100644 --- a/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.ts +++ b/src/app/appmarket/appmanagement/app-access-method-edit-component/app-access-method-edit.component.ts @@ -1,5 +1,5 @@ import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; -import {AppAccessMethod} from '../../../model/app-access-method'; +import {AppAccessMethod, ConditionType} from '../../../model/app-access-method'; import {parseServiceAccessMethodType, ServiceAccessMethodType} from '../../../model/service-access-method'; import {KeyValue} from '@angular/common'; @@ -40,6 +40,8 @@ export class AppAccessMethodEditComponent implements OnInit { 'K8S_SERVICE_SUFFIX', 'K8S_SERVICE_PORT'] + public conditionType = ['NONE', 'DEPLOYMENT_PARAMETER'] + constructor() { } ngOnInit() { @@ -107,4 +109,10 @@ export class AppAccessMethodEditComponent implements OnInit { }) } + public onSelectConditionType(conditionType: any) { + if (conditionType.target.value === 'NONE') { + this.accessMethod.condition = ''; + } + } + } diff --git a/src/app/model/app-access-method.ts b/src/app/model/app-access-method.ts index 781fd9925d7a6181b68e5992ae40f204895493f0..87b5d9b90280ec5f60b7b7d924a71bec4997ec03 100644 --- a/src/app/model/app-access-method.ts +++ b/src/app/model/app-access-method.ts @@ -1,9 +1,16 @@ import {ServiceAccessMethodType} from './service-access-method'; +export enum ConditionType { + NONE = 'NONE', + DEPLOYMENT_PARAMETER = 'DEPLOYMENT_PARAMETER' +} + export class AppAccessMethod { public id: number; public type: ServiceAccessMethodType; public name: string; public tag: string; public deployParameters: object = {}; // this should be Map<string, string> but JS cannot stringify object of this type + public conditionType: ConditionType = ConditionType.NONE; + public condition: string; }