diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 2ec86e5..b53dbf8 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -12,6 +12,8 @@ import {HttpClientModule} from '@angular/common/http'; import {AppRoutingModule} from './app-routing.module'; import { ChampionshipComponent } from './championship/championship.component'; import { ChampionshipselectordialogComponent } from './championshipselectordialog/championshipselectordialog.component'; +import { RacetimepipePipe } from './racetimepipe.pipe'; +import { MinutesPipe } from './minutes.pipe'; @NgModule({ declarations: [ @@ -21,7 +23,9 @@ import { ChampionshipselectordialogComponent } from './championshipselectordialo PouleComponent, TierComponent, ChampionshipComponent, - ChampionshipselectordialogComponent + ChampionshipselectordialogComponent, + RacetimepipePipe, + MinutesPipe ], imports: [ BrowserModule, diff --git a/src/app/content/poule/poule.component.html b/src/app/content/poule/poule.component.html index 92f8a4c..d459cea 100644 --- a/src/app/content/poule/poule.component.html +++ b/src/app/content/poule/poule.component.html @@ -35,10 +35,13 @@
- {{getPenaltySum(raceindex, team.idteam)/1000 | number:'1.2-2'}} + {{getPenaltySum(raceindex, team.idteam) | number:'1.0-0'}}s
- {{getRaceTime(raceindex, team.idteam)/1000 | number:'1.2-2'}} + {{getRaceTime(raceindex, team.idteam) | minutes}} + m + {{getRaceTimeSeconds(raceindex, team.idteam)}} + s
@@ -48,7 +51,10 @@
- {{getAvgOfBestTwo(team.idteam)/1000 | number:'1.2-2'}} + {{getAvgOfBestTwo(team.idteam) | minutes}} + m + {{((getAvgOfBestTwo(team.idteam)/1000)%60).toFixed(2)}} + s
diff --git a/src/app/content/poule/poule.component.scss b/src/app/content/poule/poule.component.scss index 5287b5b..eea2a07 100644 --- a/src/app/content/poule/poule.component.scss +++ b/src/app/content/poule/poule.component.scss @@ -20,3 +20,7 @@ font-family: monospace; } +.timeletter { + font-size: 60%; +} + diff --git a/src/app/content/poule/poule.component.ts b/src/app/content/poule/poule.component.ts index 0df523b..98c6137 100644 --- a/src/app/content/poule/poule.component.ts +++ b/src/app/content/poule/poule.component.ts @@ -89,6 +89,10 @@ export class PouleComponent implements OnInit { return penaltysum; } + /** + * Get avg of best two in milliseconds. + * @param idTeam + */ getAvgOfBestTwo(idTeam: number) { if (!this.timesIndexed) { return null; @@ -136,6 +140,15 @@ export class PouleComponent implements OnInit { }); } + getRaceTimeMinutes(raceNr: number, idTeam: number): number { + return Math.floor(this.getRaceTime(raceNr, idTeam) / 1000 / 60); + } + + getRaceTimeSeconds(raceNr: number, idTeam: number): string { + const raceTime = this.getRaceTime(raceNr, idTeam); + return ((raceTime / 1000) % 60).toFixed(2); + } + getLapTimes(raceNr: number, idTeam: number): number[] { // console.log('lapnr/idteam' + lapNr + ' ' + idTeam); // console.log(this.timesIndexed); diff --git a/src/app/minutes.pipe.spec.ts b/src/app/minutes.pipe.spec.ts new file mode 100644 index 0000000..7af6a10 --- /dev/null +++ b/src/app/minutes.pipe.spec.ts @@ -0,0 +1,8 @@ +import { MinutesPipe } from './minutes.pipe'; + +describe('MinutesPipe', () => { + it('create an instance', () => { + const pipe = new MinutesPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/minutes.pipe.ts b/src/app/minutes.pipe.ts new file mode 100644 index 0000000..ad64284 --- /dev/null +++ b/src/app/minutes.pipe.ts @@ -0,0 +1,15 @@ +import {Pipe, PipeTransform} from '@angular/core'; + +@Pipe({ + name: 'minutes' +}) +export class MinutesPipe implements PipeTransform { + + transform(value: any, args?: any): any { + if (value === null) { + return null; + } + return Math.floor((value / 1000) / 60); + } + +} diff --git a/src/app/racetimepipe.pipe.spec.ts b/src/app/racetimepipe.pipe.spec.ts new file mode 100644 index 0000000..7f6e05a --- /dev/null +++ b/src/app/racetimepipe.pipe.spec.ts @@ -0,0 +1,8 @@ +import { RacetimepipePipe } from './racetimepipe.pipe'; + +describe('RacetimepipePipe', () => { + it('create an instance', () => { + const pipe = new RacetimepipePipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/racetimepipe.pipe.ts b/src/app/racetimepipe.pipe.ts new file mode 100644 index 0000000..2d6a2df --- /dev/null +++ b/src/app/racetimepipe.pipe.ts @@ -0,0 +1,24 @@ +import {Pipe, PipeTransform} from '@angular/core'; + +@Pipe({ + name: 'racetimepipe' +}) +export class RacetimepipePipe implements PipeTransform { + + /** + * Transform an amount of milliseconds to '999m:99s' + * @param value + * @param args + */ + transform(value: any, args?: any): any { + if (value === null) { + return null; + } + // assume a number in milliseconds + const ms = value; + const m = Math.floor(ms / 60); + const s = ms - m * 60; + return value + 'ms' + m + 'm:' + s.toFixed(2) + 's'; + } + +} diff --git a/src/app/topmenu/topmenu.component.html b/src/app/topmenu/topmenu.component.html index 18ee639..060e689 100644 --- a/src/app/topmenu/topmenu.component.html +++ b/src/app/topmenu/topmenu.component.html @@ -5,6 +5,6 @@ diff --git a/src/app/topmenu/topmenu.component.ts b/src/app/topmenu/topmenu.component.ts index 1188d03..63280e7 100644 --- a/src/app/topmenu/topmenu.component.ts +++ b/src/app/topmenu/topmenu.component.ts @@ -67,4 +67,24 @@ export class TopmenuComponent implements OnInit { return ''; } } + + /** + * Get a tier name. If there's a fixed amount of tiers we can give them a special name. + * @param tier + */ + getTierName(tier: number) { + if (tier === this.tiers.length) { + return 'Finale'; + } else if (tier === this.tiers.length - 1) { + return 'Halve finale'; + } else if (tier === this.tiers.length - 2) { + return 'Kwart finale'; + } else if (tier === this.tiers.length - 3) { + return 'Achtste finale'; + } else if (tier === this.tiers.length - 3) { + return 'Zestiende finale'; + } else { + return 'tier' + tier; + } + } }