From 8ea1b00b610cb3bba25737a2af061b00c3320316 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Wed, 26 Jul 2023 11:42:00 +0300 Subject: [PATCH] DM-333: Removed more RedactManager-only features. --- .../reports-screen.component.ts | 3 +- .../admin-side-nav.component.ts | 2 +- .../dossier-details-stats.component.html | 1 + .../dossier-details-stats.component.ts | 2 + .../dossier-details.component.html | 2 +- .../table-item/table-item.component.html | 4 +- .../table-item/table-item.component.ts | 3 + .../dossier-overview/config.service.ts | 62 ++++++++++--------- .../table-item/table-item.component.html | 2 +- .../table-item/table-item.component.ts | 2 + .../dossiers-listing/config.service.ts | 54 +++++++++------- .../services/viewer-header.service.ts | 5 +- .../download-dialog.component.html | 2 +- .../download-dialog.component.ts | 15 +++-- 14 files changed, 93 insertions(+), 66 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts index 2a2ad7104..b2f827492 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts @@ -33,13 +33,12 @@ const placeholderTypes: PlaceholderType[] = ['generalPlaceholders', 'fileAttribu }) export class ReportsScreenComponent implements OnInit { @ViewChild('fileInput') private readonly _fileInput: ElementRef; - readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); readonly placeholders$ = new BehaviorSubject([]); readonly availableTemplates$ = new BehaviorSubject([]); readonly currentUser = getCurrentUser(); readonly roles = Roles; - readonly isDocumine = getConfig().IS_DOCUMINE; + readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); constructor( private readonly _reportTemplateService: ReportTemplateService, diff --git a/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts b/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts index d024a57d3..894b555fc 100644 --- a/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts +++ b/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts @@ -46,7 +46,7 @@ export class AdminSideNavComponent implements OnInit { { screen: 'digital-signature', label: _('admin-side-nav.digital-signature'), - show: this.currentUser.isAdmin && this._permissionsService.has(Roles.digitalSignature.read), + show: this.currentUser.isAdmin && this._permissionsService.has(Roles.digitalSignature.read) && !this.isDocumine, helpModeKey: 'digital_signature', }, { 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 7b0ccd4ab..698475809 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 @@ -37,6 +37,7 @@
diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.html b/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.html index 60d8510f2..395356335 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.html +++ b/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.html @@ -15,12 +15,12 @@
-
+
-
+
diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.ts index 3cce7aa73..83e6e3eea 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/components/table-item/table-item.component.ts @@ -1,5 +1,6 @@ import { Component, Input } from '@angular/core'; import { Dossier, File, IFileAttributeConfig } from '@red/domain'; +import { getConfig } from '@iqser/common-ui'; @Component({ selector: 'redaction-table-item [file] [dossier] [displayedAttributes] [dossierTemplateId]', @@ -11,4 +12,6 @@ export class TableItemComponent { @Input() dossier: Dossier; @Input() displayedAttributes: IFileAttributeConfig[]; @Input() dossierTemplateId: string; + + readonly isDocumine = getConfig().IS_DOCUMINE; } diff --git a/apps/red-ui/src/app/modules/dossier-overview/config.service.ts b/apps/red-ui/src/app/modules/dossier-overview/config.service.ts index 938b32f30..3f15e5c53 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/config.service.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/config.service.ts @@ -49,6 +49,7 @@ export class ConfigService { readonly #currentUser = getCurrentUser(); readonly #config = getConfig(); readonly #listingMode$: BehaviorSubject; + readonly #isDocumine = getConfig().IS_DOCUMINE; readonly listingMode$: Observable; constructor( @@ -126,7 +127,7 @@ export class ConfigService { label: config.label, notTranslatable: true, })); - return [ + const columns: TableColumnConfig[] = [ { label: _('dossier-overview.table-col-names.name'), sortByKey: 'searchKey', @@ -143,9 +144,6 @@ export class ConfigService { width: '2fr', }, ...dynamicColumns, - { - label: _('dossier-overview.table-col-names.needs-work'), - }, { label: _('dossier-overview.table-col-names.assigned-to'), class: 'user-column', @@ -162,6 +160,12 @@ export class ConfigService { sortByKey: 'statusSort', }, ]; + if (!this.#isDocumine) { + columns.splice(3 + displayedAttributes.length, 0, { + label: _('dossier-overview.table-col-names.needs-work'), + }); + } + return columns; } filterGroups( @@ -277,30 +281,32 @@ export class ConfigService { checker: keyChecker('assignee'), }); - const needsWorkFilters = [...allDistinctNeedsWork].map( - item => - new NestedFilter({ - id: item, - label: workloadTranslations[item], - metadata: { - shape: AnnotationShapeMap[item], - color$: - item === 'image' - ? this._dictionariesMapService.watch$(dossierTemplateId, item).pipe(map(e => e.hexColor)) - : this._defaultColorsService.getColor$(dossierTemplateId, annotationDefaultColorConfig[item]), - }, - }), - ); - needsWorkFilters.sort(RedactionFilterSorter.byKey); - filterGroups.push({ - slug: 'needsWorkFilters', - label: this._translateService.instant('filters.needs-work'), - icon: 'red:needs-work', - filterTemplate: needsWorkFilterTemplate, - filters: needsWorkFilters, - checker: (file: File, filter: INestedFilter) => annotationFilterChecker(file, filter, this._userService.currentUser.id), - matchAll: true, - }); + if (!this.#isDocumine) { + const needsWorkFilters = [...allDistinctNeedsWork].map( + item => + new NestedFilter({ + id: item, + label: workloadTranslations[item], + metadata: { + shape: AnnotationShapeMap[item], + color$: + item === 'image' + ? this._dictionariesMapService.watch$(dossierTemplateId, item).pipe(map(e => e.hexColor)) + : this._defaultColorsService.getColor$(dossierTemplateId, annotationDefaultColorConfig[item]), + }, + }), + ); + needsWorkFilters.sort(RedactionFilterSorter.byKey); + filterGroups.push({ + slug: 'needsWorkFilters', + label: this._translateService.instant('filters.needs-work'), + icon: 'red:needs-work', + filterTemplate: needsWorkFilterTemplate, + filters: needsWorkFilters, + checker: (file: File, filter: INestedFilter) => annotationFilterChecker(file, filter, this._userService.currentUser.id), + matchAll: true, + }); + } const processingTypesFilters = [...allDistinctProcessingTypes].map(item => new NestedFilter({ id: item, label: item })); filterGroups.push({ diff --git a/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html b/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html index e353a06f9..f9bb8e9bd 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html +++ b/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html @@ -7,7 +7,7 @@
-
+
diff --git a/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.ts index c9c3ab6dc..f47906c13 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.ts +++ b/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.ts @@ -3,6 +3,7 @@ import { Dossier, DossierStats } from '@red/domain'; import { DossierStatsService } from '@services/dossiers/dossier-stats.service'; import { BehaviorSubject, Observable } from 'rxjs'; import { switchMap, tap } from 'rxjs/operators'; +import { getConfig } from '@iqser/common-ui'; @Component({ selector: 'redaction-table-item [dossier]', @@ -14,6 +15,7 @@ export class TableItemComponent implements OnChanges { @Input() dossier!: Dossier; readonly stats$: Observable; + readonly isDocumine = getConfig().IS_DOCUMINE; readonly #ngOnChanges$ = new BehaviorSubject(undefined); constructor(readonly dossierStatsService: DossierStatsService) { diff --git a/apps/red-ui/src/app/modules/dossiers-listing/config.service.ts b/apps/red-ui/src/app/modules/dossiers-listing/config.service.ts index 277a5613f..5245afec3 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/config.service.ts +++ b/apps/red-ui/src/app/modules/dossiers-listing/config.service.ts @@ -1,5 +1,5 @@ import { Injectable, TemplateRef } from '@angular/core'; -import { ButtonConfig, TableColumnConfig } from '@iqser/common-ui'; +import { ButtonConfig, getConfig, TableColumnConfig } from '@iqser/common-ui'; import { annotationDefaultColorConfig, AnnotationShapeMap, @@ -31,6 +31,7 @@ import { IFilterGroup, INestedFilter, keyChecker, NestedFilter } from '@iqser/co @Injectable() export class ConfigService { + readonly #isDocumine = getConfig().IS_DOCUMINE; constructor( private readonly _translateService: TranslateService, private readonly _userPreferenceService: UserPreferenceService, @@ -43,14 +44,17 @@ export class ConfigService { ) {} get tableConfig(): TableColumnConfig[] { - return [ + const columns: TableColumnConfig[] = [ { label: _('dossier-listing.table-col-names.name'), sortByKey: 'searchKey', width: '2fr' }, { label: _('dossier-listing.table-col-names.last-modified'), sortByKey: 'changedDate' }, - { label: _('dossier-listing.table-col-names.needs-work') }, { label: _('dossier-listing.table-col-names.owner'), class: 'user-column' }, { label: _('dossier-listing.table-col-names.documents-status'), class: 'flex-end', width: 'auto' }, { label: _('dossier-listing.table-col-names.dossier-state'), class: 'flex-end' }, ]; + if (!this.#isDocumine) { + columns.splice(2, 0, { label: _('dossier-listing.table-col-names.needs-work') }); + } + return columns; } get _currentUser(): User { @@ -161,27 +165,29 @@ export class ConfigService { checker: dossierMemberChecker, }); - const needsWorkFilters = [...allDistinctNeedsWork].map( - type => - new NestedFilter({ - id: type, - label: workloadTranslations[type], - metadata: { - shape: AnnotationShapeMap[type], - color$: this._defaultColorsService.getColor$(dossierTemplateId, annotationDefaultColorConfig[type]), - }, - }), - ); - needsWorkFilters.sort((a, b) => RedactionFilterSorter[a.id] - RedactionFilterSorter[b.id]); - filterGroups.push({ - slug: 'needsWorkFilters', - label: this._translateService.instant('filters.needs-work'), - icon: 'red:needs-work', - filterTemplate: needsWorkFilterTemplate, - filters: needsWorkFilters, - checker: (dossier: Dossier, filter: INestedFilter) => this._annotationFilterChecker(dossier, filter), - matchAll: true, - }); + if (!this.#isDocumine) { + const needsWorkFilters = [...allDistinctNeedsWork].map( + type => + new NestedFilter({ + id: type, + label: workloadTranslations[type], + metadata: { + shape: AnnotationShapeMap[type], + color$: this._defaultColorsService.getColor$(dossierTemplateId, annotationDefaultColorConfig[type]), + }, + }), + ); + needsWorkFilters.sort((a, b) => RedactionFilterSorter[a.id] - RedactionFilterSorter[b.id]); + filterGroups.push({ + slug: 'needsWorkFilters', + label: this._translateService.instant('filters.needs-work'), + icon: 'red:needs-work', + filterTemplate: needsWorkFilterTemplate, + filters: needsWorkFilters, + checker: (dossier: Dossier, filter: INestedFilter) => this._annotationFilterChecker(dossier, filter), + matchAll: true, + }); + } filterGroups.push({ slug: 'quickFilters', diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts index 30a65c431..4e9a18089 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts @@ -2,7 +2,7 @@ import { inject, Injectable, NgZone } from '@angular/core'; import { IHeaderElement, RotationTypes } from '@red/domain'; import { HeaderElements, HeaderElementType } from '../../file-preview/utils/constants'; import { TranslateService } from '@ngx-translate/core'; -import { IqserPermissionsService } from '@iqser/common-ui'; +import { getConfig, IqserPermissionsService } from '@iqser/common-ui'; import { TooltipsService } from './tooltips.service'; import { PageRotationService } from './page-rotation.service'; import { PdfViewer } from './pdf-viewer.service'; @@ -24,13 +24,14 @@ const divider: IHeaderElement = { export class ViewerHeaderService { readonly #convertPath = inject(BASE_HREF_FN); readonly #iqserPermissionService = inject(IqserPermissionsService); + readonly #isDocumine = getConfig().IS_DOCUMINE; #buttons: Map; readonly #config = new Map([ [HeaderElements.SHAPE_TOOL_GROUP_BUTTON, !this.#iqserPermissionService.has(Roles.getRss)], [HeaderElements.TOGGLE_TOOLTIPS, true], [HeaderElements.TOGGLE_READABLE_REDACTIONS, false], [HeaderElements.LOAD_ALL_ANNOTATIONS, false], - [HeaderElements.COMPARE_BUTTON, true], + [HeaderElements.COMPARE_BUTTON, !this.#isDocumine], [HeaderElements.CLOSE_COMPARE_BUTTON, false], [HeaderElements.ROTATE_LEFT_BUTTON, false], [HeaderElements.ROTATE_RIGHT_BUTTON, false], diff --git a/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.html b/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.html index 6861753e3..4a4193cb3 100644 --- a/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.html +++ b/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.html @@ -1,7 +1,7 @@
-
+
diff --git a/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts index 48923e221..a74201928 100644 --- a/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts @@ -4,7 +4,14 @@ import { downloadTypesForDownloadTranslations } from '@translations/download-typ import { ReportTemplateService } from '@services/report-template.service'; import { AbstractControl, FormBuilder, ReactiveFormsModule } from '@angular/forms'; import { DefaultColorsService } from '@services/entity-services/default-colors.service'; -import { CircleButtonComponent, IconButtonComponent, IconButtonTypes, IqserDenyDirective, IqserDialogComponent } from '@iqser/common-ui'; +import { + CircleButtonComponent, + getConfig, + IconButtonComponent, + IconButtonTypes, + IqserDenyDirective, + IqserDialogComponent, +} from '@iqser/common-ui'; import { Roles } from '@users/roles'; import { List } from '@iqser/common-ui/lib/utils'; import { NGXLogger } from 'ngx-logger'; @@ -43,15 +50,15 @@ export interface DownloadDialogResult { ], }) export class DownloadDialogComponent extends IqserDialogComponent { - readonly #logger = inject(NGXLogger); readonly iconButtonTypes = IconButtonTypes; readonly hasApprovedFiles: boolean; readonly downloadTypes: { key: DownloadFileType; label: string }[]; readonly availableReportTypes = this.#availableReportTypes; readonly form = this.#getForm(); - - initialFormValue = this.form.getRawValue(); + readonly isDocumine = getConfig().IS_DOCUMINE; readonly roles = Roles; + initialFormValue = this.form.getRawValue(); + readonly #logger = inject(NGXLogger); constructor( private readonly _defaultColorsService: DefaultColorsService,