X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fanr-xapp%2Fanr-xapp.datasource.ts;fp=webapp-frontend%2Fsrc%2Fapp%2Fanr-xapp%2Fanr-xapp.datasource.ts;h=0000000000000000000000000000000000000000;hb=ef2afb662e0051397034e6fd3ece039a04c684c0;hp=b31ad03ee50e74f2d0d4db023a14fe3f345c7942;hpb=036e63834ec23b08ceb2f9cece1eaa602d3082bd;p=portal%2Fric-dashboard.git diff --git a/webapp-frontend/src/app/anr-xapp/anr-xapp.datasource.ts b/webapp-frontend/src/app/anr-xapp/anr-xapp.datasource.ts deleted file mode 100644 index b31ad03e..00000000 --- a/webapp-frontend/src/app/anr-xapp/anr-xapp.datasource.ts +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2019 AT&T Intellectual Property - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ - -import { CollectionViewer, DataSource } from '@angular/cdk/collections'; -import { HttpErrorResponse } from '@angular/common/http'; -import { MatSort } from '@angular/material/sort'; -import { Observable } from 'rxjs/Observable'; -import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import { of } from 'rxjs/observable/of'; -import { merge } from 'rxjs'; -import { catchError, finalize, map } from 'rxjs/operators'; -import { ANRNeighborCellRelation } from '../interfaces/anr-xapp.types'; -import { ANRXappService } from '../services/anr-xapp/anr-xapp.service'; -import { NotificationService } from '../services/ui/notification.service'; - -export class ANRXappDataSource extends DataSource { - - private relationsSubject = new BehaviorSubject([]); - - private loadingSubject = new BehaviorSubject(false); - - public loading$ = this.loadingSubject.asObservable(); - - public rowCount = 1; // hide footer during intial load - - constructor(private anrXappService: ANRXappService, - private sort: MatSort, - private notificationService: NotificationService) { - super(); - } - - loadTable(ggnodeb: string = '', servingCellNrcgi: string = '', neighborCellNrpci: string = '') { - this.loadingSubject.next(true); - this.anrXappService.getNcrtInfo(ggnodeb, servingCellNrcgi, neighborCellNrpci) - .pipe( - catchError( (her: HttpErrorResponse) => { - console.log('ANRXappDataSource failed: ' + her.message); - this.notificationService.error('Failed to get data: ' + her.message); - return of([]); - }), - finalize(() => this.loadingSubject.next(false)) - ) - .subscribe( (ncrt: ANRNeighborCellRelation[]) => { - this.rowCount = ncrt.length; - this.relationsSubject.next(ncrt); - }); - } - - connect(collectionViewer: CollectionViewer): Observable { - const dataMutations = [ - this.relationsSubject.asObservable(), - this.sort.sortChange - ]; - return merge(...dataMutations).pipe(map(() => { - return this.getSortedData([...this.relationsSubject.getValue()]); - })); - } - - disconnect(collectionViewer: CollectionViewer): void { - this.relationsSubject.complete(); - this.loadingSubject.complete(); - } - - private getSortedData(data: ANRNeighborCellRelation[]) { - if (!this.sort.active || this.sort.direction === '') { - return data; - } - return data.sort((a: ANRNeighborCellRelation, b: ANRNeighborCellRelation) => { - const isAsc = this.sort.direction === 'asc'; - switch (this.sort.active) { - case 'cellIdentifierNrcgi': return compare(a.servingCellNrcgi, b.servingCellNrcgi, isAsc); - case 'neighborCellNrpci': return compare(a.neighborCellNrpci, b.neighborCellNrpci, isAsc); - case 'neighborCellNrcgi': return compare(a.neighborCellNrcgi, b.neighborCellNrcgi, isAsc); - case 'flagNoHo': return compare(a.flagNoHo, b.flagNoHo, isAsc); - case 'flagNoXn': return compare(a.flagNoXn, b.flagNoXn, isAsc); - case 'flagNoRemove': return compare(a.flagNoRemove, b.flagNoRemove, isAsc); - default: return 0; - } - }); - } -} - -function compare(a: any, b: any, isAsc: boolean) { - return (a < b ? -1 : 1) * (isAsc ? 1 : -1); -}