Some permissions
This commit is contained in:
parent
e50b5bd567
commit
4e120e8a13
@ -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"
|
||||
>
|
||||
|
||||
@ -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],
|
||||
});
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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,
|
||||
@ -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,
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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."
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user