diff --git a/src/app/features/error/error.module.ts b/src/app/features/error/error.module.ts
new file mode 100644
index 0000000..d4b3183
--- /dev/null
+++ b/src/app/features/error/error.module.ts
@@ -0,0 +1,12 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+
+@NgModule({
+ declarations: [],
+ imports: [
+ CommonModule
+ ]
+})
+export class ErrorModule { }
diff --git a/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.html b/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.html
index 7843fbb..39f8e85 100644
--- a/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.html
+++ b/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.html
@@ -1,15 +1,15 @@
diff --git a/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.ts b/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.ts
index aefcfa6..f8e6739 100644
--- a/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.ts
+++ b/src/app/features/vehicle/page/vehicle-edit/vehicle-edit.component.ts
@@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core';
import {VehicleService} from "../../service/vehicle.service";
-import {Router} from "@angular/router";
+import {ActivatedRoute, Router} from "@angular/router";
@Component({
selector: 'app-vehicle-edit',
@@ -10,16 +10,45 @@ import {Router} from "@angular/router";
export class VehicleEditComponent implements OnInit {
vehicle : any = {};
+ id: string = "0";
constructor(private vehicleService: VehicleService,
+ private activatedRoute : ActivatedRoute,
private router: Router) { }
ngOnInit(): void {
+ this.id = this.activatedRoute.snapshot.params['id'];
+
+ if(this.id && this.id != "0"){
+ this.getById();
+ }
}
- save() {
- this.vehicleService.create(this.vehicle).subscribe( {
+ getById(): void{
+ this.vehicleService.getById(this.id).subscribe({
+ next :(res)=>{
+ if(res.success){
+ this.vehicle = res.data;
+ }
+ },
+ error:(err)=>{
+
+ }
+ })
+ }
+
+ save(): void {
+
+ if(this.id == "0"){
+ this.create(this.vehicle);
+ }else {
+ this.update(this.vehicle);
+ }
+ }
+
+ create(vehicle: any): void{
+ this.vehicleService.create(vehicle).subscribe( {
next: (res)=>{
if(res.success){
this.router.navigateByUrl("/app/vehicle").then();
@@ -27,4 +56,15 @@ export class VehicleEditComponent implements OnInit {
}
})
}
+
+ update(vehicle: any): void {
+ this.vehicleService.update(vehicle).subscribe( {
+ next: (res)=>{
+ if(res.success){
+ this.router.navigateByUrl("/app/vehicle").then();
+ }
+ }
+ })
+ }
+
}
diff --git a/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.html b/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.html
index dcc67d1..a22ce25 100644
--- a/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.html
+++ b/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.html
@@ -1,6 +1,18 @@
+
+
+
+ Recherche
+
+
+
+
+
Filtre pard ta
+
+
+
-
+
@@ -18,9 +30,9 @@
{{product.model}} |
{{product.matricule}} |
-
-
-
+
+
+
|
diff --git a/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.ts b/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.ts
index 62b6d85..b6fcc3b 100644
--- a/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.ts
+++ b/src/app/features/vehicle/page/vehicle-list/vehicle-list.component.ts
@@ -8,6 +8,13 @@ import {VehicleService} from "../../service/vehicle.service";
styleUrls: ['./vehicle-list.component.scss']
})
export class VehicleListComponent implements OnInit {
+
+ //1. filter
+ searchTerm : string = "";
+ params : any = {};
+
+ //2. table
+
vehicles: any[] = [];
constructor(private router: Router,
@@ -15,11 +22,16 @@ export class VehicleListComponent implements OnInit {
}
ngOnInit(): void {
- this.getServices();
+ this.params.search = "";
+ this.params.fields = ["matricule", "mark", "model"];
+ this.params.page = 1;
+ this.params.limit = 5;
+ this.getVehicles();
}
- getServices() {
- this.vehicleService.getAll().subscribe({
+ getVehicles() {
+
+ this.vehicleService.getAll(this.params).subscribe({
next: (res) => {
if (res.success) {
this.vehicles = res.data;
@@ -28,16 +40,27 @@ export class VehicleListComponent implements OnInit {
})
}
- edit(): void {
- /*
- let vehicle : any = {};
- vehicle.model = "RangeRoger";
- vehicle.mark = "Sport";
- vehicle.matricule = "535353";
-
- this.vehicles.push(vehicle);
- */
- this.router.navigateByUrl('/app/vehicle/edit').then();
+ edit(_id: string): void {
+ this.router.navigateByUrl('/app/vehicle/edit/'+_id).then();
+ }
+ view(_id: string): void {
+ this.router.navigateByUrl('/app/vehicle/view/'+_id).then();
}
+ protected readonly visualViewport = visualViewport;
+
+ delete(_id: string): void {
+ this.vehicleService.delete(_id).subscribe({
+ next: (res)=>{
+ if(res.success){
+ this.getVehicles();
+ }
+ }
+ })
+ }
+
+ search() {
+ this.params.search = this.searchTerm;
+ this.getVehicles()
+ }
}
diff --git a/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.html b/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.html
index e5a89af..6922491 100644
--- a/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.html
+++ b/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.html
@@ -1 +1,14 @@
-vehicle-view works!
+
+
+
+ {{vehicle.mark }}
+
+
+ {{vehicle.model}}
+
+
+ {{vehicle.matricule}}
+
+
+
+
diff --git a/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.ts b/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.ts
index 4fdb71a..96e0031 100644
--- a/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.ts
+++ b/src/app/features/vehicle/page/vehicle-view/vehicle-view.component.ts
@@ -1,4 +1,6 @@
-import { Component, OnInit } from '@angular/core';
+import {ChangeDetectorRef, Component, OnInit} from '@angular/core';
+import {VehicleService} from "../../service/vehicle.service";
+import {ActivatedRoute, Router} from "@angular/router";
@Component({
selector: 'app-vehicle-view',
@@ -6,10 +8,39 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./vehicle-view.component.scss']
})
export class VehicleViewComponent implements OnInit {
+ vehicle : any = {};
+ id: string = "0";
- constructor() { }
+ constructor(private vehicleService: VehicleService,
+ private activatedRoute : ActivatedRoute,
+ private cdr: ChangeDetectorRef,
+ private router: Router) { }
ngOnInit(): void {
+ this.id = this.activatedRoute.snapshot.params['id'];
+
+ if(this.id && this.id != "0"){
+ this.getById();
+ }
+
}
+ getById(): void{
+ this.vehicleService.getById(this.id).subscribe({
+ next :(res)=>{
+ if(res.success){
+ this.vehicle = res.data;
+ this.cdr.detectChanges();
+ }
+ },
+ error:(err)=>{
+
+ }
+ })
+ }
+
+
+
+
+
}
diff --git a/src/app/features/vehicle/service/vehicle.service.ts b/src/app/features/vehicle/service/vehicle.service.ts
index a33962b..5dc1146 100644
--- a/src/app/features/vehicle/service/vehicle.service.ts
+++ b/src/app/features/vehicle/service/vehicle.service.ts
@@ -10,8 +10,8 @@ export class VehicleService {
url: string = "vehicle"
constructor(private http: HttpClient) { }
- getAll():Observable{
- return this.http.get(apiRoute+this.url);
+ getAll(params:any):Observable{
+ return this.http.get(apiRoute+this.url, {params});
}
getById(id: string):Observable {
@@ -23,7 +23,7 @@ export class VehicleService {
}
update(vehicle: any):Observable{
- return this.http.put(apiRoute+this.url+ "/"+vehicle.id,vehicle);
+ return this.http.put(apiRoute+this.url+ "/"+vehicle._id,vehicle);
}
delete(id: string):Observable{
diff --git a/src/app/features/vehicle/vehicle.module.ts b/src/app/features/vehicle/vehicle.module.ts
index e4e316b..da8f94b 100644
--- a/src/app/features/vehicle/vehicle.module.ts
+++ b/src/app/features/vehicle/vehicle.module.ts
@@ -15,11 +15,11 @@ const routes: Routes = [
component: VehicleListComponent
},
{
- path: 'edit',
+ path: 'edit/:id',
component: VehicleEditComponent
},
{
- path:'view',
+ path:'view/:id',
component:VehicleViewComponent
}
]