mise à jour de la page d'informations

This commit is contained in:
Vincent BENOIT
2022-10-25 15:38:25 +02:00
parent d72b8d9294
commit 8f8f1fdf84
5 changed files with 84 additions and 2 deletions

View File

@@ -29,6 +29,7 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatTabsModule } from '@angular/material/tabs';
import { MatSliderModule } from '@angular/material/slider';
import { ToastrModule } from 'ngx-toastr';
import { CodeInputModule } from 'angular-code-input';
@@ -89,6 +90,7 @@ import { LogsComponent } from './components/home/workspace/logs/logs.component';
MatSlideToggleModule,
MatGridListModule,
MatTabsModule,
MatSliderModule,
FlexLayoutModule,
RouterModule,
FontAwesomeModule,

View File

@@ -5,5 +5,43 @@
</div>
<div *ngIf="!isProcessing" class="container"
fxLayout="column"
fxLayoutAlign="space-around center">
fxLayoutAlign="space-around start">
<ng-container *ngIf="infos">
<h3 style="margin-left: 2rem;">Module GSM</h3>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Fabricant:</b></span>
<span>{{infos.manufacturer.identification}}</span>
</div>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Modèle:</b></span>
<span>{{infos.manufacturer.model}}</span>
</div>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Révision matérielle:</b></span>
<span>{{infos.manufacturer.hardware_rev}}</span>
</div>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Numéro de série:</b></span>
<span>{{infos.manufacturer.serial_number}}</span>
</div>
<h3 style="margin-left: 2rem;">Contrôle</h3>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Opérateur:</b></span>
<span>{{infos.operator}}</span>
</div>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Provider:</b></span>
<span>{{infos.provider}}</span>
</div>
<div fxLayout="row" fxLayoutAlign="none center" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>Signal:</b></span>
<mat-slider fxFlex="50" min="-109" max="-53" step="2" value="info.signal_dbm"></mat-slider>
<span> ({{infos.signal_qos}})</span>
</div>
<div fxLayout="row" style="width:100%;">
<span fxFlexOffset="5" fxFlex="30"><b>carte SIM:</b></span>
<div *ngIf="infos.sim_inserted"><mat-icon style="color: green;">check_circle</mat-icon></div>
<div *ngIf="!infos.sim_inserted"><mat-icon style="color: red;">cancel</mat-icon></div>
</div>
</ng-container>
</div>

View File

@@ -1,7 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { BackendService } from '../../../../services/backend/backend.service';
import { Log } from '../../../../models/log.model';
import { Info } from '../../../../models/info.model';
import { ToastrService } from 'ngx-toastr';
@Component({
@@ -10,6 +10,7 @@ import { ToastrService } from 'ngx-toastr';
styleUrls: ['./infos.component.css']
})
export class InfosComponent implements OnInit {
infos:Info;
isProcessing:boolean = true;
constructor( private bs:BackendService,
@@ -17,6 +18,19 @@ export class InfosComponent implements OnInit {
private toast:ToastrService ) { }
ngOnInit(): void {
this.bs.retreiveInfos().subscribe(
(data:Info) => {
this.infos = data;
console.log(this.infos);
this.isProcessing = false;
}, err => {
if(err.status == 401) {
this.router.navigateByUrl("/login");
} else {
this.toast.error(err.error.description);
}
}
);
}
}

View File

@@ -0,0 +1,16 @@
export interface Manufacturer {
identification:string;
model:string;
hardware_rev:string;
serial_number:string;
}
export interface Info {
manufacturer:Manufacturer;
operator:string;
provider:string;
signal_dbm:string;
signal_qos:string;
sim_inserted:boolean;
call_ready:boolean;
}

View File

@@ -6,6 +6,7 @@ import { Utilisateur } from '../../models/utilisateur.model';
import { Parameters } from '../../models/parameters.model';
import { Scheduler } from '../../models/scheduler.model';
import { Log } from '../../models/log.model';
import { Info } from '../../models/info.model';
@Injectable({
providedIn: 'root'
@@ -138,4 +139,15 @@ export class BackendService {
};
return this.http.get<Log[]>(host+"/api/configurateur/app_logs", options);
}
retreiveInfos():Observable<Info> {
let host=environment.host;
const options = {
headers: new HttpHeaders({
'Content-Type' : 'application/json',
}),
withCredentials: true
};
return this.http.get<Info>(host+"/api/configurateur/infos", options);
}
}