| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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"
- }
- }
|