Changement du modèle EpDisplay pour préparer le chargement des informations du collaborateur et de l'EP

master
Yanaël GRETTE 4 years ago
parent 85dbe42a5d
commit 866504a26c
  1. 2
      src/app/api-swagger/api/default.service.ts
  2. 27
      src/app/home/home-assistante/home-assistante.component.html
  3. 61
      src/app/home/home-assistante/home-assistante.component.ts
  4. 14
      src/app/utils/displayEP.ts

@ -188,7 +188,7 @@ export class DefaultService {
// to determine the Content-Type header
const consumes: string[] = [
];
let idBu = "eh ?";
return this.httpClient.request<Array<DemandeFormationModel>>('get',`${this.basePath}/demandeformation/bu/${encodeURIComponent(String(idBu))}`,
{
withCredentials: this.configuration.withCredentials,

@ -19,9 +19,21 @@
<mat-cell *matCellDef="let row"> {{row.agence}} </mat-cell>
</ng-container>
<ng-container matColumnDef="info">
<ng-container matColumnDef="collaborateur">
<mat-header-cell *matHeaderCellDef mat-sort-header> Collaborateur </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.info}} </mat-cell>
<mat-cell *matCellDef="let row"> {{row.collaborateur.nom}} {{row.collaborateur.prenom}} </mat-cell>
</ng-container>
<ng-container matColumnDef="anciennete">
<mat-header-cell *matHeaderCellDef mat-sort-header> Ancienneté </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.annee | number: '2.0-0'}} an(s) {{row.mois | number: '2.0-0'}} mois </mat-cell>
<!--<mat-cell *matCellDef="let row"> {{getAnciennete(row.anciennete)}} </mat-cell> -->
<!-- <mat-cell *matCellDef="let row"> {{row.date | YY an(s) MM mois }} </mat-cell> -->
</ng-container>
<ng-container matColumnDef="referent">
<mat-header-cell *matHeaderCellDef mat-sort-header> Referent </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.referent.nom}} {{row.referent.prenom}} </mat-cell>
</ng-container>
<ng-container matColumnDef="type">
@ -29,6 +41,11 @@
<mat-cell *matCellDef="let row"> {{row.type}} </mat-cell>
</ng-container>
<ng-container matColumnDef="etat">
<mat-header-cell *matHeaderCellDef mat-sort-header> Etat </mat-header-cell>
<mat-cell *matCellDef="let row"> {{getEtat(row.etat)}} </mat-cell>
</ng-container>
<ng-container matColumnDef="datemail">
<mat-header-cell *matHeaderCellDef mat-sort-header> Date envoie mail </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.datemail}} </mat-cell>
@ -39,14 +56,10 @@
<mat-cell *matCellDef="let row"> {{row.dateentretien}} </mat-cell>
</ng-container>
<ng-container matColumnDef="etat">
<mat-header-cell *matHeaderCellDef mat-sort-header> Etat </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.etat}} </mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>
<mat-paginator #paginatorEP [pageSizeOptions]="[1, 5, 10, 25, 50, 100]"> </mat-paginator>
<mat-paginator #paginatorEP [pageSize]="25" [pageSizeOptions]="[10, 25, 50, 100]"> </mat-paginator>
<h1>EN DESSOUS</h1>

@ -9,10 +9,11 @@ import {MatSort} from '@angular/material/sort';
import { ServiceCollaborateur, ServiceEP } from "../../service";
import { CollaborateurModel } from "../../modeles/modele-collaborateur";
import { EpModel } from "../../modeles/modele-ep";
import { EpModel } from "../../api-swagger/model/epModel";
import { DisplayEP } from "../../utils/displayEP";
import { DefaultService } from "../../api-swagger/api/api";
/**
* Le composant home qui sera affiché uniquement pour les assistantes.
* Cette interface affiche la liste des EP disponibles et en cours, de les trier et de faire une recherche avec la barre de recherche mais aussi choisir un intervalle de dates.
@ -45,7 +46,8 @@ export class HomeAssistanteComponent implements OnInit, AfterViewInit {
/**
* liste des titres des colonnes du tableau.
*/
displayedColumns: string[] = ["agence", "info", "datemail", "dateentretien", "etat", "type"];
//displayedColumns: string[] = ["agence", "info", "datemail", "dateentretien", "etat", "type"];
displayedColumns: string[] = ["agence", "collaborateur", "anciennete", "referent", "type", "etat", "datemail", "dateentretien" ];
/**
* source pour l'affichage des EP dans le tableau qui est affichée.
@ -77,7 +79,6 @@ export class HomeAssistanteComponent implements OnInit, AfterViewInit {
}
ngAfterViewInit() {
console.log("VIEWINITED");
}
@ -85,34 +86,65 @@ export class HomeAssistanteComponent implements OnInit, AfterViewInit {
* Initialisation de l'affichage des EP dans le tableau.
*/
initDisplay(eps) {
console.log("INITDISPLAY");
this.epDisponibles = []
let epDisplay : DisplayEP;
let today = new Date();
for(let ep of eps) {
epDisplay = new DisplayEP();
epDisplay.id = ep.id;
epDisplay.agence = ep.collaborateur.agence;
epDisplay.info = ep.collaborateur.nom+" "+ep.collaborateur.prenom;
epDisplay.agence = ep.collaborateur.bu.nom;
epDisplay.collaborateur = ep.collaborateur;
epDisplay.referent = ep.referent;
epDisplay.dateentretien = ep.dateEntretien;
epDisplay.datemail = ep.dateDisponibilite;
epDisplay.etat = ep.etat;
epDisplay.type = ep.type;
epDisplay.type = ep.typeEP;
epDisplay.anciennete = this.setAnciennete(new Date(ep.collaborateur.dateEmbauche), today);
epDisplay.annee = Math.floor(epDisplay.anciennete / 31536000000);
epDisplay.mois = Math.floor(epDisplay.anciennete / 2629800000 % 12);
this.epDisponibles.push(epDisplay);
}
this.epFiltre = this.epDisponibles;
}
getAnciennete(anciennete) {
let annee = Math.floor(anciennete / 31536000000);
let mois = Math.floor(anciennete/ 2629800000 % 12);
return annee + " an(s) et "+ mois+" mois";
}
setAnciennete(firstDate, secondDate) {
return Math.abs(firstDate-secondDate);
}
getEtat(etat) {
let res = "";
switch(etat) {
case 1:
res= "Disponible";
break;
case 2:
res= "Saisi";
break;
case 3:
res= "Dates proposées";
break;
case 4:
res= "Entretien prévu";
break;
case 5:
res= "Attente Signature";
break;
}
return res;
}
/**
* Mise à jour du tableau lorsque qu'un tri est fait via les checkboxes.
*/
refreshDataSource() {
console.log("REFRESH");
//this.epFiltre = this.epDisponibles;
this.dataSource = new MatTableDataSource(this.epFiltre);
console.log(this.dataSource.paginator);
this.dataSource.paginator = this.paginator;
console.log(this.dataSource.paginator);
console.log(this.paginator);
this.dataSource.sort = this.sort;
}
@ -120,9 +152,9 @@ export class HomeAssistanteComponent implements OnInit, AfterViewInit {
* Récupérer la liste des EP Disponibles dès l'initialisation.
*/
ngOnInit() {
console.log("INIT");
//this.epDisponiblesSubscription = this.serviceEP.listeEPDisponibles().
this.epDisponiblesSubscription = this.service.epProchainsGet().
//this.epDisponiblesSubscription = this.service.collaborateursBuIdBuGet("ORL").
this.epDisponiblesSubscription = this.service.epProchainsBuIdBuGet("ORL").
subscribe(eps => {
this.initDisplay(eps);
this.refreshDataSource();
@ -144,7 +176,6 @@ export class HomeAssistanteComponent implements OnInit, AfterViewInit {
* Détruire toutes les Subscriptions utilisées pour libérer de la mémoire après le changement de page.
*/
ngOnDestroy() {
console.log("DESTROY");
if(this.epDisponiblesSubscription != null) {
this.epDisponiblesSubscription.unsubscribe();
}

@ -2,12 +2,18 @@
* Class pour récupérer les informations d'un EP qui seront affichées et/ou utilisées.
*/
import {CollaborateurModel} from "../api-swagger/model/collaborateurModel";
export class DisplayEP {
id : number;
agence : string;
info : string;
dateentretien : Date;
datemail : Date;
etat : string;
collaborateur : CollaborateurModel;
referent : CollaborateurModel;
type : string;
etat : string;
datemail : Date;
dateentretien : Date;
anciennete : number;
annee: number;
mois: number;
}

Loading…
Cancel
Save