From b7ff80ecacf9e57716b2c05f606729a01b9a1b5f Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Thu, 17 Oct 2024 18:02:05 +0300 Subject: [PATCH] RED-10139: removed getters from template and component refactoring. for dossier overview. --- ...ssier-overview-bulk-actions.component.html | 20 +- ...dossier-overview-bulk-actions.component.ts | 97 +++++----- .../dossier-details-stats.component.html | 120 ++++++------ .../dossier-details-stats.component.ts | 20 +- .../dossier-details.component.html | 119 ++++++------ .../dossier-details.component.ts | 20 +- .../file-attribute.component.html | 171 +++++++++--------- .../file-attribute.component.ts | 160 ++++++++-------- ...sier-overview-screen-header.component.html | 61 ++++--- ...ossier-overview-screen-header.component.ts | 20 +- .../file-workload.component.html | 42 +++-- .../file-workload/file-workload.component.ts | 6 +- .../table-item/table-item.component.html | 106 ++++++----- .../table-item/table-item.component.ts | 13 +- .../view-mode-selection.component.html | 40 ++-- .../view-mode-selection.component.ts | 4 +- .../workflow-item.component.html | 41 +++-- .../workflow-item/workflow-item.component.ts | 13 +- .../dossier-overview-screen.component.html | 114 ++++++------ .../dossier-overview-screen.component.ts | 11 +- .../edit-redaction-dialog.component.ts | 23 +-- .../expandable-file-actions.component.html | 20 +- .../expandable-file-actions.component.ts | 64 ++++--- apps/red-ui/src/app/users/user.service.ts | 2 + 24 files changed, 671 insertions(+), 636 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.html b/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.html index 3f4b3facf..e3504ee9b 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.html +++ b/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.html @@ -1,9 +1,11 @@ - - - - +@if (selectedFiles().length) { + + + + +} diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts b/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts index 52fcb2097..32aab9f3e 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/components/bulk-actions/dossier-overview-bulk-actions.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnChanges } from '@angular/core'; +import { Component, input, OnChanges } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { CircleButtonType, CircleButtonTypes } from '@iqser/common-ui'; import { Action, ActionTypes, Dossier, File, ProcessingFileStatuses } from '@red/domain'; @@ -8,14 +8,13 @@ import { UserPreferenceService } from '@users/user-preference.service'; import { BulkActionsService } from '../../services/bulk-actions.service'; import { ExpandableFileActionsComponent } from '@shared/components/expandable-file-actions/expandable-file-actions.component'; import { IqserTooltipPositions } from '@common-ui/utils'; -import { NgIf } from '@angular/common'; @Component({ selector: 'redaction-dossier-overview-bulk-actions [dossier] [selectedFiles]', templateUrl: './dossier-overview-bulk-actions.component.html', styleUrls: ['./dossier-overview-bulk-actions.component.scss'], standalone: true, - imports: [LongPressDirective, ExpandableFileActionsComponent, NgIf], + imports: [LongPressDirective, ExpandableFileActionsComponent], }) export class DossierOverviewBulkActionsComponent implements OnChanges { #analysisForced: boolean; @@ -37,10 +36,10 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { #toggleAnalysisTooltip: string; #allFilesAreExcluded: boolean; #canMoveToSameState: boolean; - @Input() dossier: Dossier; - @Input() selectedFiles: File[]; - @Input() buttonType: CircleButtonType = CircleButtonTypes.default; - @Input() maxWidth: number; + readonly dossier = input(); + readonly selectedFiles = input(); + readonly buttonType = input(CircleButtonTypes.default); + readonly maxWidth = input(); buttons: Action[]; readonly IqserTooltipPositions = IqserTooltipPositions; @@ -50,12 +49,12 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { private readonly _bulkActionsService: BulkActionsService, ) {} - private get _buttons(): Action[] { + get #buttons(): Action[] { const actions: Action[] = [ { id: 'delete-files-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.delete(this.selectedFiles), + action: () => this._bulkActionsService.delete(this.selectedFiles()), tooltip: _('dossier-overview.bulk.delete'), icon: 'iqser:trash', show: this.#canDelete, @@ -63,7 +62,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'assign-files-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.assign(this.selectedFiles), + action: () => this._bulkActionsService.assign(this.selectedFiles()), tooltip: this.#assignTooltip, icon: 'red:assign', show: this.#canAssign, @@ -71,7 +70,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'assign-files-to-me-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.assignToMe(this.selectedFiles), + action: () => this._bulkActionsService.assignToMe(this.selectedFiles()), tooltip: _('dossier-overview.assign-me'), icon: 'red:assign-me', show: this.#canAssignToSelf, @@ -79,7 +78,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'to-new-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.setToNew(this.selectedFiles), + action: () => this._bulkActionsService.setToNew(this.selectedFiles()), tooltip: _('dossier-overview.back-to-new'), icon: 'red:undo', show: this.#canSetToNew, @@ -87,7 +86,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'to-under-approval-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.setToUnderApproval(this.selectedFiles), + action: () => this._bulkActionsService.setToUnderApproval(this.selectedFiles()), tooltip: _('dossier-overview.under-approval'), icon: 'red:ready-for-approval', show: this.#canSetToUnderApproval, @@ -95,7 +94,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'to-under-review-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.backToUnderReview(this.selectedFiles), + action: () => this._bulkActionsService.backToUnderReview(this.selectedFiles()), tooltip: _('dossier-overview.under-review'), icon: 'red:undo', show: this.#canSetToUnderReview, @@ -103,14 +102,14 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'download-files-btn', type: ActionTypes.downloadBtn, - show: !this.selectedFiles.some(file => file.processingStatus === ProcessingFileStatuses.ERROR || !file.lastProcessed), - files: this.selectedFiles, - dossier: this.dossier, + show: !this.selectedFiles().some(file => file.processingStatus === ProcessingFileStatuses.ERROR || !file.lastProcessed), + files: this.selectedFiles(), + dossier: this.dossier(), }, { id: 'approve-files-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.approve(this.selectedFiles), + action: () => this._bulkActionsService.approve(this.selectedFiles()), disabled: !this.#canApprove, tooltip: this.#canApprove ? _('dossier-overview.approve') : _('dossier-overview.approve-disabled'), icon: 'red:approved', @@ -119,7 +118,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'set-under-approval-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.setToUnderApproval(this.selectedFiles), + action: () => this._bulkActionsService.setToUnderApproval(this.selectedFiles()), tooltip: _('dossier-overview.under-approval'), icon: 'red:undo', show: this.#canUndoApproval, @@ -127,7 +126,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'ocr-files-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.ocr(this.selectedFiles), + action: () => this._bulkActionsService.ocr(this.selectedFiles()), tooltip: _('dossier-overview.ocr-file'), icon: 'iqser:ocr', show: this.#canOcr, @@ -135,17 +134,17 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'reanalyse-files-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.reanalyse(this.selectedFiles), + action: () => this._bulkActionsService.reanalyse(this.selectedFiles()), tooltip: _('dossier-overview.bulk.reanalyse'), icon: 'iqser:refresh', show: this.#canReanalyse && - (this.#analysisForced || this.#canEnableAutoAnalysis || this.selectedFiles.every(file => file.isError)), + (this.#analysisForced || this.#canEnableAutoAnalysis || this.selectedFiles().every(file => file.isError)), }, { id: 'stop-automatic-analysis-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.toggleAutomaticAnalysis(this.selectedFiles), + action: () => this._bulkActionsService.toggleAutomaticAnalysis(this.selectedFiles()), tooltip: _('dossier-overview.stop-auto-analysis'), icon: 'red:disable-analysis', show: this.#canDisableAutoAnalysis, @@ -153,7 +152,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'start-automatic-analysis-btn', type: ActionTypes.circleBtn, - action: () => this._bulkActionsService.toggleAutomaticAnalysis(this.selectedFiles), + action: () => this._bulkActionsService.toggleAutomaticAnalysis(this.selectedFiles()), tooltip: _('dossier-overview.start-auto-analysis'), icon: 'red:enable-analysis', show: this.#canEnableAutoAnalysis, @@ -161,7 +160,7 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { { id: 'toggle-analysis-btn', type: ActionTypes.toggle, - action: () => this._bulkActionsService.toggleAnalysis(this.selectedFiles, !this.#allFilesAreExcluded), + action: () => this._bulkActionsService.toggleAnalysis(this.selectedFiles(), !this.#allFilesAreExcluded), tooltip: this.#toggleAnalysisTooltip, checked: !this.#allFilesAreExcluded, show: this.#canToggleAnalysis, @@ -172,56 +171,56 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { } ngOnChanges() { - this._setup(); + this.#setup(); } forceReanalysisAction($event: LongPressEvent) { this.#analysisForced = !$event.touchEnd && this._userPreferenceService.isIqserDevMode; - this._setup(); + this.#setup(); } - private _setup() { - if (!this.selectedFiles.length) { + #setup() { + if (!this.selectedFiles().length) { return; } - const allFilesAreUnderReviewOrUnassigned = this.selectedFiles.reduce( + const allFilesAreUnderReviewOrUnassigned = this.selectedFiles().reduce( (acc, file) => acc && (file.isUnderReview || file.isNew), true, ); - const allFilesAreUnderApproval = this.selectedFiles.reduce((acc, file) => acc && file.isUnderApproval, true); - const allFilesAreApproved = this.selectedFiles.reduce((acc, file) => acc && file.isApproved, true); - this.#allFilesAreExcluded = this.selectedFiles.reduce((acc, file) => acc && file.excluded, true); + const allFilesAreUnderApproval = this.selectedFiles().reduce((acc, file) => acc && file.isUnderApproval, true); + const allFilesAreApproved = this.selectedFiles().reduce((acc, file) => acc && file.isApproved, true); + this.#allFilesAreExcluded = this.selectedFiles().reduce((acc, file) => acc && file.excluded, true); this.#canMoveToSameState = allFilesAreUnderReviewOrUnassigned || allFilesAreUnderApproval || allFilesAreApproved; this.#canAssign = this.#canMoveToSameState && - (this._permissionsService.canAssignUser(this.selectedFiles, this.dossier) || - this._permissionsService.canUnassignUser(this.selectedFiles, this.dossier)); - this.#canAssignToSelf = this.#canMoveToSameState && this._permissionsService.canAssignToSelf(this.selectedFiles, this.dossier); + (this._permissionsService.canAssignUser(this.selectedFiles(), this.dossier()) || + this._permissionsService.canUnassignUser(this.selectedFiles(), this.dossier())); + this.#canAssignToSelf = this.#canMoveToSameState && this._permissionsService.canAssignToSelf(this.selectedFiles(), this.dossier()); - this.#canDelete = this._permissionsService.canSoftDeleteFile(this.selectedFiles, this.dossier); + this.#canDelete = this._permissionsService.canSoftDeleteFile(this.selectedFiles(), this.dossier()); - this.#canReanalyse = this._permissionsService.canReanalyseFile(this.selectedFiles, this.dossier); + this.#canReanalyse = this._permissionsService.canReanalyseFile(this.selectedFiles(), this.dossier()); - this.#canDisableAutoAnalysis = this._permissionsService.canDisableAutoAnalysis(this.selectedFiles, this.dossier); + this.#canDisableAutoAnalysis = this._permissionsService.canDisableAutoAnalysis(this.selectedFiles(), this.dossier()); - this.#canEnableAutoAnalysis = this._permissionsService.canEnableAutoAnalysis(this.selectedFiles, this.dossier); + this.#canEnableAutoAnalysis = this._permissionsService.canEnableAutoAnalysis(this.selectedFiles(), this.dossier()); - this.#canToggleAnalysis = this._permissionsService.canToggleAnalysis(this.selectedFiles, this.dossier); + this.#canToggleAnalysis = this._permissionsService.canToggleAnalysis(this.selectedFiles(), this.dossier()); - this.#canOcr = this._permissionsService.canOcrFile(this.selectedFiles, this.dossier); + this.#canOcr = this._permissionsService.canOcrFile(this.selectedFiles(), this.dossier()); - this.#canSetToNew = this._permissionsService.canSetToNew(this.selectedFiles, this.dossier); + this.#canSetToNew = this._permissionsService.canSetToNew(this.selectedFiles(), this.dossier()); - this.#canSetToUnderReview = this._permissionsService.canSetUnderReview(this.selectedFiles, this.dossier); + this.#canSetToUnderReview = this._permissionsService.canSetUnderReview(this.selectedFiles(), this.dossier()); - this.#canSetToUnderApproval = this._permissionsService.canSetUnderApproval(this.selectedFiles, this.dossier); + this.#canSetToUnderApproval = this._permissionsService.canSetUnderApproval(this.selectedFiles(), this.dossier()); - this.#isReadyForApproval = this._permissionsService.isReadyForApproval(this.selectedFiles, this.dossier); + this.#isReadyForApproval = this._permissionsService.isReadyForApproval(this.selectedFiles(), this.dossier()); - this.#canApprove = this._permissionsService.canBeApproved(this.selectedFiles, this.dossier); + this.#canApprove = this._permissionsService.canBeApproved(this.selectedFiles(), this.dossier()); - this.#canUndoApproval = this._permissionsService.canUndoApproval(this.selectedFiles, this.dossier); + this.#canUndoApproval = this._permissionsService.canUndoApproval(this.selectedFiles(), this.dossier()); this.#assignTooltip = allFilesAreUnderApproval ? _('dossier-overview.assign-approver') : _('dossier-overview.assign-reviewer'); @@ -229,6 +228,6 @@ export class DossierOverviewBulkActionsComponent implements OnChanges { ? _('file-preview.toggle-analysis.enable') : _('file-preview.toggle-analysis.disable'); - this.buttons = this._buttons; + this.buttons = this.#buttons; } } diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html b/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html index 964c708b6..8392177f1 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html +++ b/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.html @@ -1,81 +1,97 @@ - +@if (dossierStats$ | async; as stats) {
- {{ 'dossier-overview.dossier-details.stats.documents' | translate : { count: stats.numberOfFiles } }} + {{ 'dossier-overview.dossier-details.stats.documents' | translate: { count: stats.numberOfFiles } }}
-
- - {{ - 'dossier-overview.dossier-details.stats.processing-documents' | translate : { count: stats.numberOfProcessingFiles } - }} -
+ @if (stats.numberOfProcessingFiles) { +
+ + {{ + 'dossier-overview.dossier-details.stats.processing-documents' | translate: { count: stats.numberOfProcessingFiles } + }} +
+ }
- {{ 'dossier-overview.dossier-details.stats.people' | translate : { count: dossier.memberIds.length } }} + {{ 'dossier-overview.dossier-details.stats.people' | translate: { count: dossier().memberIds.length } }}
- {{ 'dossier-overview.dossier-details.stats.analysed-pages' | translate : { count: stats.numberOfPages | number } }} + {{ 'dossier-overview.dossier-details.stats.analysed-pages' | translate: { count: stats.numberOfPages | number } }}
-
- - -
+ @if (dossier().date | date: 'd MMM yyyy'; as date) { +
+ + +
+ } -
- - -
+ @if (dossier().dueDate | date: 'd MMM yyyy'; as dueDate) { +
+ + +
+ }
{{ dossierTemplateName }}
- + @if (!isDocumine) { + + }
- {{ 'dossier-overview.dossier-details.stats.deleted' | translate : { count: stats.numberOfSoftDeletedFiles } }} + {{ 'dossier-overview.dossier-details.stats.deleted' | translate: { count: stats.numberOfSoftDeletedFiles } }}
-
+} - -
- {{ 'dossier-overview.dossier-details.attributes.expand' | translate : { count: dossierAttributes.length } }} -
- -
-