Update for webserver; cleanup in CMakeLists.txt
- Add oai header to typescript and html sources, add support to commands requiring two parameters, add more helpfiles - Fix help bug (html comments not removed from tooltips) - Fix backend build problem and 2 warnings - Correctly initialize variables in nr_phy_scope.c - Use add_subdirectory for websrv cmake build - correctly link to asn1_lte_rrc and asn1_nr_rrc - fix bug: correctly recognize npm packet - only configure targets if explicitly asked for by users - use add_subdirectory - Use add_subdirectory for telnet cmake build - Minor cleanup in build_oai - Move softscope build in dedicated CMakeLists, and comment out DEBUG_MAC_INTERFACE option (not found in code) - Make DEBUG_ASN1 a cmake only option ( no C macro) as it's not used as a C macro in the code, and develop align
This commit is contained in:
@@ -1,13 +1,39 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/api/commands.api.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \api's definitions for the commands module, which provides web interface to telnet server commands
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {HttpClient} from "@angular/common/http";
|
||||
import {Injectable} from "@angular/core";
|
||||
import {environment} from "src/environments/environment";
|
||||
export interface IInfo {
|
||||
name: string;
|
||||
value: string;
|
||||
type: IArgType;
|
||||
modifiable: boolean; // set command ?
|
||||
}
|
||||
|
||||
import {route, IArgType, IInfo} from "src/commondefs";
|
||||
export interface IModule {
|
||||
name: string;
|
||||
}
|
||||
@@ -28,17 +54,6 @@ export enum ILogOutput {
|
||||
file = "/tmp/<component>.log",
|
||||
}
|
||||
|
||||
export enum IArgType {
|
||||
boolean = "boolean",
|
||||
list = "list",
|
||||
loglvl = "loglvl",
|
||||
range = "range",
|
||||
number = "number",
|
||||
string = "string",
|
||||
configfile = "configfile",
|
||||
simuTypes = "simuTypes",
|
||||
}
|
||||
|
||||
export enum ICommandOptions {
|
||||
update = "update", // result can be updated, triggers update button on result page when set
|
||||
help = "help" // help tooltip available on command buttons
|
||||
@@ -54,8 +69,8 @@ export interface IVariable {
|
||||
export interface ICommand {
|
||||
name: string;
|
||||
confirm?: string;
|
||||
question?: IQuestion;
|
||||
param?: IVariable;
|
||||
question?: IQuestion[];
|
||||
param?: IVariable[];
|
||||
options?: ICommandOptions[];
|
||||
}
|
||||
export interface ITable {
|
||||
@@ -86,7 +101,6 @@ export interface IRow {
|
||||
param?: IVariable // to transmit the initial command parameter, ex: the channel model index when modify a channel model
|
||||
}
|
||||
|
||||
export const route = "oaisoftmodem/";
|
||||
|
||||
@Injectable({
|
||||
providedIn : "root",
|
||||
@@ -96,10 +110,6 @@ export class CommandsApi {
|
||||
{
|
||||
}
|
||||
|
||||
public readInfos$ = () => this.httpClient.get<IInfo[]>(environment.backend + route + "variables/");
|
||||
|
||||
public setInfo$ = (info: IInfo) => this.httpClient.post<IResp>(environment.backend + route + "variables/", info);
|
||||
|
||||
public readModules$ = () => this.httpClient.get<IModule[]>(environment.backend + route + "commands/");
|
||||
|
||||
public readVariables$ = (moduleName: string) => this.httpClient.get<IInfo[]>(environment.backend + route + moduleName + "/variables/");
|
||||
|
||||
@@ -1,8 +1,41 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/api/help.api.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \api's definitions for the help module, which can be used to provides help text via tooltips
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {HttpClient} from "@angular/common/http";
|
||||
import {Injectable} from "@angular/core";
|
||||
import {Observable} from "rxjs";
|
||||
import {map} from "rxjs/operators";
|
||||
import {environment} from "src/environments/environment";
|
||||
import {route} from "src/commondefs";
|
||||
|
||||
export interface HelpRequest {
|
||||
module: string;
|
||||
@@ -13,7 +46,7 @@ export interface HelpRequest {
|
||||
export interface HelpResp {
|
||||
text: string;
|
||||
}
|
||||
const hlproute = "oaisoftmodem/helpfiles/";
|
||||
const hlproute = route + "/helpfiles/";
|
||||
|
||||
@Injectable({
|
||||
providedIn : "root",
|
||||
@@ -28,9 +61,10 @@ export class HelpApi {
|
||||
|
||||
public getHelpText(module: string, command: string, object: string): Observable<string>
|
||||
{
|
||||
|
||||
return this.getHelp$({module : module, command : command.replace(" ", "_"), object : object.replace(" ", "_")})
|
||||
.pipe(map(
|
||||
(response => { return (response.status == 201) ? response.body!.text : ""; }),
|
||||
(response => { return (response.status == 201) ? response.body!.text.replace(/<!--(?:.|\n)*?-->/gm, '') : ""; }),
|
||||
)); // pipe
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/api/info.api.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \api's definitions for the info module, which provides global info about the connected oai modem
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {HttpClient} from "@angular/common/http";
|
||||
import {Injectable} from "@angular/core";
|
||||
import {environment} from "src/environments/environment";
|
||||
import {route, IInfo} from "src/commondefs";
|
||||
|
||||
@Injectable({
|
||||
providedIn : "root",
|
||||
})
|
||||
export class InfoApi {
|
||||
constructor(private httpClient: HttpClient)
|
||||
{
|
||||
}
|
||||
|
||||
public readInfos$ = () => this.httpClient.get<IInfo[]>(environment.backend + route + "info/");
|
||||
}
|
||||
@@ -1,6 +1,39 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/scope/scope.api.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \api's definitions for the scope module, which provides a web interface to the oai soft scope
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {HttpClient} from "@angular/common/http";
|
||||
import {Injectable} from "@angular/core";
|
||||
import {environment} from "src/environments/environment";
|
||||
import {route} from "src/commondefs";
|
||||
|
||||
export enum IScopeGraphType {
|
||||
IQs = "IQs",
|
||||
@@ -33,7 +66,7 @@ export interface ISigDesc {
|
||||
antenna_id: number;
|
||||
}
|
||||
|
||||
const route = "oaisoftmodem/scopectrl/";
|
||||
const scoperoute = route + "/scopectrl/";
|
||||
|
||||
@Injectable({
|
||||
providedIn : "root",
|
||||
@@ -43,7 +76,7 @@ export class ScopeApi {
|
||||
{
|
||||
}
|
||||
|
||||
public getScopeInfos$ = () => this.httpClient.get<IScopeDesc>(environment.backend + route);
|
||||
public getScopeInfos$ = () => this.httpClient.get<IScopeDesc>(environment.backend + scoperoute);
|
||||
|
||||
public setScopeParams$ = (cmd: IScopeCmd) => this.httpClient.post(environment.backend + route, cmd, {observe : "response"});
|
||||
public setScopeParams$ = (cmd: IScopeCmd) => this.httpClient.post(environment.backend + scoperoute, cmd, {observe : "response"});
|
||||
}
|
||||
|
||||
@@ -1,3 +1,34 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/app-routing-module.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {NgModule} from "@angular/core";
|
||||
import {RouterModule, Routes} from "@angular/router";
|
||||
|
||||
|
||||
@@ -1,8 +1,45 @@
|
||||
<!--
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/app.component.html
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \this is the frontend initial web page source code
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
-->
|
||||
<mat-tab-group backgroundColor="primary" color="accent">
|
||||
<mat-tab label="Info">
|
||||
<app-info></app-info>
|
||||
</mat-tab>
|
||||
<mat-tab label="Commands">
|
||||
<app-commands></app-commands>
|
||||
</mat-tab>
|
||||
<mat-tab label={{scopelabel}} disabled={{!isscopeavailable}}>
|
||||
<app-scope (ScopeEnabled)="onScopeEnabled($event)"></app-scope>
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
</mat-tab-group>
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/app.module.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \all components, (externals or devlopped for oai) used by the application are imported from here
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {DragDropModule} from "@angular/cdk/drag-drop";
|
||||
import {HttpClientModule} from "@angular/common/http";
|
||||
import {NgModule} from "@angular/core";
|
||||
@@ -25,19 +57,20 @@ import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
|
||||
import {NgChartsModule} from "ng2-charts";
|
||||
import {CommandsApi} from "./api/commands.api";
|
||||
import {ScopeApi} from "./api/scope.api";
|
||||
import {InfoApi} from "./api/info.api";
|
||||
import {AppRoutingModule} from "./app-routing.module";
|
||||
import {AppComponent} from "./app.component";
|
||||
import {InfoComponent} from "./components/info/info.component";
|
||||
import {CommandsComponent} from "./components/commands/commands.component";
|
||||
import {ConfirmDialogComponent} from "./components/confirm/confirm.component";
|
||||
import {DialogComponent} from "./components/dialog/dialog.component";
|
||||
import {QuestionDialogComponent} from "./components/question/question.component";
|
||||
import {ScopeComponent} from "./components/scope/scope.component";
|
||||
import {InterceptorProviders} from "./interceptors/interceptors";
|
||||
import {LoadingService} from "./services/loading.service";
|
||||
import {WebSocketService} from "./services/websocket.service";
|
||||
|
||||
@NgModule({
|
||||
declarations : [ AppComponent, CommandsComponent, ConfirmDialogComponent, QuestionDialogComponent, DialogComponent, ScopeComponent ],
|
||||
declarations : [ AppComponent, CommandsComponent, InfoComponent, ConfirmDialogComponent, QuestionDialogComponent, DialogComponent, ScopeComponent ],
|
||||
imports : [
|
||||
BrowserModule, AppRoutingModule, FormsModule, ReactiveFormsModule, BrowserAnimationsModule, HttpClientModule, MatButtonModule, FlexLayoutModule, MatDialogModule, DragDropModule,
|
||||
MatSliderModule, MatFormFieldModule, MatInputModule, MatChipsModule, MatProgressSpinnerModule, MatToolbarModule, MatTableModule, MatListModule, MatSelectModule, MatSnackBarModule,
|
||||
@@ -45,10 +78,10 @@ import {WebSocketService} from "./services/websocket.service";
|
||||
],
|
||||
providers : [
|
||||
// services
|
||||
LoadingService,
|
||||
WebSocketService,
|
||||
// api
|
||||
CommandsApi,
|
||||
InfoApi,
|
||||
ScopeApi,
|
||||
// interceptors
|
||||
InterceptorProviders,
|
||||
|
||||
@@ -1,28 +1,40 @@
|
||||
<div class="grid-container" >
|
||||
<mat-grid-list cols="2" rowHeight="15vh" >
|
||||
<mat-grid-tile [colspan]="1" [rowspan]="2" >
|
||||
<mat-card class="dashboard-card">
|
||||
<mat-card-header >
|
||||
<mat-card-title>Connection info</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content class="dashboard-card-content">
|
||||
<div *ngIf="infos$ | async as infos">
|
||||
<div class="spaceddiv" *ngFor="let info of infos">
|
||||
<mat-form-field class="scrollablefield" >
|
||||
<mat-label>{{ info.nameFC.value }}</mat-label>
|
||||
<input matInput [formControl]="info.valueFC" [readonly]="!info.modifiableFC.value" />
|
||||
</mat-form-field>
|
||||
<button mat-raised-button color="primary" [disabled]="!info.modifiableFC.value"
|
||||
(click)="onInfoSubmit(info)">
|
||||
{{ info.btnTxtFC }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</mat-grid-tile>
|
||||
<!--
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
<mat-grid-tile [colspan]="1" [rowspan]="2">
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/commands/commands.component.html
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \commands web interface implementation (works with commands.component.ts)
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
-->
|
||||
<div class="grid-container" >
|
||||
<mat-grid-list cols="2" rowHeight="12vh" >
|
||||
<mat-grid-tile [colspan]="2" [rowspan]="2">
|
||||
<mat-card class="dashboard-card">
|
||||
<mat-card-header>
|
||||
<mat-card-title>Softmodem commands</mat-card-title>
|
||||
@@ -49,7 +61,7 @@
|
||||
</mat-card>
|
||||
</mat-grid-tile>
|
||||
|
||||
<mat-grid-tile *ngIf="vars$ | async as vars" [colspan]="1" [rowspan]="4">
|
||||
<mat-grid-tile *ngIf="vars$ | async as vars" [colspan]="1" [rowspan]="8">
|
||||
<mat-card *ngIf="vars.length" class="dashboard-card">
|
||||
<mat-card-header>
|
||||
<mat-card-title>{{ selectedModule!.name }} variables</mat-card-title>
|
||||
@@ -69,10 +81,10 @@
|
||||
</mat-card>
|
||||
</mat-grid-tile>
|
||||
|
||||
<mat-grid-tile *ngIf="(rows$ | async)?.length" [colspan]="1" [rowspan]="4">
|
||||
<mat-grid-tile *ngIf="(rows$ | async)?.length" [colspan]="1" [rowspan]="8">
|
||||
<mat-card class="dashboard-card">
|
||||
<mat-card-header>
|
||||
<mat-card-title>{{ selectedModule!.name }} {{ selectedCmd!.name }} {{ selectedCmd!.param?.value}}</mat-card-title>
|
||||
<mat-card-title>{{ selectedModule!.name }} {{ selectedCmd!.name }} {{ title_ptext }}</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content class="dashboard-card-content">
|
||||
<div >
|
||||
|
||||
@@ -1,12 +1,44 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/commands/commands.component.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \commands web interface implementation (works with commands.component.html)
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {Component} from "@angular/core";
|
||||
import {route, IArgType, IInfo} from "src/commondefs";
|
||||
import {ViewEncapsulation} from "@angular/core";
|
||||
import {UntypedFormArray} from "@angular/forms";
|
||||
import {BehaviorSubject, forkJoin, Observable, of, timer} from "rxjs";
|
||||
import {filter, map, switchMap, tap} from "rxjs/operators";
|
||||
import {CommandsApi, IArgType, IColumn, ICommand, ICommandOptions, IInfo, ILogLvl, IParam, IRow} from "src/app/api/commands.api";
|
||||
import {CommandsApi, IColumn, ICommand, ICommandOptions, ILogLvl, IParam, IRow} from "src/app/api/commands.api";
|
||||
import {HelpApi, HelpRequest, HelpResp} from "src/app/api/help.api";
|
||||
import {CmdCtrl} from "src/app/controls/cmd.control";
|
||||
import {InfoCtrl} from "src/app/controls/info.control";
|
||||
import {ModuleCtrl} from "src/app/controls/module.control";
|
||||
import {RowCtrl} from "src/app/controls/row.control";
|
||||
import {VarCtrl} from "src/app/controls/var.control";
|
||||
@@ -29,7 +61,7 @@ const PREDEF_CMD = "show predef"
|
||||
logLvlValues = Object.values(ILogLvl);
|
||||
|
||||
// softmodem
|
||||
infos$: Observable<VarCtrl[]>;
|
||||
|
||||
modules$: Observable<ModuleCtrl[]>;
|
||||
|
||||
// module
|
||||
@@ -42,7 +74,8 @@ const PREDEF_CMD = "show predef"
|
||||
displayedColumns: string[] = [];
|
||||
rows$: BehaviorSubject<RowCtrl[]> = new BehaviorSubject<RowCtrl[]>([]);
|
||||
columns: IColumn[] = [];
|
||||
|
||||
title_ptext: string =""; //used for possibly add a riminder of command parameters in the result page
|
||||
|
||||
constructor(
|
||||
public commandsApi: CommandsApi,
|
||||
public helpApi: HelpApi,
|
||||
@@ -52,8 +85,6 @@ const PREDEF_CMD = "show predef"
|
||||
|
||||
)
|
||||
{
|
||||
this.infos$ = this.commandsApi.readInfos$().pipe(map((infos) => infos.map(info => new InfoCtrl(info))));
|
||||
|
||||
this.modules$ = this.commandsApi.readModules$().pipe(
|
||||
map(imodules => imodules.map(imodule => new ModuleCtrl(imodule))), filter(controls => controls.length > 0), tap(controls => this.onModuleSelect(controls[0])));
|
||||
}
|
||||
@@ -71,22 +102,13 @@ const PREDEF_CMD = "show predef"
|
||||
// );
|
||||
// }
|
||||
|
||||
onInfoSubmit(control: InfoCtrl)
|
||||
{
|
||||
let info: IInfo = control.api();
|
||||
|
||||
if (info.type === IArgType.configfile) {
|
||||
this.downloadService.getFile(info.value)
|
||||
} else {
|
||||
this.commandsApi.setInfo$(info).subscribe();
|
||||
}
|
||||
}
|
||||
|
||||
onModuleSelect(module: ModuleCtrl)
|
||||
{
|
||||
this.selectedModule = module
|
||||
this.selectedCmd = undefined
|
||||
|
||||
this.title_ptext="";
|
||||
|
||||
this.cmds$ = this.commandsApi.readCommands$(module.name).pipe(
|
||||
map(icmds => icmds.map(icmd => new CmdCtrl(icmd))),
|
||||
map(cmds => {
|
||||
@@ -134,8 +156,14 @@ const PREDEF_CMD = "show predef"
|
||||
private execCmd$(control: CmdCtrl)
|
||||
{
|
||||
let cmd = control!.api();
|
||||
if (this.selectedCmd!.param)
|
||||
this.selectedCmd!.param!.value = cmd.param!.value;
|
||||
if (this.selectedCmd!.param) {
|
||||
this.selectedCmd!.param![0].value = cmd.param![0].value;
|
||||
this.title_ptext = cmd.param![0].value;
|
||||
if( this.selectedCmd!.param!.length > 1) {
|
||||
this.selectedCmd!.param![1].value = cmd.param![1].value;
|
||||
this.title_ptext = this.title_ptext + " " + cmd.param![1].value;
|
||||
}
|
||||
}
|
||||
this.commandsApi.runCommand$(cmd, this.selectedModule!.name)
|
||||
.subscribe(
|
||||
resp => {
|
||||
@@ -153,14 +181,7 @@ const PREDEF_CMD = "show predef"
|
||||
// possibly load help..
|
||||
for (let i = 0; i < this.columns.length; i = i + 1) {
|
||||
if (this.columns[i].help) {
|
||||
this.helpApi.getHelp$({module : this.selectedModule!.name, command : control!.api().name.replace(" ", "_"), object : this.columns[i].name.replace(" ", "_")})
|
||||
.subscribe(
|
||||
response => {
|
||||
if (response.status == 201)
|
||||
this.hlp_cc[i] = response.body!.text;
|
||||
},
|
||||
err => { this.hlp_cc[i] = ""; },
|
||||
);
|
||||
this.helpApi.getHelpText(this.selectedModule!.name,control!.api().name,this.columns[i].name).subscribe(resp => { this.hlp_cc[i] = resp; }, err => { this.hlp_cc[i] = ""; });
|
||||
} else {
|
||||
this.hlp_cc[i] = "";
|
||||
}
|
||||
@@ -201,7 +222,7 @@ const PREDEF_CMD = "show predef"
|
||||
onParamSubmit(control: RowCtrl)
|
||||
{
|
||||
if (this.selectedCmd!.param)
|
||||
control.set_cmdparam(this.selectedCmd!.param);
|
||||
control.set_cmdparam(this.selectedCmd!.param[0]);
|
||||
this.commandsApi.setCmdParams$(control.api(), this.selectedModule!.name).subscribe(() => this.execCmd$(new CmdCtrl(this.selectedCmd!)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
<!--
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/info/info.component.html
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \info component web interface implementation (works with info.component.ts)
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
-->
|
||||
<div class="grid-container" >
|
||||
<mat-grid-list cols="1" rowHeight="15vh" >
|
||||
<mat-grid-tile [colspan]="1" [rowspan]="6" >
|
||||
<mat-card class="dashboard-card">
|
||||
<mat-card-header >
|
||||
<mat-card-title>Connection info</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content class="dashboard-card-content">
|
||||
<div *ngIf="infos$ | async as infos">
|
||||
<div class="infodiv" *ngFor="let info of infos">
|
||||
<mat-form-field class="scrollablefield" >
|
||||
<mat-label>{{ info.nameFC.value }}</mat-label>
|
||||
<input matInput [formControl]="info.valueFC" [readonly]="!info.modifiableFC.value" />
|
||||
</mat-form-field>
|
||||
<button mat-raised-button color="primary" (click)="onInfoSubmit(info)" *ngIf="info.modifiableFC.value" >
|
||||
{{ info.btnTxtFC }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</mat-grid-tile>
|
||||
</mat-grid-list>
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
.infodiv {
|
||||
height: 45px;
|
||||
width: 80vw;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin: 0 auto;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
|
||||
.mat-card {
|
||||
height: 95%;
|
||||
overflow-y: auto;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/info/info.component.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \info component web interface implementation (works with info.component.html)
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {Component} from "@angular/core";
|
||||
import {IArgType, IInfo} from "src/commondefs";
|
||||
import {ViewEncapsulation} from "@angular/core";
|
||||
import {UntypedFormArray} from "@angular/forms";
|
||||
import {Observable} from "rxjs";
|
||||
import {filter, map, switchMap, tap} from "rxjs/operators";
|
||||
import {InfoApi} from "src/app/api/info.api";
|
||||
import {InfoCtrl} from "src/app/controls/info.control";
|
||||
import {ModuleCtrl} from "src/app/controls/module.control";
|
||||
import {VarCtrl} from "src/app/controls/var.control";
|
||||
import {DialogService} from "src/app/services/dialog.service";
|
||||
import {DownloadService} from "src/app/services/download.service";
|
||||
|
||||
@Component({
|
||||
selector : "app-info",
|
||||
templateUrl : "./info.component.html",
|
||||
styleUrls : [ "./info.component.scss" ],
|
||||
encapsulation : ViewEncapsulation.None,
|
||||
}) export class InfoComponent {
|
||||
|
||||
infos$: Observable<VarCtrl[]>;
|
||||
|
||||
|
||||
|
||||
constructor(
|
||||
public infoApi: InfoApi,
|
||||
public downloadService: DownloadService,
|
||||
|
||||
)
|
||||
{
|
||||
this.infos$ = this.infoApi.readInfos$().pipe(map((infos) => infos.map(info => new InfoCtrl(info))));
|
||||
}
|
||||
|
||||
|
||||
onInfoSubmit(control: InfoCtrl)
|
||||
{
|
||||
let info: IInfo = control.api();
|
||||
|
||||
if (info.type === IArgType.configfile) {
|
||||
this.downloadService.getFile(info.value)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +1,56 @@
|
||||
<h3>{{ data.title }}</h3>
|
||||
<!--
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/question/question.component.html
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \utility component used to allow entering parameters before sending a request to the backend
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
-->
|
||||
<h3>{{ data.control.cmdname }} command parameters</h3>
|
||||
<div mat-dialog-content >
|
||||
<mat-form-field appearance="fill">
|
||||
<label for="answer">{{data.control.question?.display}}</label>
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<label for="answer">{{data.control.question![0].display}}</label>
|
||||
<input id="answer" type="text" style="width:10vw" [formControl]="data.control.answerFC">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="data.control.question!.length > 1" >
|
||||
<mat-form-field>
|
||||
<label for="answerb">{{data.control.question![1].display}}</label>
|
||||
<input id="answerb" type="text" style="width:10vw" [formControl]="data.control.answerbFC">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayoutGap=" 10px" mat-dialog-actions fxLayout="row" fxLayoutAlign="center start">
|
||||
<button mat-button [mat-dialog-close]="true" cdkFocusInitial>Ok</button>
|
||||
<font size="-1" color="#888888"><div [innerHTML]="hlp_question"></div></font>
|
||||
</div>
|
||||
<div fxLayoutGap=" 20px" mat-dialog-actions fxLayout="row" fxLayoutAlign="center start">
|
||||
<button mat-button [mat-dialog-close]="true" cdkFocusInitial >Ok</button>
|
||||
<button mat-button [mat-dialog-close]="false">Cancel</button>
|
||||
</div>
|
||||
|
||||
@@ -1,20 +1,57 @@
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/question/question.component.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \utility component used to allow entering parameters before sending a request to the backend
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {Component, Inject} from "@angular/core";
|
||||
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
|
||||
import {CmdCtrl} from "src/app/controls/cmd.control";
|
||||
|
||||
import {HelpApi, HelpRequest, HelpResp} from "src/app/api/help.api";
|
||||
export interface QuestionDialogData {
|
||||
title: string;
|
||||
control: CmdCtrl;
|
||||
}
|
||||
@Component({selector : "app-question", templateUrl : "./question.component.html", styleUrls : [ "./question.component.css" ]})
|
||||
export class QuestionDialogComponent {
|
||||
hlp_question: string = "";
|
||||
constructor(
|
||||
public dialogRef: MatDialogRef<QuestionDialogComponent>,
|
||||
public helpApi: HelpApi,
|
||||
@Inject(MAT_DIALOG_DATA) public data: QuestionDialogData,
|
||||
)
|
||||
{
|
||||
this.helpApi.getHelpText("question", data.control.cmdname, "input").subscribe( response => { this.hlp_question = response;})
|
||||
}
|
||||
|
||||
|
||||
onNoClick()
|
||||
{
|
||||
this.dialogRef.close();
|
||||
|
||||
@@ -1,3 +1,37 @@
|
||||
<!--
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/scope/scope.component.html
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \scope component web interface implementation (works with scope.component.ts)
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
-->
|
||||
<div class="grid-container">
|
||||
<mat-grid-list cols="11" rowHeight="100px">
|
||||
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/components/scope/scope.component.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \scope component web interface implementation (works with scope.component.html)
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {Component, EventEmitter, OnDestroy, OnInit, Output, QueryList, ViewChildren} from "@angular/core";
|
||||
import {Chart, ChartConfiguration} from "chart.js";
|
||||
import {BaseChartDirective} from "ng2-charts";
|
||||
|
||||
@@ -1,19 +1,53 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/controls/cmd.control.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \implement a command for commands component
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
|
||||
import {UntypedFormArray, UntypedFormControl, UntypedFormGroup} from "@angular/forms";
|
||||
import {Subscription} from "rxjs";
|
||||
import {Observable} from "rxjs/internal/Observable";
|
||||
import {ICommand, ICommandOptions, IQuestion} from "src/app/api/commands.api";
|
||||
import {ICommand, ICommandOptions, IQuestion, IVariable} from "src/app/api/commands.api";
|
||||
import {HelpApi, HelpRequest, HelpResp} from "src/app/api/help.api";
|
||||
|
||||
const enum CmdFCN {
|
||||
name = "name",
|
||||
vars = "variables",
|
||||
confirm = "confirm",
|
||||
answer = "answer"
|
||||
answer = "answer",
|
||||
answerb = "answerb"
|
||||
}
|
||||
|
||||
export class CmdCtrl extends UntypedFormGroup {
|
||||
confirm?: string;
|
||||
question?: IQuestion;
|
||||
question?: IQuestion[];
|
||||
cmdname: string;
|
||||
options?: ICommandOptions[];
|
||||
public ResUpdTimer?: Observable<number>;
|
||||
@@ -27,26 +61,40 @@ export class CmdCtrl extends UntypedFormGroup {
|
||||
|
||||
this.addControl(CmdFCN.name, new UntypedFormControl(cmd.name));
|
||||
this.addControl(CmdFCN.answer, new UntypedFormControl(""));
|
||||
this.addControl(CmdFCN.answerb, new UntypedFormControl(""));
|
||||
this.addControl(CmdFCN.vars, new UntypedFormArray([]));
|
||||
|
||||
this.confirm = cmd.confirm;
|
||||
this.question = cmd.question;
|
||||
this.cmdname = cmd.name;
|
||||
this.options = cmd.options;
|
||||
this.updbtnname = "Start update"
|
||||
this.updbtnname = "Start update";
|
||||
}
|
||||
|
||||
api()
|
||||
{
|
||||
const doc: ICommand = {
|
||||
name : this.nameFC.value,
|
||||
param : this.question ? {name : this.question!.pname, value : this.answerFC.value, type : this.question!.type, modifiable : false} : undefined,
|
||||
param : this.question ? this.setParams() : undefined,
|
||||
// param : this.question ? {name : this.question!.pname, value : this.answerFC.value, type : this.question!.type, modifiable : false} : undefined,
|
||||
options : this.options
|
||||
};
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
|
||||
setParams ()
|
||||
{
|
||||
var vars : IVariable[]=new Array();
|
||||
for (let i = 0; i < this.question!.length; i++) {
|
||||
vars.push({name:this.question![i].pname,
|
||||
value:(i==0)?this.answerFC.value:this.answerbFC.value,
|
||||
type:this.question![i].type,
|
||||
modifiable:false })
|
||||
}
|
||||
return vars;
|
||||
}
|
||||
|
||||
isResUpdatable(): boolean
|
||||
{
|
||||
if (this.options) {
|
||||
@@ -88,6 +136,11 @@ export class CmdCtrl extends UntypedFormGroup {
|
||||
{
|
||||
return this.get(CmdFCN.answer) as UntypedFormControl;
|
||||
}
|
||||
|
||||
get answerbFC()
|
||||
{
|
||||
return this.get(CmdFCN.answerb) as UntypedFormControl;
|
||||
}
|
||||
|
||||
get varsFA()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,37 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/controls/info.control.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \implement one info item for info component
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {UntypedFormControl, UntypedFormGroup} from "@angular/forms";
|
||||
import {IInfo} from "../api/commands.api";
|
||||
import {IArgType} from "../api/commands.api";
|
||||
import {IArgType, IInfo} from "src/commondefs";
|
||||
|
||||
const enum InfosFCN {
|
||||
name = "name",
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/controls/module.control.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \implement one module item for commands component
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {UntypedFormArray, UntypedFormGroup} from "@angular/forms";
|
||||
import {IModule} from "../api/commands.api";
|
||||
|
||||
|
||||
@@ -1,5 +1,38 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/controls/param.control.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \implement one parameter in a result row for commands component
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {UntypedFormControl, UntypedFormGroup} from "@angular/forms";
|
||||
import {IArgType, IColumn, IParam} from "../api/commands.api";
|
||||
import {IArgType, IInfo} from "src/commondefs";
|
||||
import { IParam, IColumn,} from "../api/commands.api";
|
||||
|
||||
enum ParamFCN {
|
||||
value = "value",
|
||||
|
||||
@@ -1,7 +1,38 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/controls/row.control.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \implement one row results for commands component
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {FormControl, UntypedFormArray, UntypedFormGroup} from "@angular/forms";
|
||||
|
||||
import {IArgType, IParam, IRow, IVariable} from "../api/commands.api";
|
||||
import {IArgType} from "src/commondefs";
|
||||
import {IParam, IRow, IVariable} from "../api/commands.api";
|
||||
|
||||
import {ParamCtrl} from "./param.control";
|
||||
|
||||
|
||||
@@ -1,6 +1,37 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/controls/var.control.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \implement one variable item for commands componen
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {UntypedFormControl, UntypedFormGroup} from "@angular/forms";
|
||||
import {IInfo} from "../api/commands.api";
|
||||
import {IArgType} from "../api/commands.api";
|
||||
import {IArgType, IInfo} from "src/commondefs";
|
||||
|
||||
const enum VariablesFCN {
|
||||
name = "name",
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/interceptors/error.interceptor.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \utility to intercept error response from backend and possibly dispay an error to user
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from "@angular/common/http";
|
||||
import {Injectable} from "@angular/core";
|
||||
import {Observable, throwError} from "rxjs";
|
||||
@@ -52,7 +84,7 @@ export class ErrorInterceptor implements HttpInterceptor {
|
||||
// The response body may contain clues as to what went wrong
|
||||
message = JSON.stringify(error.error);
|
||||
}
|
||||
this.dialogService.openErrorDialog(prefix + " " + error.status, message);
|
||||
this.dialogService.openErrorDialog(prefix + " " + request.url, "http status: " + error.status + " " + message);
|
||||
return throwError(error);
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -1,8 +1,40 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/services/download.service.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \utility to download a file from backend
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {HttpClient} from "@angular/common/http";
|
||||
import {HttpHeaders} from "@angular/common/http";
|
||||
import {HttpParams} from "@angular/common/http";
|
||||
import {Injectable} from "@angular/core";
|
||||
import {route} from "src/app/api/commands.api";
|
||||
import {route} from "src/commondefs";
|
||||
import {environment} from "src/environments/environment";
|
||||
|
||||
@Injectable({
|
||||
|
||||
@@ -1,4 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/app/services/websocket.service.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \utility implementing a web interface with the backend
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {Injectable} from "@angular/core";
|
||||
import {webSocket, WebSocketSubject} from "rxjs/webSocket";
|
||||
import {environment} from "src/environments/environment";
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/commondefs.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \definitions of constants, enums and interfaces common to the whole frontend
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
export enum IArgType {
|
||||
boolean = "boolean",
|
||||
list = "list",
|
||||
loglvl = "loglvl",
|
||||
range = "range",
|
||||
number = "number",
|
||||
string = "string",
|
||||
configfile = "configfile",
|
||||
simuTypes = "simuTypes",
|
||||
}
|
||||
|
||||
export interface IInfo {
|
||||
name: string;
|
||||
value: string;
|
||||
type: IArgType;
|
||||
modifiable: boolean; // set command ?
|
||||
}
|
||||
|
||||
export const route = "oaisoftmodem/";
|
||||
@@ -1,3 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
|
||||
*
|
||||
* 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.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file common/utils/websrv/frontend/src/main.ts
|
||||
* \brief: implementation of web interface frontend for oai
|
||||
* \this is the frontend application main source but interesting things atarts in the app.module import
|
||||
* \author: Yacine El Mghazli, Francois TABURET
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
* \company NOKIA BellLabs France
|
||||
* \email: yacine.el_mghazli@nokia-bell-labs.com francois.taburet@nokia-bell-labs.com
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
import {enableProdMode} from "@angular/core";
|
||||
import {platformBrowserDynamic} from "@angular/platform-browser-dynamic";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user