Some permissions

This commit is contained in:
Adina Țeudan 2022-02-23 00:06:01 +02:00
parent e50b5bd567
commit 4e120e8a13
10 changed files with 33 additions and 29 deletions

View File

@ -69,7 +69,7 @@
<mat-checkbox
(change)="hasDueDate = !hasDueDate"
[checked]="hasDueDate"
[disabled]="!permissionsService.canEditDossier(dossier)"
[disabled]="form.get('dueDate').disabled"
class="filter-menu-checkbox"
color="primary"
>

View File

@ -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],
});

View File

@ -1,5 +1,5 @@
<iqser-page-header
(closeAction)="routerHistoryService.navigateToLastDossiersScreen()"
(closeAction)="router.navigate(['/main', dossiersService.routerPath])"
[actionConfigs]="actionConfigs"
[helpModeKey]="'document'"
[showCloseButton]="true"
@ -8,8 +8,8 @@
<redaction-file-download-btn
[disabled]="listingService.areSomeSelected$ | async"
[files]="entitiesService.all$ | async"
tooltipPosition="below"
iqserHelpMode="edit_dossier_in_dossier"
tooltipPosition="below"
></redaction-file-download-btn>
<iqser-circle-button
@ -17,8 +17,8 @@
[disabled]="listingService.areSomeSelected$ | async"
[tooltip]="'dossier-overview.header-actions.download-csv' | translate"
icon="iqser:csv"
tooltipPosition="below"
iqserHelpMode="edit_dossier_in_dossier"
tooltipPosition="below"
></iqser-circle-button>
<iqser-circle-button
@ -34,12 +34,13 @@
<iqser-circle-button
(action)="upload.emit()"
*ngIf="permissionsService.canUploadFiles(dossier)"
[tooltip]="'dossier-overview.header-actions.upload-document' | translate"
[type]="circleButtonTypes.primary"
class="ml-14"
icon="iqser:upload"
tooltipPosition="below"
iqserHelpMode="edit_dossier_in_dossier"
tooltipPosition="below"
></iqser-circle-button>
</iqser-page-header>

View File

@ -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<void>();
@ -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<File>,
readonly sortingService: SortingService<File>,
readonly permissionsService: PermissionsService,
readonly entitiesService: EntitiesService<File>,
readonly routerHistoryService: RouterHistoryService,
private readonly _reanalysisService: ReanalysisService,
private readonly _loadingService: LoadingService,
private readonly _primaryFileAttributeService: PrimaryFileAttributeService,

View File

@ -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,

View File

@ -1,10 +1,10 @@
<ng-container *ngIf="dossier$ | async as dossier">
<section (longPress)="forceReanalysisAction($event)" redactionLongPress>
<redaction-screen-header
<redaction-dossier-overview-screen-header
(upload)="fileInput.click()"
[analysisForced]="analysisForced"
[dossier]="dossier"
></redaction-screen-header>
></redaction-dossier-overview-screen-header>
<div class="overlay-shadow"></div>
@ -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"

View File

@ -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;

View File

@ -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 {

View File

@ -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."