diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index fba7493..69fa6b4 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -5,6 +5,7 @@ import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import {LayoutModule} from "./layout/layout.module";
import {HttpClientModule} from "@angular/common/http";
+import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
@NgModule({
declarations: [
@@ -12,6 +13,7 @@ import {HttpClientModule} from "@angular/common/http";
],
imports: [
BrowserModule,
+ BrowserAnimationsModule,
AppRoutingModule,
LayoutModule,
HttpClientModule
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 f1f96b4..bdcf6d4 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,4 +1,5 @@
+
@@ -7,17 +8,30 @@
-
Filtre par date
+
+
+ Crée le |
Marque |
Modèle |
Matricule |
@@ -26,6 +40,7 @@
+ {{vehicle.createdAt | date:'dd-MM-yyyy à hh:mm'}} |
{{vehicle.mark}} |
{{vehicle.model}} |
{{vehicle.matricule}} |
@@ -37,3 +52,10 @@
+
+
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 de13e3b..61cbd3a 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
@@ -1,6 +1,7 @@
import {Component, OnInit} from '@angular/core';
import {Router} from "@angular/router";
import {VehicleService} from "../../service/vehicle.service";
+import {PaginatorState} from "primeng/paginator";
@Component({
selector: 'app-vehicle-list',
@@ -16,7 +17,12 @@ export class VehicleListComponent implements OnInit {
//2. table
vehicles: any[] = []; //Récupère les données sous forme de tableau
+ total: number = 0;
+ page: number = 0;
+ rows: number = 5;
+ first: number = 0;
+ filterDate: any;
constructor(private router: Router,
private vehicleService: VehicleService) {
}
@@ -24,17 +30,36 @@ export class VehicleListComponent implements OnInit {
ngOnInit(): void {
this.params.search = ""; //Propriété search de l'objet params : permet de stocker la recherche
this.params.fields = ["matricule", "mark", "model"]; //Propriété fields de l'objet params : permet de spécifier les champs à rechercher
- this.params.page = 1; //Propriété page de l'objet params : permet de stocker la page de début
- this.params.limit = 5; //Propriété limit de l'objet params : permet de stocker la page de fin.
+ this.params.page = 0; //Propriété page de l'objet params : permet de stocker la page de début
+ this.params.rows = 5; //Propriété limit de l'objet params : permet de stocker la page de fin.
+
+ if(this.searchTerm == ""){
+ delete this.params['fields'];
+ delete this.params['search'];
+ }else{
+ this.params.fields = ["matricule", "mark", "model"];
+ }
+
+
this.getVehicles();
}
getVehicles() {
+
+ // this.params["mark[ne]"] = "Toyota"
+ // this.params["mark[in]"] = "Toyota"
+ // this.params["createdAt[gt]"] = "2024-08-18"
+ // this.params["createdAt[lt]"] = "2024-08-16"
+
this.vehicleService.getAll(this.params).subscribe({
next: (res) => {
if (res.success) {
this.vehicles = res.data;
+ this.total = res.totalRecords;
+ this.page = res.page;
+ this.rows = res.rows;
+
}
}
})
@@ -63,4 +88,46 @@ export class VehicleListComponent implements OnInit {
this.params.search = this.searchTerm; //On a affecter à la propriété search de notre objet params le terme saisie ou rechercher
this.getVehicles()
}
+
+ onPageChange($event: PaginatorState) {
+ if(this.rows != $event.rows){
+ this.params.page = 0
+ }else{
+ this.params.page = Number($event.page);
+ }
+
+ this.params.rows = $event.rows;
+ this.getVehicles();
+ }
+
+ onChangeDate(dates: any) {
+ console.log(dates);
+
+ let dateSelect1 = dates[0];
+ let dateSelect2;
+ if(dates[1] && dates[1] != null){
+ dateSelect2 = new Date(dates[1]);
+ }else{
+ dateSelect2 = new Date(dateSelect1);
+ }
+
+ dateSelect2.setHours(23);
+ dateSelect2.setMinutes(59);
+ dateSelect2.setSeconds(59);
+
+ this.params['createdAt[gt]'] = new Date(dateSelect1);
+ this.params['createdAt[lt]'] = dateSelect2;
+
+
+ this.params.page = 0;
+ this.getVehicles();
+ }
+
+ reload() {
+ delete this.params['createdAt[gt]'];
+ delete this.params['createdAt[lt]'];
+ delete this.params['search'];
+ delete this.params['fields'];
+ this.getVehicles();
+ }
}
diff --git a/src/app/features/vehicle/vehicle.module.ts b/src/app/features/vehicle/vehicle.module.ts
index da8f94b..9fcf66a 100644
--- a/src/app/features/vehicle/vehicle.module.ts
+++ b/src/app/features/vehicle/vehicle.module.ts
@@ -8,6 +8,8 @@ import {TableModule} from "primeng/table";
import {ButtonModule} from "primeng/button";
import {InputTextModule} from "primeng/inputtext";
import {FormsModule} from "@angular/forms";
+import {PaginatorModule} from "primeng/paginator";
+import {CalendarModule} from "primeng/calendar";
const routes: Routes = [
{
@@ -30,14 +32,16 @@ const routes: Routes = [
VehicleEditComponent,
VehicleViewComponent
],
- imports: [
- CommonModule,
- RouterModule.forChild(routes),
- TableModule,
- ButtonModule,
- InputTextModule,
- FormsModule
- ]
+ imports: [
+ CommonModule,
+ RouterModule.forChild(routes),
+ TableModule,
+ ButtonModule,
+ InputTextModule,
+ FormsModule,
+ PaginatorModule,
+ CalendarModule
+ ]
})
export class VehicleModule {
}