diff --git a/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.html b/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.html index eea68fe5..88d78b54 100644 --- a/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.html +++ b/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.html @@ -74,9 +74,9 @@ - Traveled time + Traveled time (hh:mm) - {{ durationFormatter(item.traveledTime) }} + {{ formattedTravelTime(item.traveledTime) }} diff --git a/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.spec.ts b/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.spec.ts index d327f0c0..468004c0 100644 --- a/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.spec.ts +++ b/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.spec.ts @@ -52,4 +52,15 @@ describe('BaseRoutesMetadataTableComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + it('should format traveled time', () => { + expect(component.formattedTravelTime(0)).toBe('00:00'); + expect(component.formattedTravelTime(61)).toBe('00:01'); + expect(component.formattedTravelTime(1910)).toBe('00:31'); + expect(component.formattedTravelTime(3600)).toBe('01:00'); + expect(component.formattedTravelTime(7260)).toBe('02:01'); + expect(component.formattedTravelTime(7300)).toBe('02:01'); + expect(component.formattedTravelTime(86400)).toBe('24:00'); + expect(component.formattedTravelTime(90120)).toBe('25:02'); + }); }); diff --git a/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.ts b/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.ts index 878f9df1..cd7ee83a 100644 --- a/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.ts +++ b/application/frontend/src/app/routes-metadata/components/base-routes-metadata-table/base-routes-metadata-table.component.ts @@ -18,7 +18,7 @@ import { ViewEncapsulation, } from '@angular/core'; import { DataSource } from 'src/app/shared/models'; -import { formatDuration, getCapacityQuantityUnit, getUnitAbbreviation } from 'src/app/util'; +import { getCapacityQuantityUnit, getUnitAbbreviation } from 'src/app/util'; import { RouteMetadata } from '../../models'; import { selectAllowExperimentalFeatures } from '../../../../app/core/selectors/config.selectors'; import { Store } from '@ngrx/store'; @@ -44,7 +44,6 @@ export class BaseRoutesMetadataTableComponent implements OnInit { @Output() sortChange = new EventEmitter<{ active: string; direction: string }>(); allowExperimentalFeatures: boolean; - durationFormatter = formatDuration; objectKeys = Object.keys; constructor(private store: Store, private zone: NgZone) {} @@ -83,4 +82,10 @@ export class BaseRoutesMetadataTableComponent implements OnInit { onSortChange(value: { active: string; direction: string }): void { this.zone.run(() => this.sortChange.emit(value)); } + + formattedTravelTime(seconds: number): string { + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor((seconds - hours * 3600) / 60); + return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`; + } }