Skip to content

Commit b00c96e

Browse files
committed
Added actions for elements
1 parent e3a2406 commit b00c96e

File tree

2 files changed

+60
-4
lines changed

2 files changed

+60
-4
lines changed

apps/car-rental/src/components/vehicles/vehicles-list/vehicles-list.component.html

+31
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,37 @@ <h2>Vehicle List</h2>
2828
{{ element.registrationNumber }}
2929
</td>
3030
</ng-container>
31+
<ng-container matColumnDef="customerEmail">
32+
<th mat-header-cell *matHeaderCellDef>Email Klienta</th>
33+
<td mat-cell *matCellDef="let element">
34+
{{ element.clientEmail }}
35+
</td>
36+
</ng-container>
37+
<ng-container matColumnDef="customerAddress">
38+
<th mat-header-cell *matHeaderCellDef>Adres Klienta</th>
39+
<td mat-cell *matCellDef="let element">
40+
{{ element.clientAddress }}
41+
</td>
42+
</ng-container>
43+
44+
<ng-container matColumnDef="actions">
45+
<th mat-header-cell *matHeaderCellDef>Actions</th>
46+
<td mat-cell *matCellDef="let element">
47+
<button mat-icon-button [matMenuTriggerFor]="menu">
48+
<mat-icon>more_vert</mat-icon>
49+
</button>
50+
<mat-menu #menu="matMenu">
51+
<button mat-menu-item (click)="editVehicle(element)">
52+
<mat-icon>edit</mat-icon>
53+
<span>Edit</span>
54+
</button>
55+
<button mat-menu-item (click)="removeVehicle(element)">
56+
<mat-icon>delete</mat-icon>
57+
<span>Remove</span>
58+
</button>
59+
</mat-menu>
60+
</td>
61+
</ng-container>
3162

3263
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
3364
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>

apps/car-rental/src/components/vehicles/vehicles-list/vehicles-list.component.ts

+29-4
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,65 @@
1-
import { Component, OnInit } from '@angular/core';
1+
import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { VehiclesService } from '../../../services/vehicles.service';
44
import { VehicleDto } from '../../../dtos/vehicle';
55
import { VehicleBrandDto } from '../../../dtos/vehicle-brand';
66
import { MatDividerModule } from '@angular/material/divider';
7-
import { MatTableModule } from '@angular/material/table';
7+
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
88
import { CreateVehicleFormComponent } from '../create-vehicle-form/create-vehicle-form.component';
9-
import { MatPaginatorModule } from '@angular/material/paginator';
9+
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
10+
import { MatIconModule } from '@angular/material/icon';
11+
import { MatMenuModule } from '@angular/material/menu';
12+
import { MatIconButton } from '@angular/material/button';
1013

1114
@Component({
1215
selector: 'app-vehicles-list',
1316
imports: [
1417
CommonModule,
1518
MatTableModule,
19+
MatMenuModule,
20+
MatIconButton,
21+
MatIconModule,
1622
MatPaginatorModule,
1723
MatDividerModule,
1824
CreateVehicleFormComponent,
1925
],
2026
templateUrl: './vehicles-list.component.html',
2127
styleUrl: './vehicles-list.component.css',
2228
})
23-
export class VehiclesListComponent implements OnInit {
29+
export class VehiclesListComponent implements OnInit, AfterViewInit {
2430
vehicles: VehicleDto[] = [];
2531
vehicleBrands: VehicleBrandDto[] = [];
2632
displayedColumns: string[] = [
2733
'brand',
2834
'registrationNumber',
2935
'vehicleIdentificationNumber',
36+
'customerEmail',
37+
'customerAddress',
38+
'actions',
3039
];
40+
dataSource = new MatTableDataSource<VehicleDto>(this.vehicles);
41+
@ViewChild(MatPaginator) paginator!: MatPaginator;
3142

3243
constructor(private readonly vehiclesService: VehiclesService) {}
3344

45+
ngAfterViewInit(): void {
46+
this.dataSource.paginator = this.paginator;
47+
}
48+
3449
ngOnInit(): void {
3550
this.loadVehicles();
3651
}
3752

53+
editVehicle(vehicle: any): void {
54+
// Implement edit vehicle logic here
55+
console.log('Edit vehicle:', vehicle);
56+
}
57+
58+
removeVehicle(vehicle: any): void {
59+
// Implement remove vehicle logic here
60+
console.log('Delete vehicle:', vehicle);
61+
}
62+
3863
loadVehicles(): void {
3964
this.vehiclesService.getVehicles().subscribe((response) => {
4065
this.vehicles = [...response.data];

0 commit comments

Comments
 (0)