Skip to content
Snippets Groups Projects
Verified Commit ea75c131 authored by Alex ORLUC's avatar Alex ORLUC
Browse files

FEAT #272 add confidential redirect component

parent 844c123f
No related branches found
No related tags found
No related merge requests found
...@@ -2,13 +2,53 @@ ...@@ -2,13 +2,53 @@
<mat-dialog-content> <mat-dialog-content>
<form #redirectConfForm="ngForm"> <form #redirectConfForm="ngForm">
<div class="modal-body"> <div class="modal-body">
<div class="alert alert-warning" role="alert"> <div class="alert alert-warning" role="alert" *ngIf="data.hasConfidentialityInstances">
<p>Cet utilisateur à des <b>courriers confidentiels</b> associés à ce service.</p> <p>Cet utilisateur à des
<b>courriers confidentiels</b> associés à ce service.</p>
<p>Il est préférable de les affecter à un autre utilisateur du service.</p> <p>Il est préférable de les affecter à un autre utilisateur du service.</p>
</div> </div>
<div class="alert alert-warning" role="alert" *ngIf="data.hasListTemplates">
<p>Cet utilisateur est présent dans le modèle de diffusion de l'entité.</p>
</div>
<div class="input-group">
<mat-radio-group id="processMode" name="processMode" style="display: inline-flex;flex-direction: column;" [(ngModel)]="this.processMode" color="primary">
<mat-radio-button value="" checked="true" color="primary">
Ne rien faire (Dissocier l'entité)
</mat-radio-button>
<mat-radio-button value="delete" color="primary">
Supprimer la personne (liste de diffusion + modèle de l'entité)
</mat-radio-button>
<mat-radio-button value="reaffect" color="primary">
Réaffecter à l'utilisateur (liste de diffusion + modèle de l'entité) :
</mat-radio-button>
</mat-radio-group>
<mat-form-field *ngIf="this.processMode == 'reaffect'">
<input name="userDestRedirectModel" id="userDestRedirectModel" type="text" placeholder="Utilisateur de remplacement" matInput
[matAutocomplete]="auto" [formControl]="userCtrl" [(ngModel)]="this.redirectUser" tabindex="-1" required>
<mat-autocomplete #auto="matAutocomplete">
<mat-option value="NO_USER" style="text-align:center;">
<i>- aucun utilisateur de remplacement -</i>
</mat-option>
<ng-container *ngFor="let user of filteredUsers | async">
<mat-option [value]="user.id">
<div class="container-fluid">
<span class="col-xm-1">
<mat-icon color="primary" class="fa fa-user fa-2x" style="margin-right:0px;"></mat-icon>
</span>
<span class="col-xm-11">
{{ user.idToDisplay }}
<small>{{ user.otherInfo }}</small>
</span>
</div>
</mat-option>
</ng-container>
</mat-autocomplete>
</mat-form-field>
</div>
</div> </div>
<mat-dialog-actions> <mat-dialog-actions>
toto <button mat-raised-button color="primary" type="submit" [disabled]="!this.redirectUser && this.processMode == 'reaffect'" (click)="dialogRef.close({newUser:this.redirectUser,processMode:this.processMode})">{{lang.validate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</form> </form>
</mat-dialog-content> </mat-dialog-content>
\ No newline at end of file
...@@ -29,6 +29,7 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O ...@@ -29,6 +29,7 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O
config : any = {}; config : any = {};
serialId : number; serialId : number;
userId : string; userId : string;
mode : string = '';;
user : any = {}; user : any = {};
_search : string = ''; _search : string = '';
creationMode : boolean; creationMode : boolean;
...@@ -140,7 +141,9 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O ...@@ -140,7 +141,9 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O
$j('#jstree') $j('#jstree')
// listen for event // listen for event
.on('select_node.jstree', (e: any, data: any) => { .on('select_node.jstree', (e: any, data: any) => {
this.addEntity(data.node.id); if (this.mode == '') {
this.addEntity(data.node.id);
}
}).on('deselect_node.jstree', (e: any, data: any) => { }).on('deselect_node.jstree', (e: any, data: any) => {
this.deleteEntity(data.node.id); this.deleteEntity(data.node.id);
}) })
...@@ -297,7 +300,7 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O ...@@ -297,7 +300,7 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O
this.http.get(this.coreUrl + "rest/users/" + this.serialId + "/entities/" + entityId) this.http.get(this.coreUrl + "rest/users/" + this.serialId + "/entities/" + entityId)
.subscribe((data: any) => { .subscribe((data: any) => {
console.log(data); console.log(data);
if (data['isDeletable']) { if (!data['hasConfidentialityInstances'] && !data['hasListTemplates']) {
this.http.delete(this.coreUrl + "rest/users/" + this.serialId + "/entities/" + entityId) this.http.delete(this.coreUrl + "rest/users/" + this.serialId + "/entities/" + entityId)
.subscribe((data: any) => { .subscribe((data: any) => {
this.user.entities = data.entities; this.user.entities = data.entities;
...@@ -307,13 +310,14 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O ...@@ -307,13 +310,14 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O
this.notify.error(err.error.errors); this.notify.error(err.error.errors);
}); });
} else { } else {
this.config = { data: { } }; this.config = { data: { hasConfidentialityInstances:data['hasConfidentialityInstances'], hasListTemplates:data['hasListTemplates'] } };
this.dialogRef = this.dialog.open(UserAdministrationRedirectModalComponent, this.config); this.dialogRef = this.dialog.open(UserAdministrationRedirectModalComponent, this.config);
this.dialogRef.afterClosed().subscribe((result: string) => { this.dialogRef.afterClosed().subscribe((result: any) => {
console.log(result);
this.mode = 'delete';
if (result) { if (result) {
let mode = 'del'; this.mode = result.processMode;
mode = 'reaffect'; this.http.request('DELETE', this.coreUrl + "rest/users/" + this.serialId + "/entities/" + entityId, {body : {"mode":this.mode,"newUser":result.newUser}})
this.http.request('DELETE', this.coreUrl + "rest/users/" + this.serialId + "/entities/" + entityId, {body : {"mode":"","newUser":""}})
.subscribe((data: any) => { .subscribe((data: any) => {
this.user.entities = data.entities; this.user.entities = data.entities;
this.user.allEntities = data.allEntities; this.user.allEntities = data.allEntities;
...@@ -321,6 +325,9 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O ...@@ -321,6 +325,9 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O
}, (err) => { }, (err) => {
this.notify.error(err.error.errors); this.notify.error(err.error.errors);
}); });
} else {
$j('#jstree').jstree('select_node', entityId);
this.mode = '';
} }
this.dialogRef = null; this.dialogRef = null;
}); });
...@@ -493,11 +500,14 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O ...@@ -493,11 +500,14 @@ export class UserAdministrationComponent extends AutoCompletePlugin implements O
@Component({ @Component({
templateUrl: "../../../../Views/user-administration-redirect-modal.component.html", templateUrl: "../../../../Views/user-administration-redirect-modal.component.html",
styles: [".mat-dialog-content{height:260px;max-height: 65vh;}"] styles: [".mat-dialog-content{max-height: 65vh;height:300px;width:600px;}"]
}) })
export class UserAdministrationRedirectModalComponent extends AutoCompletePlugin { export class UserAdministrationRedirectModalComponent extends AutoCompletePlugin {
lang: any = LANG; lang: any = LANG;
redirectUser: String = '';
processMode: String[] = ['','delete','reaffect'];
constructor(public http: HttpClient, @Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef<UserAdministrationRedirectModalComponent>) { constructor(public http: HttpClient, @Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef<UserAdministrationRedirectModalComponent>) {
super(http, ['users']); super(http, ['users']);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment