diff --git a/src/app/referents/assignation-referent/assignation-referent.component.ts b/src/app/referents/assignation-referent/assignation-referent.component.ts
index 4796684..2d57ad3 100644
--- a/src/app/referents/assignation-referent/assignation-referent.component.ts
+++ b/src/app/referents/assignation-referent/assignation-referent.component.ts
@@ -87,10 +87,6 @@ export class AssignationReferentComponent {
this.collaborateursSelectionnes.push(event.collaborateur);
}
- peutAjouterCollaborateur(event) : boolean {
- return event.type == "collaborateur" && !this.collaborateursSelectionnes.some(event.collaborateur) && !this.collaborateursEP.includes(event.collaborateur);
- }
-
contientCollaborateur(listes: CollaborateurDTO[], collaborateur: CollaborateurDTO ) : boolean {
return listes.some(c => c.id == collaborateur.id);
}
diff --git a/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.module.ts b/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.module.ts
index 8d0bf88..8ae3cf0 100644
--- a/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.module.ts
+++ b/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.module.ts
@@ -5,12 +5,13 @@ import { FormsModule } from '@angular/forms';
import { MaterialModule } from "../angular-material/angular-material.module";
import { AffichageDetailsCollaborateurComponent } from "@shared/affichage-details-collaboarteur/affichage-details-collaborateur";
import { MatTablesModule } from '@shared/mat-tables/mat-tables.module';
-import { DialogAssignationRapideReferentComponent } from "./dialog-assignation-rapide/dialog-assignation-rapide.component";
+import { DialogAssignationRapideReferentComponent, DialogAssignationRapideCollaborateursComponent } from "./dialog-assignation-rapide/dialog-assignation-rapide.component";
@NgModule({
declarations: [
- AffichageDetailsCollaborateurComponent, DialogAssignationRapideReferentComponent
+ AffichageDetailsCollaborateurComponent, DialogAssignationRapideReferentComponent,
+ DialogAssignationRapideCollaborateursComponent
],
imports: [
MaterialModule,
diff --git a/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.ts b/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.ts
index 721022f..0c568bc 100644
--- a/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.ts
+++ b/src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.ts
@@ -3,7 +3,7 @@ import { CollaborateurDTO, CollaborateursService } from "@shared/api-swagger";
import { Subscription } from "rxjs";
import { collaborateurTypeRecherche } from "@shared/utils/cles";
import { MatDialog } from "@angular/material/dialog";
-import { DialogAssignationRapideReferentComponent } from "./dialog-assignation-rapide/dialog-assignation-rapide.component";
+import { DialogAssignationRapideReferentComponent, DialogAssignationRapideCollaborateursComponent } from "./dialog-assignation-rapide/dialog-assignation-rapide.component";
@Component({
@@ -41,11 +41,14 @@ export class AffichageDetailsCollaborateurComponent implements OnInit{
}
openDialog() {
- let datas = { data: this.collaborateur, width: "80%", height: '80%'};
- let dialog = DialogAssignationRapideReferentComponent;
- if(this.estReferent)
- console.log("ui");
- else
- this.dialog.open( dialog, datas );
+ const datas = { data: this.collaborateur, width: "80%", height: '80%'};
+ let dialog;
+ if(this.estReferent) {
+ dialog = DialogAssignationRapideCollaborateursComponent;
+ }
+ else {
+ dialog = DialogAssignationRapideReferentComponent;
+ }
+ this.dialog.open(dialog, datas);
}
}
\ No newline at end of file
diff --git a/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-collaborateurs.html b/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-collaborateurs.html
index 3e8fc5e..17b30c6 100644
--- a/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-collaborateurs.html
+++ b/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-collaborateurs.html
@@ -1 +1,17 @@
-
\ No newline at end of file
+
+
+ Collaborateurs sélectionnés :
+
+
+ {{collaborateur.nom}} {{collaborateur.prenom}}
+ cancel
+
+
+
+
+
Veuillez sélectionner au moins un collaborateur
+
+
diff --git a/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-referent.html b/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-referent.html
index 4ad2232..64c0b36 100644
--- a/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-referent.html
+++ b/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-referent.html
@@ -5,4 +5,4 @@
Veuillez choisir un référent
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide.component.ts b/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide.component.ts
index 286b2dd..27bccf8 100644
--- a/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide.component.ts
+++ b/src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide.component.ts
@@ -1,8 +1,8 @@
-import {Component, Inject } from "@angular/core";
+import {Component, Inject, OnInit } from "@angular/core";
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
-import { CollaborateurDTO, ReferentEPDTO, ReferentsEPService } from "@shared/api-swagger";
+import { MatSnackBar } from "@angular/material/snack-bar";
+import { CollaborateurDTO, CollaborateursService, ReferentEPDTO, ReferentsEPService } from "@shared/api-swagger";
import { collaborateurTypeRecherche, } from "@shared/utils/cles";
-import { DialogAssignationReferentComponent } from "app/referents/assignation-referent/assignation-referent.component";
import { Subscription } from "rxjs";
@Component({
@@ -26,7 +26,7 @@ export class DialogAssignationRapideReferentComponent {
private referentEPSubscription: Subscription;
- constructor(private dialogRef: MatDialogRef, private referentsEPService: ReferentsEPService,
+ constructor(private dialogRef: MatDialogRef, private referentsEPService: ReferentsEPService,
@Inject(MAT_DIALOG_DATA) private data: CollaborateurDTO) {
this.referentChoisi = data.referent;
}
@@ -63,4 +63,106 @@ export class DialogAssignationRapideReferentComponent {
}
+}
+
+@Component({
+ selector: "dialog-assignation-rapide-collaborateurs",
+ templateUrl: "dialog-assignation-rapide-collaborateurs.html"
+})
+export class DialogAssignationRapideCollaborateursComponent implements OnInit{
+ rechercherParDate: boolean = false;
+
+ rechercherParBU: boolean = true;
+
+ roles : string[] = ["Collaborateur"];
+
+
+ typeRecherche: string = collaborateurTypeRecherche.collaborateurs;
+
+ displayedColumns : string[] = ["businessunit", "collaborateur", "datearrivee", "referent"];
+
+ collaborateursEP: CollaborateurDTO[] = [];
+ collaborateursSelectionnes: CollaborateurDTO[] = [];
+
+
+ private collaborateurSubscription: Subscription;
+ private referentEPSubscription: Subscription;
+
+ constructor(private dialogRef: MatDialogRef, private referentsEPService: ReferentsEPService,
+ private collaborateurService: CollaborateursService, @Inject(MAT_DIALOG_DATA) private data: CollaborateurDTO,
+ private snackBar: MatSnackBar) {
+ }
+
+ ngOnInit() {
+ this.collaborateurSubscription = this.collaborateurService.getCollaborateursByReferent(this.data.id).subscribe(
+ collaborateurs => this.collaborateursEP = collaborateurs,
+ err => console.log(err)
+ );
+ }
+
+
+ ajoutCollaborateur(event:any) {
+ if(event.type != "collaborateur")
+ return;
+ if(event.collaborateur.id == this.data.id) {
+ this.openSnackBar("Un collaborateur ne peut pas être son propre référent");
+ return;
+ }
+ if(this.contientCollaborateur(this.collaborateursSelectionnes, event.collaborateur)){
+ this.enleverCollaborateur(event.collaborateur);
+ return;
+ }
+ if(this.contientCollaborateur(this.collaborateursEP, event.collaborateur)){
+ this.openSnackBar("Le référent choisi est déjà le référent EP du collaborateur sélectionné")
+ return;
+ }
+ this.collaborateursSelectionnes.push(event.collaborateur);
+ }
+
+ contientCollaborateur(listes: CollaborateurDTO[], collaborateur: CollaborateurDTO ) : boolean {
+ return listes.some(c => c.id == collaborateur.id);
+ }
+
+ enleverCollaborateur(collaborateur: CollaborateurDTO) {
+ this.collaborateursSelectionnes = this.collaborateursSelectionnes.filter(c => c.id != collaborateur.id);
+ }
+
+ ajouterCollaborateur(event) {
+ if(event.type == "collaborateur") {
+
+ }
+ }
+
+ mettreAJourReferentEP() {
+ const referentEP : ReferentEPDTO = {
+ idReferent: this.data.id,
+ idsCollaborateur: this.collaborateursSelectionnes.map( c => c.id)
+ };
+
+ this.referentEPSubscription = this.referentsEPService.updateCollaborateursReferent(referentEP, this.data.id).subscribe(
+ () => location.reload(),
+ err => console.log(err)
+ );
+ }
+
+ openSnackBar(message: string) {
+ this.snackBar.open(message,"", {
+ duration: 5000,
+ horizontalPosition: "center",
+ verticalPosition: "top",
+ });
+ }
+
+ annuler() {
+ this.dialogRef.close();
+ }
+
+ onDestroy() {
+ if(this.referentEPSubscription != undefined) {
+ this.referentEPSubscription.unsubscribe();
+ }
+ if(this.collaborateurSubscription != undefined) {
+ this.collaborateurSubscription.unsubscribe();
+ }
+ }
}
\ No newline at end of file
diff --git a/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html b/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
index 85f2e08..f2543a0 100644
--- a/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
+++ b/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
@@ -65,7 +65,7 @@
Référent
- {{ row.referent.prenom }} {{ row.referent.nom }}
+ {{ row.referent.nom }} {{ row.referent.prenom }}
Aucun référent