diff --git a/src/frontend/app/actions/actions-list.component.html b/src/frontend/app/actions/actions-list.component.html index 632ef71359a4bed8aecf9c22ecf5a562d90a5862..569efa873082b3eadefedadbbd9a6dc6a5996f49 100755 --- a/src/frontend/app/actions/actions-list.component.html +++ b/src/frontend/app/actions/actions-list.component.html @@ -20,4 +20,35 @@ </button> <mat-divider></mat-divider> <folder-menu [resIds]="selectedRes" [currentFolders]="folderList" (refreshList)="refreshList()" (refreshFolders)="refreshFolders()"></folder-menu> + <mat-divider></mat-divider> + <button *ngIf="privilegeService.hasCurrentUserPrivilege('freeze_retention_rule')" mat-menu-item [matMenuTriggerFor]="freezeRentalRule" [disabled]="selectedRes.length === 0" + [title]="this.translate.instant('lang.freezeRetentionRule')"> + <mat-icon class="freezeIcon fas fa-snowflake" style="font-size: 20px;"></mat-icon> + <span>{{ 'lang.freezeRetentionRule' | translate }}</span> + </button> + <mat-menu #freezeRentalRule = "matMenu" ng-switch="getValue(var)"> + <button mat-menu-item (click)="toggleFreezing(true)" + [title]="this.translate.instant('lang.freezeTheCurrentUsefulLife')" > + {{ 'lang.freezeTheCurrentUsefulLife' | translate }} + </button> + <mat-divider></mat-divider> + <button mat-menu-item (click)="toggleFreezing(false)" + [title]="this.translate.instant('lang.thawTheCurrentUsefulLife')" > + {{ 'lang.thawTheCurrentUsefulLife' | translate }} + </button> + </mat-menu> + <mat-divider></mat-divider> + <button *ngIf="privilegeService.hasCurrentUserPrivilege('set_binding_document')" mat-menu-item [matMenuTriggerFor]="bindingRentalRule" [disabled]="selectedRes.length === 0" + [title]="this.translate.instant('lang.setBindingDocument')"> + <mat-icon class="bindidngIcon fas fa-exclamation" style="font-size: 20px;"></mat-icon> + <span>{{ 'lang.setBindingDocument' | translate }}</span> + </button> + <mat-menu #bindingRentalRule="matMenu"> + <buton mat-menu-item (click)="toogleBinding(true)" [title]="this.translate.instant('lang.bindingMail')">{{ 'lang.bindingMail' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item (click)="toogleBinding(false)" [title]="this.translate.instant('lang.noBindingMal')">{{ 'lang.noBindingMal' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item (click)="toogleBinding(null)" [title]="this.translate.instant('lang.doNotDEfine')">{{ 'lang.doNotDEfine' | translate}}</buton> + <mat-divider></mat-divider> + </mat-menu> </mat-menu> diff --git a/src/frontend/app/actions/actions-list.component.scss b/src/frontend/app/actions/actions-list.component.scss index cf1fdb503f3414457bfacae18af7f70bd0a1be9f..8579fb3e7e2a7ca9024ed7681eaa15712a95f7c0 100644 --- a/src/frontend/app/actions/actions-list.component.scss +++ b/src/frontend/app/actions/actions-list.component.scss @@ -23,3 +23,12 @@ color: $warn; } } + +.freezeIcon { + color: $primary; +} + +.bindidngIcon { + color: $primary; + margin-left: 5px; +} diff --git a/src/frontend/app/actions/actions-list.component.ts b/src/frontend/app/actions/actions-list.component.ts index 33673ac2445f57d40c2cc49074e77e03acd0697e..7d6201435a4befcb171c65cdfe5e71368527fcf7 100644 --- a/src/frontend/app/actions/actions-list.component.ts +++ b/src/frontend/app/actions/actions-list.component.ts @@ -7,9 +7,11 @@ import { MatMenuTrigger } from '@angular/material/menu'; import { Router } from '@angular/router'; import { ActionsService } from './actions.service'; import { ConfirmComponent } from '../../plugins/modal/confirm.component'; -import { exhaustMap, filter, tap } from 'rxjs/operators'; +import { catchError, exhaustMap, filter, tap } from 'rxjs/operators'; import { HeaderService } from '@service/header.service'; import { FunctionsService } from '@service/functions.service'; +import { PrivilegeService } from '@service/privileges.service'; +import { of } from 'rxjs'; @Component({ selector: 'app-actions-list', @@ -53,7 +55,8 @@ export class ActionsListComponent implements OnInit { private router: Router, private actionService: ActionsService, private headerService: HeaderService, - private functionService: FunctionsService + private functionService: FunctionsService, + public privilegeService: PrivilegeService, ) { } dialogRef: MatDialogRef<any>; @@ -146,4 +149,41 @@ export class ActionsListComponent implements OnInit { }) ).subscribe(); } + + toggleFreezing(value) { + this.http.put('../rest/archival/freezeRetentionRule', { resources: this.selectedRes, freeze : value }).pipe( + tap(() => { + if (value) { + this.notify.success(this.translate.instant('lang.retentionRuleFrozen')); + } else { + this.notify.success(this.translate.instant('lang.retentionRuleThawed')); + + } + } + ), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); + } + + toogleBinding(value) { + this.http.put('../rest/archival/binding', { resources: this.selectedRes, binding : value }).pipe( + tap(() => { + if (value) { + this.notify.success(this.translate.instant('lang.bindingMail')); + } else if (value === false) { + this.notify.success(this.translate.instant('lang.noBindingMal')); + } else { + this.notify.success(this.translate.instant('lang.bindingUndefined')); + } + } + ), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); + } } diff --git a/src/frontend/app/folder/folder-action-list/folder-action-list.component.html b/src/frontend/app/folder/folder-action-list/folder-action-list.component.html index 24ab2dff90605d01ae913b07df2c21cd24671873..f97eefe7d4677b56f5a9c8306282b85b51a80bff 100755 --- a/src/frontend/app/folder/folder-action-list/folder-action-list.component.html +++ b/src/frontend/app/folder/folder-action-list/folder-action-list.component.html @@ -36,4 +36,35 @@ <span>{{'lang.removeFromFolder' | translate}}</span> </button> <folder-menu [resIds]="selectedRes" (refreshList)="refreshDaoAfterAction()" (refreshFolders)="refreshFolders()"></folder-menu> + <mat-divider></mat-divider> + <button *ngIf="privilegeService.hasCurrentUserPrivilege('freeze_retention_rule')" mat-menu-item [matMenuTriggerFor]="freezeRentalRule" [disabled]="selectedRes.length === 0" + [title]="this.translate.instant('lang.freezeRetentionRule')"> + <mat-icon class="freezeIcon fas fa-snowflake" style="font-size: 20px;"></mat-icon> + <span>{{ 'lang.freezeRetentionRule' | translate }}</span> + </button> + <mat-menu #freezeRentalRule = "matMenu" ng-switch="getValue(var)"> + <button mat-menu-item (click)="toggleFreezing(true)" + [title]="this.translate.instant('lang.freezeTheCurrentUsefulLife')" > + {{ 'lang.freezeTheCurrentUsefulLife' | translate }} + </button> + <mat-divider></mat-divider> + <button mat-menu-item (click)="toggleFreezing(false)" + [title]="this.translate.instant('lang.thawTheCurrentUsefulLife')" > + {{ 'lang.thawTheCurrentUsefulLife' | translate }} + </button> + </mat-menu> + <mat-divider></mat-divider> + <button *ngIf="privilegeService.hasCurrentUserPrivilege('set_binding_document')" mat-menu-item [matMenuTriggerFor]="bindingRentalRule" [disabled]="selectedRes.length === 0" + [title]="this.translate.instant('lang.setBindingDocument')"> + <mat-icon class="bindidngIcon fas fa-exclamation" style="font-size: 20px;"></mat-icon> + <span>{{ 'lang.setBindingDocument' | translate }}</span> + </button> + <mat-menu #bindingRentalRule="matMenu"> + <buton mat-menu-item (click)="toogleBinding(true)" [title]="this.translate.instant('lang.bindingMail')">{{ 'lang.bindingMail' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item (click)="toogleBinding(false)" [title]="this.translate.instant('lang.noBindingMal')">{{ 'lang.noBindingMal' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item (click)="toogleBinding(null)" [title]="this.translate.instant('lang.doNotDEfine')">{{ 'lang.doNotDEfine' | translate}}</buton> + <mat-divider></mat-divider> + </mat-menu> </mat-menu> diff --git a/src/frontend/app/folder/folder-action-list/folder-action-list.component.scss b/src/frontend/app/folder/folder-action-list/folder-action-list.component.scss index 6c5e7ef5661338fa076e55a2e77b2a4e0dec6c76..b32311d4d9b6fcfba54d8428204dc1542b9a932e 100644 --- a/src/frontend/app/folder/folder-action-list/folder-action-list.component.scss +++ b/src/frontend/app/folder/folder-action-list/folder-action-list.component.scss @@ -43,3 +43,12 @@ font-style: italic; padding: 22px; } + +.freezeIcon { + color: $primary; +} + +.bindidngIcon { + color: $primary; + margin-left: 5px; +} diff --git a/src/frontend/app/folder/folder-action-list/folder-action-list.component.ts b/src/frontend/app/folder/folder-action-list/folder-action-list.component.ts index fdafcf25804774be862ffdef190f636edd889f8a..de7152690a7ef2acd6bc6dfe7ac5bfe12fa3ffc9 100644 --- a/src/frontend/app/folder/folder-action-list/folder-action-list.component.ts +++ b/src/frontend/app/folder/folder-action-list/folder-action-list.component.ts @@ -11,6 +11,7 @@ import { filter, exhaustMap, tap, map, catchError } from 'rxjs/operators'; import { HeaderService } from '@service/header.service'; import { FoldersService } from '../folders.service'; import { of } from 'rxjs'; +import { PrivilegeService } from '@service/privileges.service'; @Component({ selector: 'app-folder-action-list', @@ -54,7 +55,8 @@ export class FolderActionListComponent implements OnInit { public dialog: MatDialog, private router: Router, private headerService: HeaderService, - private foldersService: FoldersService + private foldersService: FoldersService, + public privilegeService: PrivilegeService, ) { } dialogRef: MatDialogRef<any>; @@ -143,4 +145,41 @@ export class FolderActionListComponent implements OnInit { }) ).subscribe(); } + + toggleFreezing(value) { + this.http.put('../rest/archival/freezeRetentionRule', { resources: this.selectedRes, freeze : value }).pipe( + tap(() => { + if (value) { + this.notify.success(this.translate.instant('lang.retentionRuleFrozen')); + } else { + this.notify.success(this.translate.instant('lang.retentionRuleThawed')); + + } + } + ), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); + } + + toogleBinding(value) { + this.http.put('../rest/archival/binding', { resources: this.selectedRes, binding : value }).pipe( + tap(() => { + if (value) { + this.notify.success(this.translate.instant('lang.bindingMail')); + } else if (value === false) { + this.notify.success(this.translate.instant('lang.noBindingMal')); + } else { + this.notify.success(this.translate.instant('lang.bindingUndefined')); + } + } + ), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); + } } diff --git a/src/frontend/app/home/followed-action-list/followed-action-list.component.html b/src/frontend/app/home/followed-action-list/followed-action-list.component.html index e2c3303039b49d54b62276382467c3c07600bb78..02ac58dee2aeca4b821f09c8e055e7539849ce26 100755 --- a/src/frontend/app/home/followed-action-list/followed-action-list.component.html +++ b/src/frontend/app/home/followed-action-list/followed-action-list.component.html @@ -33,16 +33,35 @@ <mat-divider></mat-divider> <folder-menu [resIds]="selectedRes" [currentFolders]="folderList" (refreshList)="refreshList()" (refreshFolders)="refreshFolders()"></folder-menu> <mat-divider></mat-divider> - <button mat-menu-item [disabled]="selectedRes.length === 0" - [title]="this.translate.instant('lang.freezeRetentionRule')" (click)="toggleFreezing()"> - <mat-icon class="fas fa-snowflake" style="font-size: 20px;"></mat-icon> + <button *ngIf="privilegeService.hasCurrentUserPrivilege('freeze_retention_rule')" mat-menu-item [matMenuTriggerFor]="freezeRentalRule" [disabled]="selectedRes.length === 0" + [title]="this.translate.instant('lang.freezeRetentionRule')"> + <mat-icon class="freezeIcon fas fa-snowflake fa-2x" style="font-size: 20px;"></mat-icon> <span>{{ 'lang.freezeRetentionRule' | translate }}</span> </button> + <mat-menu #freezeRentalRule = "matMenu"> + <button mat-menu-item (click)="toggleFreezing(true)" + [title]="this.translate.instant('lang.freezeTheCurrentUsefulLife')" > + {{ 'lang.freezeTheCurrentUsefulLife' | translate }} + </button> + <mat-divider></mat-divider> + <button mat-menu-item (click)="toggleFreezing(false)" + [title]="this.translate.instant('lang.thawTheCurrentUsefulLife')" > + {{ 'lang.thawTheCurrentUsefulLife' | translate }} + </button> + </mat-menu> <mat-divider></mat-divider> - <button mat-menu-item [disabled]="selectedRes.length === 0" - [title]="this.translate.instant('lang.setBindingDocument')" (click)="toggleBinding()"> - <mat-icon class="fas fa-exclamation" style="font-size: 20px;"></mat-icon> + <button *ngIf="privilegeService.hasCurrentUserPrivilege('set_binding_document')" mat-menu-item [matMenuTriggerFor]="bindingRentalRule" [disabled]="selectedRes.length === 0" + [title]="this.translate.instant('lang.setBindingDocument')"> + <mat-icon class="bindidngIcon fas fa-exclamation fa-2x" style="font-size: 20px;"></mat-icon> <span>{{ 'lang.setBindingDocument' | translate }}</span> </button> + <mat-menu #bindingRentalRule="matMenu"> + <buton mat-menu-item (click)="toogleBinding(true)" [title]="this.translate.instant('lang.bindingMail')">{{ 'lang.bindingMail' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item (click)="toogleBinding(false)" [title]="this.translate.instant('lang.noBindingMal')">{{ 'lang.noBindingMal' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item (click)="toogleBinding(null)" [title]="this.translate.instant('lang.doNotDEfine')">{{ 'lang.doNotDEfine' | translate}}</buton> + <mat-divider></mat-divider> + </mat-menu> </mat-menu> diff --git a/src/frontend/app/home/followed-action-list/followed-action-list.component.scss b/src/frontend/app/home/followed-action-list/followed-action-list.component.scss index 8b9a4c21fb4afe82651e7c308e5cde0c3ca08793..a276659abcf902b7e8c7a7d43c55cf9859d8ea3a 100644 --- a/src/frontend/app/home/followed-action-list/followed-action-list.component.scss +++ b/src/frontend/app/home/followed-action-list/followed-action-list.component.scss @@ -43,3 +43,16 @@ font-style: italic; padding: 22px; } + +.freezeIcon { + color: $primary; +} + +.bindidngIcon { + color: $primary; + margin-left: 5px; +} + +.isSelectedMenu { + background: rgba(249, 152, 48, 0.14); + } diff --git a/src/frontend/app/home/followed-action-list/followed-action-list.component.ts b/src/frontend/app/home/followed-action-list/followed-action-list.component.ts index 5d1f0108e34a8b81bea14d2437ba5f3cb796adbb..6b3ad67485662612ad7ef17ff235cdd4c15d6c36 100644 --- a/src/frontend/app/home/followed-action-list/followed-action-list.component.ts +++ b/src/frontend/app/home/followed-action-list/followed-action-list.component.ts @@ -11,6 +11,7 @@ import { filter, exhaustMap, tap, map, catchError } from 'rxjs/operators'; import { HeaderService } from '@service/header.service'; import { MenuShortcutComponent } from '../../menu/menu-shortcut.component'; import { of } from 'rxjs'; +import { PrivilegeService } from '@service/privileges.service'; @Component({ selector: 'app-followed-action-list', @@ -56,11 +57,12 @@ export class FollowedActionListComponent implements OnInit { public dialog: MatDialog, private router: Router, private headerService: HeaderService, + public privilegeService: PrivilegeService, ) { } dialogRef: MatDialogRef<any>; - ngOnInit(): void { } + ngOnInit(): void {} open(x: number, y: number, row: any) { // Adjust the menu anchor position @@ -129,50 +131,40 @@ export class FollowedActionListComponent implements OnInit { this.refreshEvent.emit(); } - toggleFreezing() { - this.selectedRes.forEach(id => { - this.http.get(`../rest/resources/${id}?light=true`).pipe( - tap((data: any) => { - this.http.put('../rest/archival/freezeRetentionRule', { resources: [id], freeze : !data.retentionFrozen }).pipe( - tap(() => { - this.notify.success(this.translate.instant('lang.parameterUpdated')); - } - ), - catchError((err: any) => { - this.notify.handleSoftErrors(err); - return of(false); - }) - ).subscribe(); - }), - catchError((err: any) => { - this.notify.handleErrors(err); - return of(false); - }) - ).subscribe(); - }); + toggleFreezing(value) { + this.http.put('../rest/archival/freezeRetentionRule', { resources: this.selectedRes, freeze : value }).pipe( + tap(() => { + if (value) { + this.notify.success(this.translate.instant('lang.retentionRuleFrozen')); + } else { + this.notify.success(this.translate.instant('lang.retentionRuleThawed')); + + } + } + ), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); } - toggleBinding() { - this.selectedRes.forEach(id => { - this.http.get(`../rest/resources/${id}?light=true`).pipe( - tap((data: any) => { - this.http.put('../rest/archival/binding', { resources: [id], binding : !data.binding }).pipe( - tap(() => { - this.notify.success(this.translate.instant('lang.parameterUpdated')); - } - ), - catchError((err: any) => { - this.notify.handleSoftErrors(err); - return of(false); - }) - ).subscribe(); - }), - catchError((err: any) => { - this.notify.handleErrors(err); - return of(false); - }) - ).subscribe(); - }); + toogleBinding(value) { + this.http.put('../rest/archival/binding', { resources: this.selectedRes, binding : value }).pipe( + tap(() => { + if (value) { + this.notify.success(this.translate.instant('lang.bindingMail')); + } else if (value === false) { + this.notify.success(this.translate.instant('lang.noBindingMal')); + } else { + this.notify.success(this.translate.instant('lang.bindingUndefined')); + } + } + ), + catchError((err: any) => { + this.notify.handleSoftErrors(err); + return of(false); + }) + ).subscribe(); } - } diff --git a/src/frontend/app/process/process.component.html b/src/frontend/app/process/process.component.html index 0912ffccca34740d47b42a0a81388da6803e819e..bf0ca77eb2131a6843c5205aaa9cd71f8809069f 100644 --- a/src/frontend/app/process/process.component.html +++ b/src/frontend/app/process/process.component.html @@ -195,13 +195,23 @@ <button *ngIf="privilegeService.hasCurrentUserPrivilege('freeze_retention_rule')" mat-icon-button [title]="this.translate.instant('lang.freezeRetentionRule')" class="categoryLabel" (click)="toggleFreezing()"> - <mat-icon class="freezeThawIcon {{this.resourceFreezed ? 'fas':'far'}} fa-pause-circle" style="font-size: 20px;"></mat-icon> + <mat-icon class="{{this.resourceFreezed ? 'freezeThawIcon':'nonFreeze'}} fas fa-snowflake" style="font-size: 20px;"></mat-icon> </button> - <button *ngIf="privilegeService.hasCurrentUserPrivilege('set_binding_document')" - mat-icon-button [title]="this.translate.instant('lang.setBindingDocument')" - class="categoryLabel" (click)="toggleBinding()"> - <mat-icon class=" {{this.resourceBinded ? 'bindIcon' : 'noBindIcn'}} fas fa-paperclip" style="font-size: 20px;"></mat-icon> + <button mat-icon-button *ngIf="privilegeService.hasCurrentUserPrivilege('set_binding_document')" [matMenuTriggerFor]="bindingRentalRule" + [title]="this.translate.instant('lang.setBindingDocument')" class="categoryLabel"> + <mat-icon class="bindIcon fas fa-exclamation" style="font-size: 20px;"></mat-icon> </button> + <mat-menu #bindingRentalRule="matMenu"> + <buton mat-menu-item [class.isSelectedMenu]="this.resourceBinded === true" (click)="toggleBinding(true)" + [title]="this.translate.instant('lang.bindingMail')">{{ 'lang.bindingMail' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item [class.isSelectedMenu]="this.resourceBinded === false" (click)="toggleBinding(false)" + [title]="this.translate.instant('lang.noBindingMal')">{{ 'lang.noBindingMal' | translate}}</buton> + <mat-divider></mat-divider> + <buton mat-menu-item [class.isSelectedMenu]="this.resourceBinded === null" (click)="toggleBinding(null)" + [title]="this.translate.instant('lang.doNotDEfine')">{{ 'lang.doNotDEfine' | translate}}</buton> + <mat-divider></mat-divider> + </mat-menu> <div class="content-item" *ngIf="this.currentResourceInformations.priority !== undefined"> <b><i class="fas fa-flag" [style.color]="this.currentResourceInformations.priorityColor" style="font-size: 25px;padding-right: 20px;"></i> diff --git a/src/frontend/app/process/process.component.scss b/src/frontend/app/process/process.component.scss index 45581269669a0ad59451855d9b865df20bee17f0..5fe33fd683a0156fa7634db4b0ca8d30b38e997b 100644 --- a/src/frontend/app/process/process.component.scss +++ b/src/frontend/app/process/process.component.scss @@ -414,12 +414,13 @@ color: $secondary; } -.bindIcon { - color: $secondary; +.nonFreeze { + color: $primary; } -.noBindIcon { - color: $primary; +.bindIcon { + color: $secondary; + margin-left: 5px; } .tool-disabled { @@ -442,4 +443,8 @@ .subSubject { color: $secondary; -} \ No newline at end of file +} + +.isSelectedMenu { + background: rgba(249, 152, 48, 0.14); + } \ No newline at end of file diff --git a/src/frontend/app/process/process.component.ts b/src/frontend/app/process/process.component.ts index 4a895b36361974a798cca816c61f426851b995ff..391953f5432f0c356a1f64de713625a612b0ce95 100755 --- a/src/frontend/app/process/process.component.ts +++ b/src/frontend/app/process/process.component.ts @@ -857,15 +857,19 @@ export class ProcessComponent implements OnInit, OnDestroy { ).subscribe(); } - toggleBinding() { - this.resourceBinded = !this.resourceBinded; - this.http.put('../rest/archival/binding', { resources: [this.currentResourceInformations.resId], binding : this.resourceBinded }).pipe( + toggleBinding(value) { + this.resourceBinded = value; + this.http.put('../rest/archival/binding', { resources: [this.currentResourceInformations.resId], binding : value }).pipe( tap(() => { if (this.resourceBinded) { this.notify.success(this.translate.instant('lang.bindingMail')); - } else { + } else if (value === false) { this.notify.success(this.translate.instant('lang.noBindingMal')); } + else { + this.notify.success(this.translate.instant('lang.bindingUndefined')); + + } } ), catchError((err: any) => { diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index 24a79b73d6bdc60659d4ed078ae3985ccadc54c0..09eae635920c22bef8c3979da84ff266722404ba 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -2112,8 +2112,11 @@ "freezeRetentionRule": "Geler/dégeler la durée d'utilité courante d'un document", "retentionRuleFrozen": "Durée d'utilité courante gelée", "retentionRuleThawed" : "Durée d'utilité courante dégelée", + "freezeTheCurrentUsefulLife": "Geler la durée d'utilité courante", + "thawTheCurrentUsefulLife": "Dégeler la durée d'utilité courant", "bindingMail": "Document engageant", "noBindingMal": "Document non engageant", + "bindingUndefined": "Engagement non défini", "warningConnectionMsg": "Vous pouvez rendre l'application <b>indisponible</b> si les informations sont erronées !", "mappingHeaders": "Interfaçage des en-têtes", "ssoUrl": "Url du portail SSO", @@ -2131,6 +2134,7 @@ "mustConnectToInstall" : "Veuillez vous connecter pour accéder à l'installeur", "mustPrivilegeToInstall" : "Vous n'avez pas le droit de créer une nouvelle instance", "instancesList" : "Instances présentes", - "insteadOf": "À la place de" + "insteadOf": "À la place de", + "doNotDEfine": "Ne pas définir" }