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;
+ }
+ }
}