diff --git a/src/frontend/app/administration/administration.module.ts b/src/frontend/app/administration/administration.module.ts index 7972f475719ba708d7abc3e0ef338efa2908b8fd..02f3c146982393e7f74583b7a03751ffb0182659 100755 --- a/src/frontend/app/administration/administration.module.ts +++ b/src/frontend/app/administration/administration.module.ts @@ -76,6 +76,7 @@ import { IssuingSiteComponent } from './registered-mail/issuing-site/issuing-sit import { RegisteredMailListComponent } from './registered-mail/registered-mail-list.component'; import { SearchAdministrationComponent } from './search/search-administration.component'; import { SsoAdministrationComponent } from './connection/sso/sso-administration.component'; +import { LifeCycleComponent } from './parameter/lifeCycle/life-cycle.component'; @NgModule({ @@ -160,7 +161,8 @@ import { SsoAdministrationComponent } from './connection/sso/sso-administration. IssuingSiteComponent, RegisteredMailListComponent, SearchAdministrationComponent, - SsoAdministrationComponent + SsoAdministrationComponent, + LifeCycleComponent ], entryComponents: [ AccountLinkComponent, diff --git a/src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.html b/src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.html new file mode 100644 index 0000000000000000000000000000000000000000..01ac7bf38da41c81cf85cbad74d160cbdba82e55 --- /dev/null +++ b/src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.html @@ -0,0 +1,19 @@ +<mat-form-field appearance="outline"> + <mat-label>{{'lang.bindingDocumentFinalAction' | translate}}</mat-label> + <mat-select [(ngModel)]="bindingDocumentFinalAction.param_value_string" title="{{'lang.bindingDocumentFinalAction' | translate}}"> + <mat-option *ngFor="let item of finalActionValues" [value]="item"> + {{ 'lang.' + item | translate}} + </mat-option> + </mat-select> +</mat-form-field> + +<br> + +<mat-form-field appearance="outline"> + <mat-label>{{'lang.nonBindingDocumentFinalAction' | translate}}</mat-label> + <mat-select [(ngModel)]="nonBindingDocumentFinalAction.param_value_string" title="{{'lang.bindingDocumentFinalAction' | translate}}"> + <mat-option *ngFor="let item of finalActionValues" [value]="item"> + {{ 'lang.' + item | translate}} + </mat-option> + </mat-select> +</mat-form-field> diff --git a/src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.ts b/src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..8cdb425db3848f37ab795eff7be9dcf640b0ba63 --- /dev/null +++ b/src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.ts @@ -0,0 +1,42 @@ +import { Component, OnInit } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; +import { tap, catchError } from 'rxjs/operators'; +import { HttpClient } from '@angular/common/http'; +import { of } from 'rxjs'; + +@Component({ + selector: 'app-life-cyle', + templateUrl: './life-cycle.component.html', +}) + +export class LifeCycleComponent implements OnInit { + finalActionValues: any[] = ['restrictAccess', 'transfer', 'copy', 'delete']; + bindingDocumentFinalAction: any[] = []; + nonBindingDocumentFinalAction: any[] = []; + notify: any; + + constructor(public translate: TranslateService, public http: HttpClient) {} + + async ngOnInit(): Promise<void> { + await this.getFinalAction(); + } + + getFinalAction() { + return new Promise((resolve) => { + this.http.get('../rest/parameters').pipe( + tap((data: any) => { + const bindDocumentFinalAction = data.parameters.filter((t: { id: any; }) => t.id === 'bindingDocumentFinalAction'); + const nonBindDocumentFinalAction = data.parameters.filter((t: { id: any; }) => t.id === 'nonBindingDocumentFinalAction'); + this.bindingDocumentFinalAction = bindDocumentFinalAction[0]; + this.nonBindingDocumentFinalAction = nonBindDocumentFinalAction[0]; + resolve(true); + }), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); + }); + } + +} diff --git a/src/frontend/app/administration/parameter/parameters-administration.component.html b/src/frontend/app/administration/parameter/parameters-administration.component.html index c15a9b4298e8d40ec5fa065253482c1a857e1a6e..45364c6177e078bda0557741452edd4ddaac1a10 100755 --- a/src/frontend/app/administration/parameter/parameters-administration.component.html +++ b/src/frontend/app/administration/parameter/parameters-administration.component.html @@ -88,6 +88,11 @@ <app-parameters-customization></app-parameters-customization> </ng-template> </mat-tab> + <mat-tab [label]="'lang.lifeCycle' | translate"> + <ng-template matTabContent> + <app-life-cyle></app-life-cyle> + </ng-template> + </mat-tab> </mat-tab-group> </mat-card> </div> diff --git a/src/frontend/service/privileges.service.ts b/src/frontend/service/privileges.service.ts index 257ac8fce5136cab7747b1819dd48a55fd2f83fb..9f56d95eedc9a1613b6f578c37ee41be4a4705f5 100755 --- a/src/frontend/service/privileges.service.ts +++ b/src/frontend/service/privileges.service.ts @@ -502,13 +502,13 @@ export class PrivilegeService { 'id': 'set_binding_document', 'label': 'lang.setBindingDocument', 'comment': 'lang.setBindingDocument', - 'unit': 'application' + 'unit': 'lifeCycle' }, { 'id': 'freeze_retention_rule', 'label': 'lang.freezeRetentionRule', 'comment': 'lang.freezeRetentionRule', - 'unit': 'application' + 'unit': 'lifeCycle' } ]; diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index 5fede10c5b9dfb471a13995b057e0486f02a4e38..1627e5b7730470a0dd4c022e4aefe4aec943ed2b 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -2118,6 +2118,12 @@ "ssoUrl": "Url du portail SSO", "ssoUrlDesc": "Permet d'activer le bouton de déconnexion de l'application afin de retourner sur le portail de connexion SSO.", "warning": "Attention", - "fieldUserIdDescSso": "Permet faire le lien entre l'identifiant utilisateur maarch et l'identifiant SSO" - + "fieldUserIdDescSso": "Permet faire le lien entre l'identifiant utilisateur maarch et l'identifiant SSO", + "lifeCycle": "Cycle de vie", + "bindingDocumentFinalAction": "Action finale relative au document contraignant", + "nonBindingDocumentFinalAction": "Action finale relative aux documents non contraignants", + "restrictAccess": "Accès retreint", + "transfer": "Transfert SAE + destruction", + "copy": "Transfert SAE + accès restreint", + "deleteAction": "Suppression" }