Suppression du fichier global pour conserver le collaborateur connecte par un sessionstorage

develop
Yanaël GRETTE 4 years ago
parent 8d91f16b86
commit 6049ad5431
  1. 10
      src/app/app.component.ts
  2. 4
      src/app/app.module.ts
  3. 10
      src/app/collaborateurs/collaborateurs.component.ts
  4. 13
      src/app/referents/referents.component.ts
  5. 7
      src/app/shared/globales/collaborateur-connecte.ts
  6. 3
      src/app/shared/utils/cles.ts

@ -1,8 +1,10 @@
import { Component, OnInit } from '@angular/core';
import { CollaborateurConnecte } from '@shared/globales/collaborateur-connecte'
import { CollaborateursService } from '@shared/api-swagger/api/api'
import { AuthService } from '@shared/auth/auth.service';
import { Subscription } from 'rxjs';
import { cles } from "@shared/utils/cles"
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
@ -15,16 +17,18 @@ export class AppComponent implements OnInit {
subscriber: Subscription;
constructor(private collaborateurConnecte:CollaborateurConnecte, private collaborateursService: CollaborateursService,
constructor(private collaborateursService: CollaborateursService,
private authService: AuthService ) {
}
ngOnInit(): void {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined) {
this.subscriber = this.collaborateursService.getCollaborateurByMail(this.authService.mail).subscribe(
collaborateur => this.collaborateurConnecte.collaborateur = collaborateur
collaborateur => sessionStorage.setItem(cles.sessionKeyConnectee, JSON.stringify(collaborateur))
);
}
}
ngOnDestroy(): void {
if(this.subscriber != undefined)

@ -16,8 +16,6 @@ import { ApiModule } from '@shared/api-swagger'
import { HomeModule } from './home';
import { CollaborateursModule } from './collaborateurs';
import { CollaborateurConnecte } from "@shared/globales/collaborateur-connecte";
import { ReferentsModule } from './referents';
import { FormationsModule } from './formations';
import { DemandesFormationModule } from './demandes-formation';
@ -42,7 +40,7 @@ import { AuthModule } from '@shared/auth/auth.module';
EpSaisieModule, EpModule
],
providers: [CollaborateurConnecte],
providers: [],
bootstrap: [AppComponent]
})

@ -7,7 +7,8 @@ import {MatTableDataSource} from '@angular/material/table';
import { BusinessUnitDTO, CollaborateurDTO } from '@shared/api-swagger/model/models'
import { CollaborateursService } from "@shared/api-swagger/api/api";
import { CollaborateurConnecte } from "@shared/globales/collaborateur-connecte"
import { cles } from "@shared/utils/cles";
/**
* Composant qui sert à l'affichage de la liste des collaborateurs en fonction de l'agence de son utilitateur.
@ -103,7 +104,7 @@ export class CollaborateursComponent implements OnInit {
*/
dateFin: Date = undefined;
constructor(private service: CollaborateursService, private collaborateurConnecte: CollaborateurConnecte) {}
constructor(private service: CollaborateursService) {}
ngOnInit() {
this.setBUsId();
@ -199,11 +200,12 @@ export class CollaborateursComponent implements OnInit {
* création de la liste des business unit du collaborateur connecté pour afficher les checkboxes
*/
setBUsId() {
if(this.collaborateurConnecte.collaborateur == undefined) {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined){
setTimeout( () => this.setBUsId(), 1000);
}
else {
this.bus = this.collaborateurConnecte.collaborateur.businessUnit.agence.bu;
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);
}

@ -3,13 +3,13 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { Subscription } from 'rxjs';
import {MatTableDataSource} from '@angular/material/table';
import {MatPaginator} from '@angular/material/paginator';
import {MatSort} from '@angular/material/sort';
import { CollaborateursService } from "@shared/api-swagger/api/api";
import { BusinessUnitDTO, CollaborateurDTO } from "@shared/api-swagger/model/models";
import { CollaborateurConnecte } from "@shared/globales/collaborateur-connecte"
import { cles } from "@shared/utils/cles";
/**
*/
@ -96,7 +96,7 @@ export class ReferentsComponent implements OnInit {
*/
chargement = true;
constructor(private service: CollaborateursService, private collaborateurConnecte: CollaborateurConnecte) {}
constructor(private service: CollaborateursService) {}
ngOnInit() {
this.setBUsId();
@ -162,11 +162,12 @@ export class ReferentsComponent implements OnInit {
* création de la liste des business unit du collaborateur connecté pour afficher les checkboxes
*/
setBUsId() {
if(this.collaborateurConnecte.collaborateur == undefined) {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined){
setTimeout( () => this.setBUsId(), 1000);
}
else {
this.bus = this.collaborateurConnecte.collaborateur.businessUnit.agence.bu;
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);
}

@ -1,7 +0,0 @@
import { Injectable } from "@angular/core";
import { CollaborateurDTO } from "@shared/api-swagger/model/models";
@Injectable()
export class CollaborateurConnecte {
collaborateur: CollaborateurDTO
}

@ -0,0 +1,3 @@
export const cles = {
sessionKeyConnectee : "collaborateurConnecte",
}
Loading…
Cancel
Save