import {Component} from '@angular/core'; import {UserService} from "../services/user.service"; import {ReservationService} from "../services/reservation.service"; import {BoatService} from "../services/boat.service"; @Component({ selector: 'app-manager-panel', templateUrl: './manager-panel.component.html', styleUrls: ['./manager-panel.component.css'] }) export class ManagerPanelComponent { reservations_info: any[] = []; compareFn = (a: any, b: any): number => { // Sort by date const dateComparison = a.date.localeCompare(b.date); if (dateComparison !== 0) { return dateComparison; } // Sort by hour return a.startHour - b.startHour; }; isANumber(value: any): boolean { return typeof value === 'number' } constructor(private userService: UserService, private reservationService: ReservationService, private boatService: BoatService) { this.reservationService.getReservations().subscribe( reservations => { this.reservations_info = reservations.map(r => { r.date = new Date(r.date).toISOString().split("T")[0] return r; }); this.boatService.getBoats().subscribe( boats => { this.reservations_info.map(r => { r.boatId = boats.find(b => b.id == r.boatId)!.name }) this.reservations_info.sort(this.compareFn) } ) this.userService.getAllUsers().subscribe( users => { this.reservations_info.map(r => { if (r.user == undefined) { r.userId = '*deleted*' } else { r.userId = r.user.username } }) } ) }) } cancelReservation(id: number) { this.reservationService.cancelReservation(id) this.reservations_info.find(r => r.bill.id === id).bill.status = "Cancelled" } confirmReservation(id: number) { this.reservationService.confirmReservation(id) this.reservations_info.find(r => r.bill.id === id).bill.status = "Confirmed" } }