Merge pull request 'entite_business_unit complète' (#6) from entite_business_unit into develop

Reviewed-on: Clement.Ferrere/Collaborateur_Epa_Front#6
pull/7/head^2
Clement.Ferrere 3 years ago
commit 81dd033197
  1. 4
      src/app/app-routing.module.ts
  2. 3
      src/app/app.component.html
  3. 8
      src/app/app.module.ts
  4. 17
      src/app/components/businessunit/businessunit-detail/businessunit-detail.component.html
  5. 0
      src/app/components/businessunit/businessunit-detail/businessunit-detail.component.scss
  6. 42
      src/app/components/businessunit/businessunit-detail/businessunit-detail.component.ts
  7. 12
      src/app/components/businessunit/businessunit-edit/businessunit-edit.component.html
  8. 0
      src/app/components/businessunit/businessunit-edit/businessunit-edit.component.scss
  9. 50
      src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts
  10. 37
      src/app/components/businessunit/businessunit.component.html
  11. 0
      src/app/components/businessunit/businessunit.component.scss
  12. 48
      src/app/components/businessunit/businessunit.component.ts
  13. 7
      src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html
  14. 11
      src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts
  15. 5
      src/app/interfaces/businessunit.ts
  16. 40
      src/app/services/businessunit.service.ts
  17. 1
      src/ressources/routes/routes.ts

@ -5,6 +5,8 @@ import {CollaborateurEditComponent} from "./components/collaborateur/collaborate
import {HomeComponent} from "./components/home/home.component";
import {AgenceComponent} from "./components/agence/agence.component";
import {AgenceEditComponent} from "./components/agence/agence-edit/agence-edit.component";
import {BusinessunitComponent} from "./components/businessunit/businessunit.component";
import {BusinessunitEditComponent} from "./components/businessunit/businessunit-edit/businessunit-edit.component";
const routes : Routes = [
{path:'', redirectTo:'/home', pathMatch:'full'},
@ -13,6 +15,8 @@ const routes : Routes = [
{ path: 'collaborateurs/:id', component: CollaborateurEditComponent },
{ path:'agences',component:AgenceComponent },
{ path: 'agences/:id', component: AgenceEditComponent },
{ path:'businessunits',component:BusinessunitComponent },
{ path: 'businessunits/:id', component: BusinessunitEditComponent },
];
@NgModule({

@ -73,6 +73,9 @@
<nav>
<a class="toolbar-button" routerLink="/agences">Agences</a>
</nav>
<nav>
<a class="toolbar-button" routerLink="/businessunits">Business Units</a>
</nav>
</div>
<div class="content" role="main">

@ -12,6 +12,9 @@ import { HomeComponent } from './components/home/home.component';
import { AgenceComponent } from './components/agence/agence.component';
import { AgenceEditComponent } from './components/agence/agence-edit/agence-edit.component';
import { CollaborateurDetailComponent } from './components/collaborateur/collaborateur-detail/collaborateur-detail.component';
import { BusinessunitComponent } from './components/businessunit/businessunit.component';
import { BusinessunitEditComponent } from './components/businessunit/businessunit-edit/businessunit-edit.component';
import { BusinessunitDetailComponent } from './components/businessunit/businessunit-detail/businessunit-detail.component';
@NgModule({
declarations: [
@ -21,7 +24,10 @@ import { CollaborateurDetailComponent } from './components/collaborateur/collabo
HomeComponent,
AgenceComponent,
AgenceEditComponent,
CollaborateurDetailComponent
CollaborateurDetailComponent,
BusinessunitComponent,
BusinessunitEditComponent,
BusinessunitDetailComponent
],
imports: [
BrowserModule,

@ -0,0 +1,17 @@
<div class = mb-3>
<table>
<tr>
<th>Name</th>
</tr>
<tr>
<td>
<input id="businessunit-name" [(ngModel)]="businessunit.name" placeholder="name">
</td>
</tr>
</table>
<select name="agence" id="agence-select" [(ngModel)]="businessunit.agenceId">
<option value="">-- Choisissez l'agence de cette business Unit --</option>
<option *ngFor="let agence of agences" [ngValue]="agence.id">{{agence.name}}</option>
</select>
</div>

@ -0,0 +1,42 @@
import {Component, Input, OnInit} from '@angular/core';
import {Businessunit} from "../../../interfaces/businessunit";
import {HttpClient} from "@angular/common/http";
import {BusinessunitService} from "../../../services/businessunit.service";
import {Agence} from "../../../interfaces/agence";
import {AgenceService} from "../../../services/agence.service";
@Component({
selector: 'app-businessunit-detail',
templateUrl: './businessunit-detail.component.html',
styleUrls: ['./businessunit-detail.component.scss']
})
export class BusinessunitDetailComponent implements OnInit {
businessunits : Businessunit[] = [];
@Input()
businessunit = {} as Businessunit ;
agences : Agence[] = [];
agence = {} as Agence ;
constructor(
private http : HttpClient,
private businessunitService: BusinessunitService,
private agenceService: AgenceService,
) { }
ngOnInit(): void {
this.getBusinessunits();
this.getAgences();
}
getBusinessunits():void {
this.businessunitService.getBusinessunits()
.subscribe(businessunits => this.businessunits = businessunits);
}
getAgences():void {
this.agenceService.getAgences()
.subscribe(agences => this.agences = agences);
}
}

@ -0,0 +1,12 @@
<div *ngIf="businessunit">
<h2>{{businessunit.name | uppercase}} </h2>
<div><span>id : </span>{{businessunit.id}}</div>
<app-businessunit-detail [businessunit]="businessunit"></app-businessunit-detail>
<button (click)="goBack()">Retour</button>
<button (click)="save()">Sauvegarder les changements</button>
<button (click)="delete()">Supprimer le businessunit</button>
</div>

@ -0,0 +1,50 @@
import { Component, OnInit } from '@angular/core';
import {Businessunit} from "../../../interfaces/businessunit";
import {ActivatedRoute} from "@angular/router";
import {BusinessunitService} from "../../../services/businessunit.service";
import {Location} from "@angular/common";
@Component({
selector: 'app-businessunit-edit',
templateUrl: './businessunit-edit.component.html',
styleUrls: ['./businessunit-edit.component.scss']
})
export class BusinessunitEditComponent implements OnInit {
businessunit : Businessunit | undefined;
constructor(
private route: ActivatedRoute,
private businessunitService: BusinessunitService,
private location: Location
) { }
ngOnInit(): void {
this.getBusinessunit()
}
getBusinessunit(): void {
const id = Number(this.route.snapshot.paramMap.get('id'))
this.businessunitService.getBusinessunit(id)
.subscribe(businessunit => this.businessunit = businessunit);
}
goBack(): void {
this.location.back();
}
save():void{
if (this.businessunit){
this.businessunitService.updateBusinessunit(this.businessunit)
.subscribe(()=>this.goBack());
}
}
delete():void {
if (this.businessunit){
this.businessunitService.deleteBusinessunit(this.businessunit)
.subscribe(()=>this.goBack());
}
}
}

@ -0,0 +1,37 @@
<div xmlns="">
<h2 class = mb-4>Business Unit</h2>
<table class = mb-5>
<tr>
<th class="spaced">Name</th>
</tr>
<tr *ngFor="let businessunit of businessunits">
<td class="spaced"> {{businessunit.name}} </td>
<td class="spaced"> <a routerLink="{{businessunit.id}}"> Modifier </a></td>
</tr>
</table>
<h3>Ajouter une businessunit : </h3>
<div class = mb-3>
<table>
<tr>
<th>Name</th>
</tr>
<tr>
<td>
<input id="businessunit-name" [(ngModel)]="businessunit.name" placeholder="name">
</td>
</tr>
</table>
<select name="agence" id="agence-select" [(ngModel)]="businessunit.agenceId">
<option value="">-- Choisissez l'agence de cette business Unit --</option>
<option *ngFor="let agence of agences" [ngValue]="agence.id">{{agence.name}}</option>
</select>
</div>
<button class="add-button" (click)="add(businessunit)">
Ajouter une businessunit
</button>
</div>

@ -0,0 +1,48 @@
import { Component, OnInit } from '@angular/core';
import {Businessunit} from "../../interfaces/businessunit";
import {HttpClient} from "@angular/common/http";
import {BusinessunitService} from "../../services/businessunit.service";
import {Agence} from "../../interfaces/agence";
import {AgenceService} from "../../services/agence.service";
@Component({
selector: 'app-businessunit',
templateUrl: './businessunit.component.html',
styleUrls: ['./businessunit.component.scss']
})
export class BusinessunitComponent implements OnInit {
businessunits : Businessunit[] = [];
businessunit = {} as Businessunit ;
agences : Agence[] = [];
agence = {} as Agence ;
constructor(
private http : HttpClient,
private businessunitService: BusinessunitService,
private agenceService: AgenceService,
) { }
ngOnInit(): void {
this.getBusinessunits();
this.getAgences();
}
getBusinessunits():void {
this.businessunitService.getBusinessunits()
.subscribe(businessunits => this.businessunits = businessunits);
}
getAgences():void {
this.agenceService.getAgences()
.subscribe(agences => this.agences = agences);
}
add(businessunit: Businessunit): void {
this.businessunitService.addBusinessunit(businessunit)
.subscribe(businessunit => {
this.businessunits.push(businessunit);
});
}
}

@ -13,7 +13,6 @@
<th>Personal Mail</th>
<th>Apside Mail</th>
<th>Resignation Date</th>
<th>Business Unit ID</th>
</tr>
<tr>
@ -28,7 +27,6 @@
<td><input id="collaborateur-personalMail" [(ngModel)]="collaborateur.personalMail" placeholder="personalMail"></td>
<td><input id="collaborateur-apsideMail" [(ngModel)]="collaborateur.apsideMail" placeholder="apsideMail"></td>
<td><input id="collaborateur-resignationDate" [(ngModel)]="collaborateur.resignationDate" placeholder="resignationDate"></td>
<td><input id="collaborateur-businessUnitId" [(ngModel)]="collaborateur.businessUnitId" placeholder="businessUnitId"></td>
</tr>
</table>
@ -37,6 +35,11 @@
<option value="">-- Choisissez un référent pour le nouveau collaborateur --</option>
<option *ngFor="let collaborateur of collaborateurs" [ngValue]="collaborateur.id">{{collaborateur.name}} {{collaborateur.firstName}}</option>
</select>
<select name="businessunit" id="businessunit-select" [(ngModel)]="collaborateur.businessUnitId">
<option value="">-- Choisissez la Business Unit pour le nouveau collaborateur --</option>
<option *ngFor="let businessunit of businessunits" [ngValue]="businessunit.id">{{businessunit.name}} </option>
</select>
<br/>
<span>
*Tous les champs sont obligatoires

@ -2,6 +2,8 @@ import {Component, Input, OnInit} from '@angular/core';
import {Collaborateur} from "../../../interfaces/collaborateur";
import {HttpClient} from "@angular/common/http";
import {CollaborateurService} from "../../../services/collaborateur.service";
import {BusinessunitService} from "../../../services/businessunit.service";
import {Businessunit} from "../../../interfaces/businessunit";
@Component({
selector: 'app-collaborateur-detail',
@ -10,7 +12,7 @@ import {CollaborateurService} from "../../../services/collaborateur.service";
})
export class CollaborateurDetailComponent implements OnInit {
businessunits : Businessunit[] = [];
collaborateurs : Collaborateur[] = [];
@Input()
@ -19,10 +21,12 @@ export class CollaborateurDetailComponent implements OnInit {
constructor(
private http : HttpClient,
private collaborateurService: CollaborateurService,
private businessunitService: BusinessunitService
) { }
ngOnInit(): void {
this.getCollaborateurs();
this.getBusinessunits();
}
getCollaborateurs():void {
@ -30,4 +34,9 @@ export class CollaborateurDetailComponent implements OnInit {
.subscribe(collaborateurs => this.collaborateurs = collaborateurs);
}
getBusinessunits():void {
this.businessunitService.getBusinessunits()
.subscribe(businessunits => this.businessunits = businessunits);
}
}

@ -0,0 +1,5 @@
export interface Businessunit {
name: string;
id: number;
agenceId : number;
}

@ -0,0 +1,40 @@
import { Injectable } from '@angular/core';
import {HttpClient, HttpHeaders} from "@angular/common/http";
import {Observable} from "rxjs";
import {Businessunit} from "../interfaces/businessunit";
import {businessunitsUrl} from "../../ressources/routes/routes";
@Injectable({
providedIn: 'root'
})
export class BusinessunitService {
private businessunitsUrl = businessunitsUrl;
httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};
constructor(private http: HttpClient) { }
getBusinessunits():Observable<Businessunit[]> {
return this.http.get<Businessunit[]>(this.businessunitsUrl);
}
getBusinessunit(id : number):Observable<Businessunit>{
return this.http.get<Businessunit>(this.businessunitsUrl+"/"+id);
}
updateBusinessunit(businessunit : Businessunit):Observable<Businessunit>{
let body = JSON.stringify(businessunit);
return this.http.put<Businessunit>(this.businessunitsUrl + "/" + businessunit.id, body, this.httpOptions);
}
deleteBusinessunit(businessunit: Businessunit) {
return this.http.delete(this.businessunitsUrl + "/" + businessunit.id);
}
addBusinessunit(businessunit: Businessunit): Observable<Businessunit> {
let body = JSON.stringify(businessunit);
return this.http.post<Businessunit>(this.businessunitsUrl, body, this.httpOptions);
}
}

@ -1,2 +1,3 @@
export const collaborateursUrl = 'https://localhost:7125/api/collaborateurs';
export const agencesUrl = 'https://localhost:7125/api/agences';
export const businessunitsUrl = 'https://localhost:7125/api/businessunits';

Loading…
Cancel
Save