src/app/utilisateurs/utilisateurs.component.ts
selector | bgui-utilisateurs |
standalone | true |
imports |
CommonModule
MatPaginator
MatTableModule
MatFormFieldModule
MatInputModule
CarouselComponent
MatCardModule
MatCardTitle
ReactiveFormsModule
MatButtonModule
MatIconModule
MatCheckboxModule
RouterOutlet
MatPaginatorModule
RouterLink
FormsModule
MatMenuModule
|
templateUrl | ./utilisateurs.component.html |
styleUrl | ./utilisateurs.component.scss |
Properties |
Methods |
constructor(http: HttpClient)
|
||||||
Parameters :
|
applyFilter | ||||||
applyFilter(event: Event)
|
||||||
Parameters :
Returns :
void
|
deleteUser |
deleteUser()
|
Returns :
void
|
editUser |
editUser()
|
Returns :
void
|
ngAfterViewInit |
ngAfterViewInit()
|
Returns :
void
|
ngOnInit |
ngOnInit()
|
Returns :
void
|
dataSource |
Default value : new MatTableDataSource(ELEMENT_DATA)
|
dataTypePaiements |
Type : any[]
|
Default value : []
|
displayedColumns |
Type : string[]
|
Default value : ['id', 'nom', 'prenom', 'email', 'actions']
|
paginator |
Type : MatPaginator | undefined
|
Decorators :
@ViewChild(MatPaginator)
|
import { Component, ViewChild } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table';
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
import { MatTableModule } from '@angular/material/table';
import { MatInputModule } from '@angular/material/input';
import { MatFormFieldModule } from '@angular/material/form-field';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule, MatCardTitle } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { RouterLink, RouterOutlet } from '@angular/router';
import { CarouselComponent } from '../shared/carousel/carousel.component';
import { MatMenuModule } from '@angular/material/menu';
import { HttpClient } from '@angular/common/http';
export interface IUsers {
id: number;
email: string;
nom: string;
prenom: string;
actions: string;
}
const ELEMENT_DATA: IUsers[] = [
{
id: 1,
nom: 'zaho',
prenom: 'qadi',
email: 'mrtlest@mail.com',
actions: '',
},
{
id: 2,
nom: 'taho',
prenom: 'vadi',
email: 'mrteust@mail.com',
actions: '',
},
{
id: 3,
nom: 'zaho',
prenom: 'dadi',
email: 'mrtetst@mail.com',
actions: '',
},
{
id: 4,
nom: 'kaho',
prenom: 'uadi',
email: 'mrtesbbt@mail.com',
actions: '',
},
{
id: 5,
nom: 'paho',
prenom: 'fadi',
email: 'mrtessst@mail.com',
actions: '',
},
{
id: 6,
nom: 'haho',
prenom: 'padi',
email: 'mrtesxxt@mail.com',
actions: '',
},
];
@Component({
selector: 'bgui-utilisateurs',
standalone: true,
imports: [
CommonModule,
MatPaginator,
MatTableModule,
MatFormFieldModule,
MatInputModule,
CarouselComponent,
MatCardModule,
MatCardTitle,
ReactiveFormsModule,
MatButtonModule,
MatIconModule,
MatCheckboxModule,
RouterOutlet,
MatPaginatorModule,
RouterLink,
FormsModule,
MatMenuModule,
],
providers: [],
templateUrl: './utilisateurs.component.html',
styleUrl: './utilisateurs.component.scss',
})
export class UtilisateursComponent {
constructor(private http: HttpClient) {}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
dataTypePaiements: any[] = [];
ngOnInit(): void {
this.http
.get('http://192.168.1.223:8000/operateur/')
// eslint-disable-next-line @typescript-eslint/no-explicit-any
.subscribe((results: any) => {
console.log('results==>', results);
this.dataTypePaiements = results.results;
console.log('dataTypePaiements===>', this.dataTypePaiements);
});
}
editUser() {
throw new Error('Method not implemented.');
}
deleteUser() {
throw new Error('Method not implemented.');
}
displayedColumns: string[] = ['id', 'nom', 'prenom', 'email', 'actions'];
dataSource = new MatTableDataSource(ELEMENT_DATA);
@ViewChild(MatPaginator) paginator!: MatPaginator | undefined;
ngAfterViewInit() {
if (this.paginator) {
this.dataSource.paginator = this.paginator;
}
}
applyFilter(event: Event) {
const filterValue = (event.target as HTMLInputElement).value;
this.dataSource.filter = filterValue.trim().toLowerCase();
}
}
<div class="container-fluid"><h3>Utilisateurs</h3></div>
<div class="page-title d-flex justify-content-between">
<a [routerLink]="['create-users/']" class="btn btn-sm btn-success m-2">
Ajouter un utilisateur
</a>
</div>
<div class="example-container mat-elevation-z8" style="margin-top: 40px">
<mat-form-field>
<mat-label>Filter</mat-label>
<input
class="textFilter"
matInput
(keyup)="applyFilter($event)"
placeholder="Ex. ium"
#input />
</mat-form-field>
<mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<!-- ID Column -->
<ng-container matColumnDef="id">
<mat-header-cell *matHeaderCellDef class="bold-text">ID</mat-header-cell>
<mat-cell *matCellDef="let user">{{ user.id }}</mat-cell>
</ng-container>
<!-- Nom Column -->
<ng-container matColumnDef="nom">
<mat-header-cell *matHeaderCellDef class="bold-text">Nom</mat-header-cell>
<mat-cell *matCellDef="let user">{{ user.nom }}</mat-cell>
</ng-container>
<!-- Prénoms Column -->
<ng-container matColumnDef="prenom">
<mat-header-cell *matHeaderCellDef class="bold-text"
>Prénoms</mat-header-cell
>
<mat-cell *matCellDef="let user">{{ user.prenom }}</mat-cell>
</ng-container>
<!-- Email Column -->
<ng-container matColumnDef="email">
<mat-header-cell *matHeaderCellDef class="bold-text"
>Email</mat-header-cell
>
<mat-cell *matCellDef="let user">{{ user.email }}</mat-cell>
</ng-container>
<!-- Actions Column -->
<ng-container matColumnDef="actions">
<mat-header-cell *matHeaderCellDef class="bold-text"
>Actions</mat-header-cell
>
<mat-cell *matCellDef="let user" style="text-align: right">
<a href="#" class="m-2" [routerLink]="['view-user']"
><mat-icon style="color: blue" title="Voir"
>remove_red_eye</mat-icon
></a
>
<a href="#" class="m-2" [routerLink]="['edit-user/id']"
><mat-icon style="color: green" title="Modifier">edit</mat-icon></a
>
<a href="#" class="m-2" [routerLink]="['delete-user/id']">
<mat-icon style="color: red" title="Supprimer">
delete_sweep
</mat-icon>
</a>
</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
</mat-table>
<mat-paginator
#paginator
[pageSize]="5"
[pageSizeOptions]="[5, 10, 20]"
[showFirstLastButtons]="true">
</mat-paginator>
</div>