From 0a70fb0dbb02ae60c753a660bb7ba724c1c64e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yana=C3=ABl=20GRETTE?= Date: Thu, 4 Feb 2021 09:54:55 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20l'interface=20de=20?= =?UTF-8?q?la=20liste=20des=20collaborateurs=20:=20ajout=20des=20checkboxe?= =?UTF-8?q?s=20des=20BU=20et=20d'une=20barre=20de=20recherche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.component.ts | 3 +- .../collaborateurs.component.html | 97 ++++++++++++------- .../collaborateurs.component.ts | 66 +++++++++++-- .../collaborateurs/collaborateurs.module.ts | 1 + 4 files changed, 122 insertions(+), 45 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index ffce2c1..2d66c0e 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -21,8 +21,7 @@ export class AppComponent implements OnInit { } ngOnInit(): void { - let mail = this.authService.mail; - this.subscriber = this.collaborateursService.getCollaborateurByMail(mail).subscribe( + this.subscriber = this.collaborateursService.getCollaborateurByMail(this.authService.mail).subscribe( collaborateur => this.collaborateurConnecte.collaborateur = collaborateur ); } diff --git a/src/app/collaborateurs/collaborateurs.component.html b/src/app/collaborateurs/collaborateurs.component.html index 24abcc4..568abc6 100644 --- a/src/app/collaborateurs/collaborateurs.component.html +++ b/src/app/collaborateurs/collaborateurs.component.html @@ -1,38 +1,65 @@

Liste des collaborateurs

- - - - Agence - {{ row.businessUnit.nom }} - - - - Collabotareur - - {{row.prenom}} {{row.nom}} - - - - Date embauche - {{row.dateArrivee | date:'dd/MM/yyyy'}} - - - - Référent - {{ row.referent.prenom }} {{ row.referent.nom }} - - - - - - - - + + + + + + + + + + Rechercher un collaborateur + + + close + + + + + + + + + + Agence + {{ row.businessUnit.nom }} + + + + Collabotareur + + {{row.prenom}} {{row.nom}} + + + + Date embauche + {{row.dateArrivee | date:'dd/MM/yyyy'}} + + + + Référent + +

{{ row.referent.prenom }} {{ row.referent.nom }}

+

Aucun référent

+
+
+ + + +
+ + + +
diff --git a/src/app/collaborateurs/collaborateurs.component.ts b/src/app/collaborateurs/collaborateurs.component.ts index 35e79e1..ae72033 100644 --- a/src/app/collaborateurs/collaborateurs.component.ts +++ b/src/app/collaborateurs/collaborateurs.component.ts @@ -8,7 +8,7 @@ import {MatSort} from '@angular/material/sort'; import { CollaborateurDTO } from '@shared/api-swagger/model/models' import { CollaborateursService } from "@shared/api-swagger/api/api"; - +import { CollaborateurConnecte } from "@shared/globales/collaborateur-connecte" /** * Composant qui sert à l'affichage de la liste des collaborateurs en fonction de l'agence de son utilitateur. @@ -36,11 +36,15 @@ export class CollaborateursComponent implements OnInit { /** * Rôle des collaborateurs à récupérer via le service collaborateur, ici nous ne voulons que les collaborateurs (pour le moment...). */ - roles : string[] = ["collaborateur"]; + roles : string[] = []; /** * Observable pour faire des requêtes sur le service collaborateur. */ private collaborateursDisponiblesSubscription : Subscription; + /** + * Observable pour faire des requêtes sur le service collaborateur. + */ + private collaborateursDisponiblesCountSubscription : Subscription; /** * Liste des colonnes du tableau à afficher. */ @@ -60,6 +64,10 @@ export class CollaborateursComponent implements OnInit { */ tri = ""; + bus = []; + + busIds: Array = []; + taille = 100; pageOption = [ 5, 15, 20, 30, 50]; @@ -80,11 +88,10 @@ export class CollaborateursComponent implements OnInit { * Spécifie si la liste des collaborateurs est en cours de chargement dans le tableau. */ chargement = true; - constructor(private service: CollaborateursService) {} + constructor(private service: CollaborateursService, private collaborateurConnecte: CollaborateurConnecte) {} ngOnInit() { - this.updateDataSource(); - + this.setBUsId(); } /** @@ -93,23 +100,38 @@ export class CollaborateursComponent implements OnInit { */ updateDataSource() { //récupérer la liste des collaborateur et mettre à jour le tableau - this.collaborateursDisponiblesSubscription = this.service.getCollaborateurs(this.roles,[1],this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe( + this.collaborateursDisponiblesSubscription = this.service.getCollaborateurs(this.roles, this.busIds, this.asc, this.numPage, this.parPage, this.search, this.tri).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).subscribe( + count => { console.log(count); this.taille=count;}, + err => console.log(err) + ); //this.dataSource.paginator = this.paginator; //this.dataSource.sort = this.sort; } + + updatePageInfo(event) : PageEvent{ - console.log("update") - console.log(event); this.parPage = event.pageSize; this.numPage = event.pageIndex+1; this.updateDataSource(); return event; } + setSearch() { + this.numPage = 1; + this.updateDataSource(); + } + + resetSearch() { + this.search = ""; + this.numPage =1; + 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). */ @@ -117,6 +139,31 @@ export class CollaborateursComponent implements OnInit { return Math.abs(firstDate-secondDate); } + setBUsId() { + if(this.collaborateurConnecte.collaborateur == undefined) { + setTimeout( () => this.setBUsId(), 1000); + } + else { + this.bus = this.collaborateurConnecte.collaborateur.businessUnit.agence.bu; + for(let bu of this.bus) { + this.busIds.push(bu.id); + } + this.updateDataSource(); + this.chargement = false; + } + } + + updateCheckbox(event, bu) { + 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. */ @@ -124,5 +171,8 @@ export class CollaborateursComponent implements OnInit { 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 d6e0279..8b863b5 100644 --- a/src/app/collaborateurs/collaborateurs.module.ts +++ b/src/app/collaborateurs/collaborateurs.module.ts @@ -31,6 +31,7 @@ import { CollaborateursRoutingModule } from "./collaborateurs.routing.module"; imports: [ //FormsModule, CommonModule, + FormsModule, MaterialModule, NavMenuModule, CollaborateursRoutingModule,