diff --git a/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts b/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts index 4f138b3c1..4cc249c90 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts @@ -13,6 +13,7 @@ import { DossiersService } from '@services/dossiers/dossiers.service'; import { FilesService } from '@services/files/files.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; import { HttpEvent, HttpEventType, HttpProgressEvent, HttpResponse } from '@angular/common/http'; +import { TranslateService } from '@ngx-translate/core'; const ONE_MEGABYTE = 1024 * 1024; @@ -23,14 +24,6 @@ function getRemainingTime(event: HttpProgressEvent, startTime: number) { return Math.round(remaining / speed); } -function getRemainingTimeVerbose(event: HttpProgressEvent, startTime: number) { - const remainingTime = getRemainingTime(event, startTime); - if (remainingTime > 60) { - return `${Math.round(remainingTime / 60)} minutes`; - } - return `${remainingTime} seconds`; -} - function isDownload(event: HttpEvent): event is HttpProgressEvent { return event.type === HttpEventType.DownloadProgress && event.total > ONE_MEGABYTE; } @@ -62,6 +55,7 @@ export class FilePreviewStateService { private readonly _dossiersService: DossiersService, private readonly _fileManagementService: FileManagementService, private readonly _dictionaryService: DictionaryService, + private readonly _translateService: TranslateService, private readonly _loadingService: LoadingService, ) { const dossiersService = dossiersServiceResolver(_injector, router); @@ -112,6 +106,16 @@ export class FilePreviewStateService { this.#reloadBlob$.next(true); } + #getRemainingTimeVerbose(event: HttpProgressEvent, startTime: number) { + const remainingTime = getRemainingTime(event, startTime); + if (remainingTime > 60) { + const minutes: string = this._translateService.instant('minutes'); + return `${Math.round(remainingTime / 60)} ${minutes}`; + } + const seconds: string = this._translateService.instant('seconds'); + return `${remainingTime} ${seconds}`; + } + #dossierFilesChange$() { return this._dossiersService.dossierFileChanges$.pipe( filter(dossierId => dossierId === this.dossierId), @@ -144,11 +148,12 @@ export class FilePreviewStateService { #updateDownloadProgress(event: HttpProgressEvent, startTime: number) { const progress = Math.round((event.loaded / event.total) * 100); + const loading: string = this._translateService.instant('loading'); this._loadingService.update({ - title: 'Loading ' + this.file.filename, + title: loading + ' ' + this.file.filename, type: 'progress-bar', value: progress, - remainingTime: getRemainingTimeVerbose(event, startTime), + remainingTime: this.#getRemainingTimeVerbose(event, startTime), }); } } diff --git a/apps/red-ui/src/assets/i18n/de.json b/apps/red-ui/src/assets/i18n/de.json index 906a12370..4b61665dd 100644 --- a/apps/red-ui/src/assets/i18n/de.json +++ b/apps/red-ui/src/assets/i18n/de.json @@ -1598,6 +1598,7 @@ "usage-details": "Nutzungsdetails" }, "license-information": "Lizenzinformationen", + "loading": "", "manual-annotation": { "dialog": { "actions": { @@ -1631,6 +1632,7 @@ } } }, + "minutes": "", "notification": { "assign-approver": "Sie wurden dem Dokument {fileHref, select, null{{fileName}} other{{fileName}}} im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} als Genehmiger zugewiesen!", "assign-reviewer": "Sie wurden dem Dokument {fileHref, select, null{{fileName}} other{{fileName}}} im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} als Reviewer zugewiesen!", @@ -1925,6 +1927,7 @@ "placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen", "this-dossier": "in diesem Dossier" }, + "seconds": "", "size": "", "smtp-auth-config": { "actions": { diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 252ae9d1f..0ecc66a23 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -1598,6 +1598,7 @@ "usage-details": "Usage Details" }, "license-information": "License Information", + "loading": "Loading", "manual-annotation": { "dialog": { "actions": { @@ -1631,6 +1632,7 @@ } } }, + "minutes": "minutes", "notification": { "assign-approver": "You have been assigned as approver for {fileHref, select, null{{fileName}} other{{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "assign-reviewer": "You have been assigned as reviewer for {fileHref, select, null{{fileName}} other{{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", @@ -1925,6 +1927,7 @@ "placeholder": "Search documents...", "this-dossier": "in this dossier" }, + "seconds": "seconds", "size": "Size", "smtp-auth-config": { "actions": {