diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 6c1d9a3..6ecf328 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -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, diff --git a/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.html b/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.html new file mode 100644 index 0000000..b1c3297 --- /dev/null +++ b/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.html @@ -0,0 +1,17 @@ +
+ + + + + + + +
Name
+ +
+ + +
diff --git a/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.scss b/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.ts b/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.ts new file mode 100644 index 0000000..3fe3755 --- /dev/null +++ b/src/app/components/businessunit/businessunit-detail/businessunit-detail.component.ts @@ -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); + } + +} diff --git a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.html b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.html new file mode 100644 index 0000000..b54af61 --- /dev/null +++ b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.html @@ -0,0 +1,12 @@ + +
+ +

{{businessunit.name | uppercase}}

+
id : {{businessunit.id}}
+ + + + + + +
diff --git a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.scss b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts new file mode 100644 index 0000000..00e2320 --- /dev/null +++ b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts @@ -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()); + } + } + +} diff --git a/src/app/components/businessunit/businessunit.component.html b/src/app/components/businessunit/businessunit.component.html new file mode 100644 index 0000000..45bf93d --- /dev/null +++ b/src/app/components/businessunit/businessunit.component.html @@ -0,0 +1,37 @@ +
+

Business Unit

+ + + + + + + + + +
Name
{{businessunit.name}} Modifier
+ +

Ajouter une businessunit :

+ +
+ + + + + + + +
Name
+ +
+ + +
+ + +
diff --git a/src/app/components/businessunit/businessunit.component.scss b/src/app/components/businessunit/businessunit.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/businessunit/businessunit.component.ts b/src/app/components/businessunit/businessunit.component.ts new file mode 100644 index 0000000..f11d8de --- /dev/null +++ b/src/app/components/businessunit/businessunit.component.ts @@ -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); + }); + } + +} diff --git a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html index ad1c7ad..4085820 100644 --- a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html +++ b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html @@ -13,7 +13,6 @@ Personal Mail Apside Mail Resignation Date - Business Unit ID @@ -28,7 +27,6 @@ - @@ -37,6 +35,11 @@ + +
*Tous les champs sont obligatoires diff --git a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts index 5cea570..8376764 100644 --- a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts +++ b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts @@ -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); + } + } diff --git a/src/app/interfaces/businessunit.ts b/src/app/interfaces/businessunit.ts new file mode 100644 index 0000000..0b1b86a --- /dev/null +++ b/src/app/interfaces/businessunit.ts @@ -0,0 +1,5 @@ +export interface Businessunit { + name: string; + id: number; + agenceId : number; +} diff --git a/src/app/services/businessunit.service.ts b/src/app/services/businessunit.service.ts new file mode 100644 index 0000000..bd17c09 --- /dev/null +++ b/src/app/services/businessunit.service.ts @@ -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 { + return this.http.get(this.businessunitsUrl); + } + + getBusinessunit(id : number):Observable{ + return this.http.get(this.businessunitsUrl+"/"+id); + } + + updateBusinessunit(businessunit : Businessunit):Observable{ + let body = JSON.stringify(businessunit); + return this.http.put(this.businessunitsUrl + "/" + businessunit.id, body, this.httpOptions); + } + + deleteBusinessunit(businessunit: Businessunit) { + return this.http.delete(this.businessunitsUrl + "/" + businessunit.id); + } + + addBusinessunit(businessunit: Businessunit): Observable { + let body = JSON.stringify(businessunit); + return this.http.post(this.businessunitsUrl, body, this.httpOptions); + } +} diff --git a/src/ressources/routes/routes.ts b/src/ressources/routes/routes.ts index 1eb9e54..83e2c54 100644 --- a/src/ressources/routes/routes.ts +++ b/src/ressources/routes/routes.ts @@ -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';