From f402001c042bb9b91c179e6a81fa556f44116317 Mon Sep 17 00:00:00 2001 From: kbeyro <121854496+kbeyro@users.noreply.github.com> Date: Thu, 29 Jun 2023 11:54:16 +0200 Subject: [PATCH] add support for Condition in app-access-method --- .../app-access-method-edit.component.html | 10 ++++++++++ .../app-access-method-edit.component.spec.ts | 7 +++++-- .../app-access-method-edit.component.ts | 11 ++++++++++- src/app/model/app-access-method.ts | 7 +++++++ 4 files changed, 32 insertions(+), 3 deletions(-) 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 5d4827c4..8aad3424 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 2b8c8f2c..464e8a05 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 cad91f7b..e9511e92 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,9 @@ export class AppAccessMethodEditComponent implements OnInit { 'K8S_SERVICE_SUFFIX', 'K8S_SERVICE_PORT'] + public conditionType = ['NONE', 'DEPLOYMENT_PARAMETER'] + public condition = ''; + constructor() { } ngOnInit() { @@ -107,4 +110,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 781fd992..87b5d9b9 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; } -- GitLab