From bab4d0cdc6a721ef425d012cd9a655231dbb80bf Mon Sep 17 00:00:00 2001 From: "hamza.hramchi" <hamza.hramchi@xelians.fr> Date: Thu, 22 Oct 2020 18:03:11 +0200 Subject: [PATCH] FEAT #15056 TIME 2 add lifeCycle to admin parameters + unit type for freeze and binding privileges --- .../administration/administration.module.ts | 4 +- .../lifeCycle/life-cycle.component.html | 19 +++++++++ .../lifeCycle/life-cycle.component.ts | 42 +++++++++++++++++++ .../parameters-administration.component.html | 5 +++ src/frontend/service/privileges.service.ts | 4 +- src/lang/lang-fr.json | 10 ++++- 6 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.html create mode 100644 src/frontend/app/administration/parameter/lifeCycle/life-cycle.component.ts diff --git a/src/frontend/app/administration/administration.module.ts b/src/frontend/app/administration/administration.module.ts index 7972f475719..02f3c146982 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 00000000000..01ac7bf38da --- /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 00000000000..8cdb425db38 --- /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 c15a9b4298e..45364c6177e 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 257ac8fce51..9f56d95eedc 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 5fede10c5b9..1627e5b7730 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" } -- GitLab