Merge pull request #4469 from MaximilianKrambach/speakertime

clarifying duration service usage
This commit is contained in:
Finn Stutzenstein 2019-03-11 08:07:41 +01:00 committed by GitHub
commit d10dfb0915
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 10 additions and 9 deletions

View File

@ -22,10 +22,10 @@ import { Injectable } from '@angular/core';
* @example * @example
* ```ts * ```ts
* // will result in 01:10 h * // will result in 01:10 h
* const a = this.durationService.durationToString(70); * const a = this.durationService.durationToString(70, 'h');
* *
* // will result in 00:30 m (30 is interpreted as seconds) * // will result in 00:30 m (30 is interpreted as seconds)
* const a = this.durationService.durationToString(30); * const a = this.durationService.durationToString(30, 'm');
* ``` * ```
*/ */
@Injectable({ @Injectable({
@ -65,10 +65,11 @@ export class DurationService {
/** /**
* Converts a duration number (given in minutes or seconds) * Converts a duration number (given in minutes or seconds)
* *
* @param duration value in minutes * @param duration value in minutes or seconds (60 units being the next bigger unit)
* @param suffix any suffix to add.
* @returns a more human readable time representation * @returns a more human readable time representation
*/ */
public durationToString(duration: number, suffix: 'h' | 'm' = 'h'): string { public durationToString(duration: number, suffix: 'h' | 'm'): string {
const major = Math.floor(duration / 60); const major = Math.floor(duration / 60);
const minor = `0${duration % 60}`.slice(-2); const minor = `0${duration % 60}`.slice(-2);
if (!isNaN(+major) && !isNaN(+minor)) { if (!isNaN(+major) && !isNaN(+minor)) {

View File

@ -98,7 +98,7 @@ export class AgendaImportListComponent extends BaseImportListComponent<ViewCreat
*/ */
public getDuration(duration: number): string { public getDuration(duration: number): string {
if (duration >= 0) { if (duration >= 0) {
return this.durationService.durationToString(duration); return this.durationService.durationToString(duration, 'h');
} else { } else {
return ''; return '';
} }

View File

@ -60,7 +60,7 @@
</div> </div>
<div *ngIf="item.duration"> <div *ngIf="item.duration">
<mat-icon>access_time</mat-icon> <mat-icon>access_time</mat-icon>
{{ durationService.durationToString(item.duration) }} {{ durationService.durationToString(item.duration, 'h') }}
</div> </div>
<div *ngIf="item.comment"> <div *ngIf="item.comment">
<mat-icon>comment</mat-icon> <mat-icon>comment</mat-icon>

View File

@ -296,7 +296,7 @@ export class AgendaListComponent extends ListViewBaseComponent<ViewItem, Item> i
if (!duration) { if (!duration) {
return ''; return '';
} }
const durationString = this.durationService.durationToString(duration); const durationString = this.durationService.durationToString(duration, 'h');
const endTime = this.repo.calculateEndTime(); const endTime = this.repo.calculateEndTime();
const result = `${this.translate.instant('Duration')}: ${durationString}`; const result = `${this.translate.instant('Duration')}: ${durationString}`;
if (endTime) { if (endTime) {

View File

@ -49,7 +49,7 @@ export class ItemInfoDialogComponent {
// load current values // load current values
this.agendaInfoForm.get('type').setValue(item.type); this.agendaInfoForm.get('type').setValue(item.type);
this.agendaInfoForm.get('durationText').setValue(this.durationService.durationToString(item.duration)); this.agendaInfoForm.get('durationText').setValue(this.durationService.durationToString(item.duration, 'h'));
this.agendaInfoForm.get('item_number').setValue(item.itemNumber); this.agendaInfoForm.get('item_number').setValue(item.itemNumber);
this.agendaInfoForm.get('comment').setValue(item.comment); this.agendaInfoForm.get('comment').setValue(item.comment);
} }

View File

@ -386,6 +386,6 @@ export class ListOfSpeakersComponent extends BaseViewComponent implements OnInit
const duration = Math.floor( const duration = Math.floor(
(new Date(speaker.end_time).valueOf() - new Date(speaker.begin_time).valueOf()) / 1000 (new Date(speaker.end_time).valueOf() - new Date(speaker.begin_time).valueOf()) / 1000
); );
return `${this.durationService.durationToString(duration, 'm')} ${this.translate.instant('minutes')}`; return `${this.durationService.durationToString(duration, 'm')}`;
} }
} }