-
-
-
- Date de début
-
- clear
-
-
-
-
-
-
- Date de fin
-
- clear
-
-
-
-
-
-
-
-
- Agence
- {{ row.businessUnit.nom }}
-
-
-
- Collabotareur
-
- {{row.nom}} {{row.prenom}}
-
-
-
- Date embauche
- {{row.dateArrivee | date:'dd/MM/yyyy'}}
-
-
-
- Référent
-
-
{{ row.referent.prenom }} {{ row.referent.nom }}
-
Aucun référent
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/src/app/collaborateurs/collaborateurs.component.ts b/src/app/collaborateurs/collaborateurs.component.ts
index aaea809..96a6d92 100644
--- a/src/app/collaborateurs/collaborateurs.component.ts
+++ b/src/app/collaborateurs/collaborateurs.component.ts
@@ -1,14 +1,9 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, ViewChild } from '@angular/core';
-import { Subscription } from 'rxjs';
-
-import {MatTableDataSource} from '@angular/material/table';
-
-import { BusinessUnitDTO, CollaborateurDTO } from '@shared/api-swagger/model/models'
-import { CollaborateursService } from "@shared/api-swagger/api/api";
-import { cles } from "@shared/utils/cles";
-
+import { collaborateurTypeRecherche } from "@shared/utils/cles";
+import { Router } from '@angular/router';
+//import { CollaborateursTableComponent } from "@shared/mat-tables/collaborateurs-table/collaborateurs.table"
/**
* Composant qui sert à l'affichage de la liste des collaborateurs en fonction de l'agence de son utilitateur.
@@ -19,227 +14,40 @@ import { cles } from "@shared/utils/cles";
selector: 'app-collaborateurs',
templateUrl: './collaborateurs.component.html'
})
-export class CollaborateursComponent implements OnInit {
+export class CollaborateursComponent {
+ //@ViewChild(CollaborateursTableComponent) collaborateursTableComponent;
/**
- * Ordre de tri à envoyer au serveur (true : croissant, false : décroissantà).
- */
- asc : boolean = true;
+ * Type de la recherche à indiquer au composant fils qui affiche la liste des collaborateurs
+ */
+ typeRecherche: string = collaborateurTypeRecherche.collaborateurs;
- /**
- * Numéro de la page à afficher dans le tableau.
- */
- numPage: number = 1;
- /**
- * Nombre d'élément du tableau à affiche en une page.
- */
- parPage: number = 15;
/**
* Rôle des collaborateurs à récupérer via le service collaborateur, ici nous ne voulons que les collaborateurs (pour le moment...).
*/
- private roles : string[] = ["Collaborateur"];
- /**
- * Observable pour faire des requêtes sur le service collaborateur.
- */
- private collaborateursDisponiblesSubscription : Subscription;
+ roles: string[] = ["Collaborateur"];
/**
- * Observable pour faire des requêtes sur le service collaborateur.
- */
- private collaborateursDisponiblesCountSubscription : Subscription;
-
- /**
* Liste des colonnes du tableau à afficher.
*/
- displayedColumns : string[] = ["businessunit", "collaborateur", "datearrivee", "referent"];
+ displayedColumns: string[] = ["businessunit", "collaborateur", "datearrivee", "referent"];
/**
- * C'est dans cet objet que seront stockés les collaborateurs à afficher dans le Mat Table côté template.
- */
- dataSource : MatTableDataSource;
-
- /**
- * contenu de la recherche pour trouver un collaborateur.
- */
- search: string = "";
- /**
- * Permet de savoir sur quelle attribut d'un CollaborateurDTO doit être trié le tableau.
- */
- tri: string = "collaborateur";
-
-
- /**
- * Liste des business units du collaborateur connecté
+ * Indique si la recherche pas BU est activée ou non
*/
- bus: Array = [];
-
- /**
- * Liste des id des business units des collaborateurs à afficher
- */
- private busIds: Array = [];
-
- /**
- * Nombre total d'élément du tableau
- */
- taille: number;
-
-
- /**
- * Options pour choisir le nombre de page à affiche
- */
- pageOption = [ 5, 15, 20, 30, 50];
-
- /**
- * Spécifie si la liste des collaborateurs est en cours de chargement dans le tableau.
- */
- chargement: boolean = true;
+ rechercherParBU: boolean = true;
- /**
- * Date à partir de laquelle les collaborateurs doivent être récupérés en fonction de leur date d'arrivée
- */
- dateDebut: Date = undefined;
-
- /**
- * Date jusqu'à laquelle les collaborateurs doivent être récupérés en fonction de leur date d'arrivée
- */
- dateFin: Date = undefined;
-
- constructor(private service: CollaborateursService) {}
-
- ngOnInit() {
- this.setBUsId();
- }
-
- /**
- * Mettre à jour les informations à afficher dans la tableau.
- * Devra se faire à l'ouverture de la page, au changement de page ou du nombre d'éléments à afficher, au moment d'un tri ou encore lors de l'utilisation de la barre de recherche.
- */
- updateDataSource() {
-
- //ne rien afficher si aucune business unit n'est cochée
- if(this.busIds.length == 0) {
- this.taille = 0;
- this.dataSource = new MatTableDataSource(undefined);
- return;
- }
- this.collaborateursDisponiblesSubscription = this.service.getCollaborateurs(this.roles, this.busIds, this.asc, this.numPage, this.parPage, this.search, this.tri, this.dateDebut, this.dateFin).subscribe(
- collaborateurs => { console.log(collaborateurs); this.dataSource = new MatTableDataSource(collaborateurs);},
- err => console.log(err)
- );
- this.collaborateursDisponiblesCountSubscription = this.service.getCollaborateursCount(this.roles, this.busIds,this.asc, this.numPage, this.parPage, this.search, this.tri, this.dateDebut, this.dateFin).subscribe(
- count => { console.log(count); this.taille=count;},
- err => console.log(err)
- );
- }
-
- /**
- * Mettre à undefined la date de début ou la date de fin
- * @param val Valeur pour inidiquer quel variable doit être mis à undefined
- */
- updateDateToUndefined(val : number) {
- if(val == 1)
- this.dateDebut = undefined;
- if(val == 2)
- this.dateFin = undefined;
- this.updateDataSource();
- }
+ constructor(private router: Router) {}
- /**
- * Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
- * @param event évènement de la pagination
- */
- updatePageInfo(event){
- this.parPage = event.pageSize;
- this.numPage = event.pageIndex+1;
- this.updateDataSource();
- }
-
- /**
- * Remettre au début la liste lors d'une recherche via la barre de recherche
- */
- setSearch() {
- this.numPage = 1;
- this.updateDataSource();
- }
-
-
- /**
- * Vider la barre de recherche et remettre le tableau à la première page
- */
- resetSearch() {
- this.search = "";
- this.setSearch();
- }
-
-
- /**
- * Trier le tableau en fonction de l'évènement de la colonne
- * @param e évènement du tri
- */
- triTableau(e) {
- this.tri = e.active;
- switch(e.direction) {
- case "asc":
- this.asc = true;
+ event(event : any) {
+ switch(event.type) {
+ case "collaborateur":
+ this.router.navigate(["/collaborateurs", event.collaborateur.id]);
break;
- case "desc":
- this.asc = false;
+ case "referent":
+ this.router.navigate(["/referents", event.collaborateur.id]);
break;
}
- this.updateDataSource();
- }
-
- /**
- * Fonction qui calculait le nombre d'année qu'un collaborateur a passé chez Apside (calculer entre la date d'aujourd'hui et la date d'arrivée du collaborateur).
- */
- setAnciennete(firstDate, secondDate) {
- return Math.abs(firstDate-secondDate);
- }
-
- /**
- * création de la liste des business unit du collaborateur connecté pour afficher les checkboxes
- */
- setBUsId() {
- if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined){
- setTimeout( () => this.setBUsId(), 1000);
- }
- else {
- const connecte = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee));
- this.bus = connecte.businessUnit.agence.bu;
- for(let bu of this.bus) {
- this.busIds.push(bu.id);
- }
- this.updateDataSource();
- this.chargement = false;
- }
- }
-
- /**
- * Mettre à jour la liste des
- * @param event case cochée ou décochée
- * @param bu business unit concerné par la checkbox cochée ou décochée
- */
- updateCheckbox(event, bu) {
- // si la checkbox a été cochée
- if(event) {
- this.busIds.push(bu.id)
- }
- else{
- this.busIds = this.busIds.filter( (id) => id != bu.id);
- }
- this.numPage = 1;
- this.updateDataSource();
- }
-
- /**
- * Une fois la page fermée, il est nécessaire de se désabonner des Oberservable afin d'éviter les fuites mémoires.
- */
- ngOnDestroy() {
- if(this.collaborateursDisponiblesSubscription != undefined) {
- this.collaborateursDisponiblesSubscription.unsubscribe();
- }
- if(this.collaborateursDisponiblesCountSubscription != undefined) {
- this.collaborateursDisponiblesCountSubscription.unsubscribe();
- }
}
+
}
diff --git a/src/app/collaborateurs/collaborateurs.module.ts b/src/app/collaborateurs/collaborateurs.module.ts
index b742d6b..fa56601 100644
--- a/src/app/collaborateurs/collaborateurs.module.ts
+++ b/src/app/collaborateurs/collaborateurs.module.ts
@@ -4,7 +4,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { MaterialModule } from "@shared/angular-material/angular-material.module";
-
+import { CollaborateursTableComponent } from "@shared/mat-tables/collaborateurs-table/collaborateurs.table";
import {NavMenuModule} from '@shared/nav-menu/nav-menu.module';
import { CollaborateursComponent } from "./collaborateurs.component";
@@ -23,7 +23,7 @@ import { CollaborateursRoutingModule } from "./collaborateurs.routing.module";
declarations: [
CollaborateursComponent, DetailsCollaborateurComponent,
DetailsCollaborateurComponent, EvaluationComponent, EditEvaluationComponent,
- FormationsCollaboateurComponent
+ FormationsCollaboateurComponent, CollaborateursTableComponent
],
exports: [
CollaborateursComponent
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 43214ac..c8b14a7 100644
--- a/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
+++ b/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
@@ -15,7 +15,7 @@
-
+
{{bu.nom}}
@@ -43,6 +43,7 @@
+
@@ -62,8 +63,10 @@
Référent
- {{ row.referent.prenom }} {{ row.referent.nom }}
- Aucun référent
+
+ {{ row.referent.prenom }} {{ row.referent.nom }}
+ Aucun référent
+
@@ -77,5 +80,6 @@
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)"
>
-
+
+
\ No newline at end of file
diff --git a/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.ts b/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.ts
index 36070a4..5743eff 100644
--- a/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.ts
+++ b/src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.ts
@@ -6,7 +6,7 @@ import {MatTableDataSource} from '@angular/material/table';
import { BusinessUnitDTO, CollaborateurDTO } from '@shared/api-swagger/model/models'
import { CollaborateursService } from "@shared/api-swagger/api/api";
-import { cles, collaborateurTypeRecheche } from "@shared/utils/cles";
+import { cles, collaborateurTypeRecherche } from "@shared/utils/cles";
@Component({
@@ -101,17 +101,17 @@ export class CollaborateursTableComponent implements OnInit {
/**
* Indique si il s'agit d'une simple recherche pour afficher des informations ou d'une recherche pour ajouter un référent à un ou plusieurs collaborateurs
*/
- @Input() changementReferentEP: boolean;
+ @Input() changementReferentEP: boolean = false;
/**
* Indique si la recherche pas BU est activée ou non
*/
- @Input() rechercherParBU: boolean;
+ @Input() rechercherParBU: boolean = false;
/**
* Liste des rôles des collaborateurs a affichés
*/
- @Input() roles: string[];
+ @Input() roles: string[] = [];
/**
* Liste des colonnes du tableau à afficher.
@@ -121,12 +121,12 @@ export class CollaborateursTableComponent implements OnInit {
/**
* Liste des collaborateursEP actuels du référent
*/
- @Input() collaborateursEP: CollaborateurDTO[];
+ @Input() collaborateursEP: CollaborateurDTO[] = [];
/**
* Liste des collaborateurs ajoutés dont le référent sera mis à jour
*/
- @Input() collaborateursAjouts: CollaborateurDTO[];
+ @Input() collaborateursAjouts: CollaborateurDTO[] =[];
/**
* Evenement emis lorsqu'une action doit être effectuée
@@ -146,8 +146,8 @@ export class CollaborateursTableComponent implements OnInit {
}
ngOnInit() {
- this.setBUsId();
- }
+ this.setBUsId();
+ }
/**
* Mettre à jour les informations à afficher dans la tableau.
@@ -155,16 +155,19 @@ export class CollaborateursTableComponent implements OnInit {
*/
updateDataSource() {
switch(this.typeRecherche) {
- case collaborateurTypeRecheche.collaborateurs:
- case collaborateurTypeRecheche.referents:
+ case collaborateurTypeRecherche.collaborateurs:
+ case collaborateurTypeRecherche.referents:
this.updateCollaborateursOuReferents();
break;
- case collaborateurTypeRecheche.collaborateursEP:
+ case collaborateurTypeRecherche.collaborateursEP:
this.updateCollaborateursEP();
break;
}
}
+ /**
+ * Afficher les informations collaborateurs ou référents
+ */
updateCollaborateursOuReferents() {
//ne rien afficher si aucune business unit n'est cochée
if(this.busIds.length == 0) {
@@ -182,8 +185,9 @@ export class CollaborateursTableComponent implements OnInit {
);
}
-
-
+ /**
+ * Afficher les informations des collaborateursEP d'un référent
+ */
updateCollaborateursEP() {
this.collaborateursDisponiblesSubscription = this.service.getCollaborateursByReferent(this.collaborateurConnecte.id, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
collaborateurs => { console.log(collaborateurs); this.dataSource = new MatTableDataSource(collaborateurs);},
diff --git a/src/app/shared/utils/cles.ts b/src/app/shared/utils/cles.ts
index 8937b52..3d5461b 100644
--- a/src/app/shared/utils/cles.ts
+++ b/src/app/shared/utils/cles.ts
@@ -3,7 +3,7 @@ export const cles = {
}
-export const collaborateurTypeRecheche = {
+export const collaborateurTypeRecherche = {
collaborateurs: "collaborateurs",
referents: "referents",
collaborateursEP: "collaborateursEP"