diff --git a/Back/skydiveLogs-api/Data/JumpsDb-log.db b/Back/skydiveLogs-api/Data/JumpsDb-log.db index 3653299..c473c06 100644 Binary files a/Back/skydiveLogs-api/Data/JumpsDb-log.db and b/Back/skydiveLogs-api/Data/JumpsDb-log.db differ diff --git a/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts b/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts index 6d62579..64e4ba2 100644 --- a/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts +++ b/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts @@ -43,10 +43,10 @@ export class NewJumpComponent implements OnInit { private serviceDropzone: DropzoneService, private serviceGear: GearService, private dateService: DateService - ) { } + ) {} ngOnInit() { - this.serviceComm.UpdatedComponentTitle('Add a new jump'); + this.serviceComm.UpdatedComponentTitle("Add a new jump"); this.endDate = new Date(); this.beginDate = this.dateService.AddDays(new Date(), -1); @@ -126,8 +126,8 @@ export class NewJumpComponent implements OnInit { return data ? data.name : undefined; } - public onChangeDz(event: DropZoneResp) { - const filterValue = event.name.toLowerCase(); + public onChangeDz(event: string) { + const filterValue = event.toLowerCase(); this.listOfFilteredDropZone = this.listOfDropZone; this.listOfFilteredDropZone = this.listOfFilteredDropZone.filter(option => diff --git a/Front/skydivelogs-app/src/app/summary/summary.component.html b/Front/skydivelogs-app/src/app/summary/summary.component.html index e51c644..fdfddcb 100644 --- a/Front/skydivelogs-app/src/app/summary/summary.component.html +++ b/Front/skydivelogs-app/src/app/summary/summary.component.html @@ -15,10 +15,50 @@
+ + + + + + + + + +
{{element.label}}{{element.nb}}
+ + + + + + + + + +
{{element.label}}{{element.nb}}
+ + + + + + + + + +
{{element.label}}{{element.nb}}
+ + + + + + + + + +
{{element.label}}{{element.nb}}
diff --git a/Front/skydivelogs-app/src/app/summary/summary.component.ts b/Front/skydivelogs-app/src/app/summary/summary.component.ts index 6d0a724..448d175 100644 --- a/Front/skydivelogs-app/src/app/summary/summary.component.ts +++ b/Front/skydivelogs-app/src/app/summary/summary.component.ts @@ -1,30 +1,42 @@ -import { Component, OnInit } from '@angular/core'; -import { MatTableDataSource } from '@angular/material/table'; -import { ServiceComm } from '../../services/service-comm.service'; -import { StatsService } from '../../services/stats.service'; +import { Component, OnInit } from "@angular/core"; +import { MatTableDataSource } from "@angular/material/table"; +import { ServiceComm } from "../../services/service-comm.service"; +import { StatsService } from "../../services/stats.service"; +import { + StatsByDzResp, + StatsByAircraftResp, + StatsByGearResp, + StatsByJumpTypeResp, + StatsByYearResp +} from "../../models/stats"; @Component({ - selector: 'app-summary', - templateUrl: './summary.component.html', - styleUrls: ['./summary.component.css'] + selector: "app-summary", + templateUrl: "./summary.component.html", + styleUrls: ["./summary.component.css"] }) export class SummaryComponent implements OnInit { - public displayedColumns: Array = ['label', 'nb']; - public dsNbJumpByDz; - public dsNbJumpByAircraft; - public dsNbJumpByGear; - public dsNbJumpByType; - public dsNbJumpByYear; + public dsNbJumpByDz: MatTableDataSource; + public dsNbJumpByAircraft: MatTableDataSource; + public dsNbJumpByGear: MatTableDataSource; + public dsNbJumpByType: MatTableDataSource; + public dsNbJumpByYear: MatTableDataSource; + public dsJumpForLastYearByDz: MatTableDataSource; + public dsJumpForLastYearByJumpType: MatTableDataSource; + public dsJumpForLastMonthByDz: MatTableDataSource; + public dsJumpForLastMonthByJumpType: MatTableDataSource; + private countDatasLoaded: number; + public displayedColumns: Array = ["label", "nb"]; constructor( private serviceApi: StatsService, private serviceComm: ServiceComm - ) { } + ) {} ngOnInit() { this.countDatasLoaded = 0; - this.serviceComm.UpdatedComponentTitle('Summary'); + this.serviceComm.UpdatedComponentTitle("Summary"); const statsResult = this.serviceApi.getStatsOfJumps(); @@ -50,11 +62,17 @@ export class SummaryComponent implements OnInit { }); statsResult.statsForLastYear.subscribe(data => { - this.dsNbJumpByYear = new MatTableDataSource(data); + this.dsJumpForLastYearByDz = new MatTableDataSource(data.byDz); + this.dsJumpForLastYearByJumpType = new MatTableDataSource( + data.byJumpType + ); this.countDatasLoaded++; }); statsResult.statsForLastMonth.subscribe(data => { - this.dsNbJumpByYear = new MatTableDataSource(data); + this.dsJumpForLastMonthByDz = new MatTableDataSource(data.byDz); + this.dsJumpForLastMonthByJumpType = new MatTableDataSource( + data.byJumpType + ); this.countDatasLoaded++; }); } diff --git a/Front/skydivelogs-app/src/models/stats.ts b/Front/skydivelogs-app/src/models/stats.ts index 0dd4e9c..f04aa4a 100644 --- a/Front/skydivelogs-app/src/models/stats.ts +++ b/Front/skydivelogs-app/src/models/stats.ts @@ -1,4 +1,4 @@ -import { Observable } from 'rxjs'; +import { Observable } from "rxjs"; export class StatsResp { public statsByDz: Observable>; @@ -19,6 +19,7 @@ export class StatsByDzResp { public label: string; public nb: number; } + export class StatsByAircraftResp { constructor(data: any) { Object.assign(this, data); @@ -27,6 +28,7 @@ export class StatsByAircraftResp { public label: string; public nb: number; } + export class StatsByGearResp { constructor(data: any) { Object.assign(this, data); @@ -35,6 +37,7 @@ export class StatsByGearResp { public label: string; public nb: number; } + export class StatsByJumpTypeResp { constructor(data: any) { Object.assign(this, data); @@ -43,6 +46,7 @@ export class StatsByJumpTypeResp { public label: string; public nb: number; } + export class StatsByYearResp { constructor(data: any) { Object.assign(this, data); @@ -52,11 +56,16 @@ export class StatsByYearResp { public nb: number; } - - export class StatsForLastYearResp { - constructor(data: any) { - Object.assign(this, data); + constructor( + dataByDz: Array, + dataByJumpType: Array + ) { + this.byDz = new Array(); + this.byJumpType = new Array(); + + Object.assign(this.byDz, dataByDz); + Object.assign(this.byJumpType, dataByJumpType); } public byDz: Array; @@ -64,8 +73,15 @@ export class StatsForLastYearResp { } export class StatsForLastMonthResp { - constructor(data: any) { - Object.assign(this, data); + constructor( + dataByDz: Array, + dataByJumpType: Array + ) { + this.byDz = new Array(); + this.byJumpType = new Array(); + + Object.assign(this.byDz, dataByDz); + Object.assign(this.byJumpType, dataByJumpType); } public byDz: Array; diff --git a/Front/skydivelogs-app/src/services/stats.service.ts b/Front/skydivelogs-app/src/services/stats.service.ts index d01e9b2..f807f2c 100644 --- a/Front/skydivelogs-app/src/services/stats.service.ts +++ b/Front/skydivelogs-app/src/services/stats.service.ts @@ -1,8 +1,8 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpHeaders } from '@angular/common/http'; -import { Observable } from 'rxjs'; -import { map } from 'rxjs/operators'; -import { environment } from '../environments/environment'; +import { Injectable } from "@angular/core"; +import { HttpClient, HttpHeaders } from "@angular/common/http"; +import { Observable } from "rxjs"; +import { map } from "rxjs/operators"; +import { environment } from "../environments/environment"; import { StatsResp, StatsByDzResp, @@ -12,16 +12,15 @@ import { StatsByYearResp, StatsForLastMonthResp, StatsForLastYearResp -} from '../models/stats'; +} from "../models/stats"; @Injectable() export class StatsService { - private readonly headers = new HttpHeaders({ - 'Access-Control-Allow-Origin': environment.urlApi + "Access-Control-Allow-Origin": environment.urlApi }); - constructor(private http: HttpClient) { } + constructor(private http: HttpClient) {} public getStatsOfJumps(): StatsResp { const resultats = new StatsResp(); @@ -39,10 +38,10 @@ export class StatsService { } private getStatsByDz(): Observable> { - return this.http.get>( - `${environment.urlApi}/api/Stats/ByDz`, - { headers: this.headers } - ) + return this.http + .get>(`${environment.urlApi}/api/Stats/ByDz`, { + headers: this.headers + }) .pipe( map(response => { const stats = response.map(data => new StatsByDzResp(data)); @@ -52,10 +51,11 @@ export class StatsService { } private getStatsByAircraft(): Observable> { - return this.http.get>( - `${environment.urlApi}/api/Stats/ByAircraft`, - { headers: this.headers } - ) + return this.http + .get>( + `${environment.urlApi}/api/Stats/ByAircraft`, + { headers: this.headers } + ) .pipe( map(response => { const stats = response.map(data => new StatsByAircraftResp(data)); @@ -65,10 +65,11 @@ export class StatsService { } private getStatsByJumpType(): Observable> { - return this.http.get>( - `${environment.urlApi}/api/Stats/ByJumpType`, - { headers: this.headers } - ) + return this.http + .get>( + `${environment.urlApi}/api/Stats/ByJumpType`, + { headers: this.headers } + ) .pipe( map(response => { const stats = response.map(data => new StatsByJumpTypeResp(data)); @@ -78,10 +79,10 @@ export class StatsService { } private getStatsByGear(): Observable> { - return this.http.get>( - `${environment.urlApi}/api/Stats/ByGear`, - { headers: this.headers } - ) + return this.http + .get>(`${environment.urlApi}/api/Stats/ByGear`, { + headers: this.headers + }) .pipe( map(response => { const stats = response.map(data => new StatsByGearResp(data)); @@ -91,10 +92,10 @@ export class StatsService { } private getStatsByYear(): Observable> { - return this.http.get>( - `${environment.urlApi}/api/Stats/ByYear`, - { headers: this.headers } - ) + return this.http + .get>(`${environment.urlApi}/api/Stats/ByYear`, { + headers: this.headers + }) .pipe( map(response => { const stats = response.map(data => new StatsByYearResp(data)); @@ -103,31 +104,39 @@ export class StatsService { ); } - private getStatsOfLastYear(): Observable { - return this.http.get( - `${environment.urlApi}/api/Stats/ForLastYear`, - { headers: this.headers } - ) + return this.http + .get( + `${environment.urlApi}/api/Stats/ForLastYear`, + { headers: this.headers } + ) .pipe( map(response => { - const stats = response.map(data => new StatsByDzResp(data)); - return stats; + const statsByDz = response.byDz.map(data => new StatsByDzResp(data)); + const statsByJumpType = response.byJumpType.map( + data => new StatsByDzResp(data) + ); + + return new StatsForLastYearResp(statsByDz, statsByJumpType); }) ); } private getStatsOfLastMonth(): Observable { - return this.http.get( - `${environment.urlApi}/api/Stats/ForLastMonth`, - { headers: this.headers } - ) + return this.http + .get( + `${environment.urlApi}/api/Stats/ForLastMonth`, + { headers: this.headers } + ) .pipe( map(response => { - const stats = response.map(data => new StatsByDzResp(data)); - return stats; + const statsByDz = response.byDz.map(data => new StatsByDzResp(data)); + const statsByJumpType = response.byJumpType.map( + data => new StatsByDzResp(data) + ); + + return new StatsForLastMonthResp(statsByDz, statsByJumpType); }) ); } - }