-
-
+
diff --git a/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.html b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.html
new file mode 100644
index 000000000..8858acbf1
--- /dev/null
+++ b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.html
@@ -0,0 +1,11 @@
+
+
+
+
+{{ numberOfOCRedPages / numberOfPagesToOCR | percent: '0.0-0' }}
diff --git a/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.scss b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.scss
new file mode 100644
index 000000000..b7ca8fa44
--- /dev/null
+++ b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.scss
@@ -0,0 +1,3 @@
+:host {
+ display: contents;
+}
diff --git a/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts
new file mode 100644
index 000000000..0dffab4c7
--- /dev/null
+++ b/apps/red-ui/src/app/modules/shared/components/ocr-progress-bar/ocr-progress-bar.component.ts
@@ -0,0 +1,14 @@
+import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
+
+@Component({
+ selector: 'redaction-ocr-progress-bar',
+ templateUrl: './ocr-progress-bar.component.html',
+ styleUrls: ['./ocr-progress-bar.component.scss'],
+ changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class OcrProgressBarComponent {
+ @Input() numberOfPagesToOCR: number;
+ @Input() numberOfOCRedPages: number;
+ @Input() showLabel = false;
+ @Input() progressColor: 'white' | 'primary' = 'white';
+}
diff --git a/apps/red-ui/src/app/modules/shared/shared.module.ts b/apps/red-ui/src/app/modules/shared/shared.module.ts
index a7488077c..5431acdaa 100644
--- a/apps/red-ui/src/app/modules/shared/shared.module.ts
+++ b/apps/red-ui/src/app/modules/shared/shared.module.ts
@@ -34,6 +34,7 @@ import { SharedDialogService } from './services/dialog.service';
import { AddEditEntityComponent } from './components/add-edit-entity/add-edit-entity.component';
import { ColorPickerModule } from 'ngx-color-picker';
import { WatermarkSelectorComponent } from './components/dossier-watermark-selector/watermark-selector.component';
+import { OcrProgressBarComponent } from './components/ocr-progress-bar/ocr-progress-bar.component';
const buttons = [FileDownloadBtnComponent];
@@ -56,6 +57,7 @@ const components = [
AddDossierDialogComponent,
WatermarkSelectorComponent,
AddEditEntityComponent,
+ OcrProgressBarComponent,
...buttons,
];
diff --git a/libs/red-domain/src/lib/files/file.model.ts b/libs/red-domain/src/lib/files/file.model.ts
index 516a3705a..9502e5323 100644
--- a/libs/red-domain/src/lib/files/file.model.ts
+++ b/libs/red-domain/src/lib/files/file.model.ts
@@ -129,8 +129,8 @@ export class File extends Entity implements IFile {
this.hasHighlights = file.hasHighlights;
this.dossierArchived = file.dossierArchived;
this.dossierTemplateId = file.dossierTemplateId;
- this.numberOfPagesToOCR = file.numberOfPagesToOCR;
- this.numberOfOCRedPages = file.numberOfOCRedPages;
+ this.numberOfPagesToOCR = file.numberOfPagesToOCR ?? 0;
+ this.numberOfOCRedPages = file.numberOfOCRedPages ?? 0;
this.statusSort = StatusSorter[this.workflowStatus];
this.cacheIdentifier = btoa(this.fileManipulationDate ?? '');