X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fpolicy%2Fpolicy-type%2Fpolicy-type.component.ts;h=cfc0eb5784428b90c713bd8266a753cc8ca1a742;hb=94a4ef61a407db7514f2320ea8886c1dda526d4d;hp=be5b30583e7be33597298bbd1ebc6d3422923b04;hpb=9c2b058b9696bf34c1b2d6fd20bf1fe9cfb1f7b0;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/policy/policy-type/policy-type.component.ts b/webapp-frontend/src/app/policy/policy-type/policy-type.component.ts index be5b305..cfc0eb5 100644 --- a/webapp-frontend/src/app/policy/policy-type/policy-type.component.ts +++ b/webapp-frontend/src/app/policy/policy-type/policy-type.component.ts @@ -18,46 +18,68 @@ * ========================LICENSE_END=================================== */ -import { Component, Input, OnInit } from '@angular/core'; -import { BehaviorSubject } from 'rxjs'; -import { PolicyTypeSchema } from '@interfaces/policy.types'; -import { PolicyService } from '@services/policy/policy.service'; -import { PolicyTypeDataSource } from './policy-type.datasource'; +import { Component, Input, OnInit } from "@angular/core"; +import { BehaviorSubject } from "rxjs"; +import { PolicyType, PolicyTypeSchema } from "@interfaces/policy.types"; +import { PolicyService } from "@app/services/policy/policy.service"; class PolicyTypeInfo { - constructor(public type: PolicyTypeSchema) { } + constructor(public type: PolicyTypeSchema) {} isExpanded: BehaviorSubject = new BehaviorSubject(false); } @Component({ - selector: 'nrcp-policy-type', - templateUrl: './policy-type.component.html', - styleUrls: ['./policy-type.component.scss'] + selector: "nrcp-policy-type", + templateUrl: "./policy-type.component.html", + styleUrls: ["./policy-type.component.scss"], }) export class PolicyTypeComponent implements OnInit { - @Input() policyTypeId: string; isVisible: BehaviorSubject = new BehaviorSubject(false); policyTypeInfo: PolicyTypeInfo; + policyType: string; + policyDescription: string; - constructor(private policyTypeDataSource: PolicyTypeDataSource) { - } + constructor(private policyService: PolicyService) {} ngOnInit(): void { - const policyTypeSchema = this.policyTypeDataSource.getPolicyType(this.policyTypeId); - this.policyTypeInfo = new PolicyTypeInfo(policyTypeSchema); - console.log("this.policyType: ", this.policyTypeInfo); + this.loadTypeInfo(); this.isVisible.next(false); } - public setIsVisible(status: boolean){ - this.isVisible.next(status); + public loadTypeInfo() { + if (this.policyTypeId && this.policyTypeId !== "") { + this.policyService + .getPolicyType(this.policyTypeId) + .subscribe((policyType: PolicyType) => { + const policyTypeSchema = this.getSchemaObject(policyType); + this.policyTypeInfo = new PolicyTypeInfo(policyTypeSchema); + this.policyType = this.policyTypeId; + this.policyDescription = policyTypeSchema.schemaObject.description; + }); + } else { + const noType = { + policy_schema: JSON.parse('{}'), + } as PolicyType; + const noTypeSchema = this.getSchemaObject(noType); + this.policyTypeInfo = new PolicyTypeInfo(noTypeSchema); + this.policyType = "< No Type >"; + this.policyDescription = "Type with no schema"; + } +} + + private getSchemaObject(policyType: PolicyType) { + const policyTypeSchema = {} as PolicyTypeSchema; + policyTypeSchema.id = this.policyTypeId; + policyTypeSchema.schemaObject = policyType.policy_schema; + policyTypeSchema.name = policyType.policy_schema.title; + return policyTypeSchema; } public toggleVisible() { this.isVisible.next(!this.isVisible.value); } -} \ No newline at end of file +}