From 056a20964cbee4d6ddcfc313ee44e24ffa4b32d3 Mon Sep 17 00:00:00 2001 From: Maximilian Krambach Date: Mon, 4 Feb 2019 12:42:08 +0100 Subject: [PATCH] improve start time and duration display for finished speakers --- .../app/core/ui-services/duration.service.ts | 12 +++++++ .../src/app/shared/models/agenda/speaker.ts | 15 ++++++-- .../speaker-list/speaker-list.component.html | 8 ++--- .../speaker-list/speaker-list.component.ts | 34 +++++++++++++++++-- .../app/site/agenda/models/view-speaker.ts | 6 ++++ 5 files changed, 66 insertions(+), 9 deletions(-) diff --git a/client/src/app/core/ui-services/duration.service.ts b/client/src/app/core/ui-services/duration.service.ts index b62f8eeaa..9ccccaa00 100644 --- a/client/src/app/core/ui-services/duration.service.ts +++ b/client/src/app/core/ui-services/duration.service.ts @@ -69,4 +69,16 @@ export class DurationService { return ''; } } + + /** + * Converts a duration number (given in seconds)o a string in `MMM:SS` format + * + * @param time value in seconds + * @returns a more human readable time representation + */ + public secondDurationToString(time: number): string { + const minutes = Math.floor(time / 60); + const seconds = Math.floor(time % 60); + return `${minutes}:${`0${seconds}`.slice(-2)}`; + } } diff --git a/client/src/app/shared/models/agenda/speaker.ts b/client/src/app/shared/models/agenda/speaker.ts index 79ca1da2c..a8751628f 100644 --- a/client/src/app/shared/models/agenda/speaker.ts +++ b/client/src/app/shared/models/agenda/speaker.ts @@ -19,8 +19,19 @@ export enum SpeakerState { export class Speaker extends Deserializer { public id: number; public user_id: number; - public begin_time: string; // TODO this is a time object - public end_time: string; // TODO this is a time object + + /** + * ISO datetime string to indicate the begin time of the speech. Empty if + * the speaker has not started + */ + public begin_time: string; + + /** + * ISO datetime string to indicate the end time of the speech. Empty if the + * speech has not ended + */ + public end_time: string; + public weight: number; public marked: boolean; public item_id: number; diff --git a/client/src/app/site/agenda/components/speaker-list/speaker-list.component.html b/client/src/app/site/agenda/components/speaker-list/speaker-list.component.html index 3b3329ffa..3a65af79f 100644 --- a/client/src/app/site/agenda/components/speaker-list/speaker-list.component.html +++ b/client/src/app/site/agenda/components/speaker-list/speaker-list.component.html @@ -37,13 +37,11 @@
- {{ number + 1 }} . {{ speaker }} + {{ number + 1 }}. {{ speaker }}
- - - -  ( Start time : {{ speaker.begin_time }}) +    {{ durationString(speaker) }} + ({{ 'Start time' | translate }}: {{ startTimeToString(speaker) }})