From 4e120e8a1328daa1d3cd8227d7615bace374b5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 23 Feb 2022 00:06:01 +0200 Subject: [PATCH] Some permissions --- .../edit-dossier-general-info.component.html | 2 +- .../edit-dossier-general-info.component.ts | 11 ++++++----- ... dossier-overview-screen-header.component.html} | 9 +++++---- ... dossier-overview-screen-header.component.scss} | 0 ...=> dossier-overview-screen-header.component.ts} | 14 ++++++++------ .../dossier-overview/dossier-overview.module.ts | 4 ++-- .../screen/dossier-overview-screen.component.html | 6 +++--- .../dossiers-listing-dossier-name.component.ts | 6 +----- .../red-ui/src/app/services/permissions.service.ts | 8 ++++++-- apps/red-ui/src/assets/i18n/en.json | 2 +- 10 files changed, 33 insertions(+), 29 deletions(-) rename apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/{screen-header.component.html => dossier-overview-screen-header.component.html} (92%) rename apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/{screen-header.component.scss => dossier-overview-screen-header.component.scss} (100%) rename apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/{screen-header.component.ts => dossier-overview-screen-header.component.ts} (88%) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.html index dc5f3cd46..80428ebdb 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.html @@ -69,7 +69,7 @@ diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts index 5062d6720..7ea5e5616 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts @@ -154,18 +154,19 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti } #getForm(): FormGroup { + const formFieldWithArchivedCheck = value => ({ value, disabled: !!this.dossier.archivedTime }); return this._formBuilder.group({ - dossierName: [this.dossier.dossierName, Validators.required], + dossierName: [formFieldWithArchivedCheck(this.dossier.dossierName), Validators.required], dossierTemplateId: [ { value: this.dossier.dossierTemplateId, - disabled: this._dossierStatsService.get(this.dossier.dossierId).hasFiles, + disabled: this._dossierStatsService.get(this.dossier.dossierId).hasFiles || !!this.dossier.archivedTime, }, Validators.required, ], - dossierStatusId: [this.dossier.dossierStatusId], - description: [this.dossier.description], - dueDate: [this.dossier.dueDate], + dossierStatusId: [formFieldWithArchivedCheck(this.dossier.dossierStatusId)], + description: [formFieldWithArchivedCheck(this.dossier.description)], + dueDate: [formFieldWithArchivedCheck(this.dossier.dueDate)], watermarkEnabled: [this.dossier.watermarkEnabled], watermarkPreviewEnabled: [this.dossier.watermarkPreviewEnabled], }); diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.html b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html similarity index 92% rename from apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.html rename to apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html index 9ca29d0ab..89d79f89b 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html @@ -1,5 +1,5 @@ diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.scss b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.scss similarity index 100% rename from apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.scss rename to apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.scss diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts similarity index 88% rename from apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.ts rename to apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts index 866bf824b..5a3024c5d 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/screen-header.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts @@ -1,5 +1,4 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; -import { RouterHistoryService } from '@services/router-history.service'; import { ActionConfig, CircleButtonTypes, @@ -21,14 +20,16 @@ import { UserService } from '@services/user.service'; import { ConfigService } from '../../config.service'; import { firstValueFrom } from 'rxjs'; import { PrimaryFileAttributeService } from '../../../../../../services/primary-file-attribute.service'; +import { Router } from '@angular/router'; +import { DossiersService } from '@services/entity-services/dossiers.service'; @Component({ - selector: 'redaction-screen-header', - templateUrl: './screen-header.component.html', - styleUrls: ['./screen-header.component.scss'], + selector: 'redaction-dossier-overview-screen-header', + templateUrl: './dossier-overview-screen-header.component.html', + styleUrls: ['./dossier-overview-screen-header.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class ScreenHeaderComponent implements OnInit { +export class DossierOverviewScreenHeaderComponent implements OnInit { @Input() @Required() dossier: Dossier; @Input() @Required() analysisForced: boolean; @Output() @Required() readonly upload = new EventEmitter(); @@ -38,12 +39,13 @@ export class ScreenHeaderComponent implements OnInit { constructor( private readonly _toaster: Toaster, readonly configService: ConfigService, + readonly router: Router, + readonly dossiersService: DossiersService, private readonly _userService: UserService, readonly listingService: ListingService, readonly sortingService: SortingService, readonly permissionsService: PermissionsService, readonly entitiesService: EntitiesService, - readonly routerHistoryService: RouterHistoryService, private readonly _reanalysisService: ReanalysisService, private readonly _loadingService: LoadingService, private readonly _primaryFileAttributeService: PrimaryFileAttributeService, diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts index 752e28458..ec41f0468 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts @@ -13,7 +13,7 @@ import { SharedDossiersModule } from '../../shared/shared-dossiers.module'; import { FileWorkloadComponent } from './components/table-item/file-workload/file-workload.component'; import { FileStatsComponent } from './components/file-stats/file-stats.component'; import { WorkflowItemComponent } from './components/workflow-item/workflow-item.component'; -import { ScreenHeaderComponent } from './components/screen-header/screen-header.component'; +import { DossierOverviewScreenHeaderComponent } from './components/screen-header/dossier-overview-screen-header.component'; import { ViewModeSelectionComponent } from './components/view-mode-selection/view-mode-selection.component'; import { FileNameColumnComponent } from './components/table-item/file-name-column/file-name-column.component'; import { DateColumnComponent } from './components/table-item/date-column/date-column.component'; @@ -39,7 +39,7 @@ const routes: Routes = [ TableItemComponent, FileStatsComponent, WorkflowItemComponent, - ScreenHeaderComponent, + DossierOverviewScreenHeaderComponent, ViewModeSelectionComponent, FileNameColumnComponent, DateColumnComponent, diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.html b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.html index 7074f226c..2a26b54d5 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.html +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.html @@ -1,10 +1,10 @@
- + >
@@ -22,7 +22,7 @@ [noDataText]="'dossier-overview.no-data.title' | translate" [noMatchText]="'dossier-overview.no-match.title' | translate" [selectionEnabled]="true" - [showNoDataButton]="true" + [showNoDataButton]="permissionsService.canUploadFiles(dossier)" [tableColumnConfigs]="tableColumnConfigs" [tableItemClasses]="{ disabled: disabledFn, 'last-opened': lastOpenedFn }" helpModeKey="document-list" diff --git a/apps/red-ui/src/app/modules/shared/components/dossiers-listing-dossier-name/dossiers-listing-dossier-name.component.ts b/apps/red-ui/src/app/modules/shared/components/dossiers-listing-dossier-name/dossiers-listing-dossier-name.component.ts index 82789c4dc..fab9ad4de 100644 --- a/apps/red-ui/src/app/modules/shared/components/dossiers-listing-dossier-name/dossiers-listing-dossier-name.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/dossiers-listing-dossier-name/dossiers-listing-dossier-name.component.ts @@ -1,7 +1,6 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { Dossier, DossierStats } from '@red/domain'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; -import { ActiveDossiersService } from '@services/entity-services/active-dossiers.service'; import * as moment from 'moment'; const DUE_DATE_WARN_DAYS = 14; @@ -16,10 +15,7 @@ export class DossiersListingDossierNameComponent { @Input() dossier: Dossier; @Input() dossierStats: DossierStats; - constructor( - private readonly _dossierTemplatesService: DossierTemplatesService, - private readonly _activeDossiersService: ActiveDossiersService, - ) {} + constructor(private readonly _dossierTemplatesService: DossierTemplatesService) {} get approachingDueDate(): boolean { return this._dueDateDaysDiff >= 0 && this._dueDateDaysDiff <= DUE_DATE_WARN_DAYS; diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index 3298ccb55..f7193515a 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -23,7 +23,11 @@ export class PermissionsService { } displayReanalyseBtn(dossier: Dossier): boolean { - return this.isApprover(dossier); + return !dossier.archivedTime && this.isApprover(dossier); + } + + canUploadFiles(dossier: Dossier): boolean { + return !dossier.archivedTime; } canEditFileAttributes(file: File): boolean { @@ -142,7 +146,7 @@ export class PermissionsService { } canArchiveDossier(dossier: IDossier): boolean { - return dossier.ownerId === this._userService.currentUser.id; + return !dossier.archivedTime && dossier.ownerId === this._userService.currentUser.id; } canEditDossier(dossier: Dossier, user = this._userService.currentUser): boolean { diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 3cc5b2d29..701824728 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -823,7 +823,7 @@ }, "no-data": { "action": "Upload Document", - "title": "There are no documents yet." + "title": "There are no documents in this dossier." }, "no-match": { "title": "No documents match your current filters."