From 0c51fef24424045597a9be946e1db2464b3b6d37 Mon Sep 17 00:00:00 2001 From: Pablo Fraile Alonso Date: Tue, 21 Nov 2023 17:09:10 +0100 Subject: [PATCH] feat: more information about past date --- app/src/app/app.component.html | 4 ++-- app/src/app/app.component.ts | 2 +- .../reservation-picker.component.html | 4 ++-- app/src/app/pages/reservations/reservations.store.ts | 12 ++++++++++-- .../app/schemas/reservations/create-reservation.ts | 12 ++++++++++-- app/src/assets/i18n/ca.json | 3 ++- app/src/assets/i18n/en.json | 3 ++- app/src/assets/i18n/es.json | 3 ++- 8 files changed, 31 insertions(+), 12 deletions(-) diff --git a/app/src/app/app.component.html b/app/src/app/app.component.html index bcf45ec..33ceb12 100644 --- a/app/src/app/app.component.html +++ b/app/src/app/app.component.html @@ -68,8 +68,8 @@ diff --git a/app/src/app/app.component.ts b/app/src/app/app.component.ts index cf118ce..0cefcbf 100644 --- a/app/src/app/app.component.ts +++ b/app/src/app/app.component.ts @@ -30,7 +30,7 @@ export class AppComponent implements OnInit { isMapLoading$: Observable = this.store.select(isMapLoading); public alertButtons = [ { - text: 'OK', + text: this.translateService.instant('HOME.CLIENT_ERROR.OKAY_BUTTON'), role: 'confirm', handler: () => { this.store.dispatch(fixFatalError()); diff --git a/app/src/app/components/reservation-picker/reservation-picker.component.html b/app/src/app/components/reservation-picker/reservation-picker.component.html index e57d986..6847879 100644 --- a/app/src/app/components/reservation-picker/reservation-picker.component.html +++ b/app/src/app/components/reservation-picker/reservation-picker.component.html @@ -15,8 +15,8 @@ diff --git a/app/src/app/pages/reservations/reservations.store.ts b/app/src/app/pages/reservations/reservations.store.ts index 80dfe7c..6718a77 100644 --- a/app/src/app/pages/reservations/reservations.store.ts +++ b/app/src/app/pages/reservations/reservations.store.ts @@ -239,10 +239,11 @@ export class ReservationsComponentStore extends ComponentStore + .with(CreateReservationDataError.INVALID_DATE_ALREADY_RESERVED, () => this.store.dispatch( customMinorError({ - error: 'RESERVATIONS.CREATE_OPERATION.INVALID_DATE', + error: + 'RESERVATIONS.CREATE_OPERATION.INVALID_DATE_ALREADY_RESERVED', }), ), ) @@ -253,6 +254,13 @@ export class ReservationsComponentStore extends ComponentStore + this.store.dispatch( + customMinorError({ + error: 'RESERVATIONS.CREATE_OPERATION.INVALID_DATE_PAST', + }), + ), + ) .otherwise((error) => this.store.dispatch(minorError({ error }))); } diff --git a/app/src/app/schemas/reservations/create-reservation.ts b/app/src/app/schemas/reservations/create-reservation.ts index a3e3036..a687a49 100644 --- a/app/src/app/schemas/reservations/create-reservation.ts +++ b/app/src/app/schemas/reservations/create-reservation.ts @@ -7,7 +7,8 @@ import { getErrorFrom } from '../errors/all-errors'; export enum CreateReservationDataError { REFUGE_OR_USER_NOT_FOUND = 'REFUGE_OR_USER_NOT_FOUND', - INVALID_DATE = 'INVALID_DATE', + INVALID_DATE_ALREADY_RESERVED = 'INVALID_DATE_ALREADY_RESERVED', + INVALID_DATE_PAST_DATE = 'INVALID_DATE_IS_PAST', NTP_SERVER_IS_DOWN = 'NTP_SERVER_IS_DOWN', } @@ -28,7 +29,14 @@ export namespace CreateReservationError { 'User already has a reservation on this date', ) ) - return CreateReservationDataError.INVALID_DATE; + return CreateReservationDataError.INVALID_DATE_ALREADY_RESERVED; + if ( + error.error.detail !== undefined && + error.error.detail.includes( + 'You cannot make a reservation for a past date', + ) + ) + return CreateReservationDataError.INVALID_DATE_PAST_DATE; return PermissionsErrors.NOT_ALLOWED_OPERATION_FOR_USER; }) .with( diff --git a/app/src/assets/i18n/ca.json b/app/src/assets/i18n/ca.json index c3cabc6..405e5d1 100644 --- a/app/src/assets/i18n/ca.json +++ b/app/src/assets/i18n/ca.json @@ -118,7 +118,8 @@ }, "CREATE_OPERATION": { "CORRECT": "Reserva al dia {{day}} creada!", - "INVALID_DATE": "La data seleccionada no és vàlida.", + "INVALID_DATE_PAST": "No pots seleccionar una data passada", + "INVALID_DATE_ALREADY_RESERVED": "No pots seleccionar una data ja reservada", "NOT_ALLOWED_CREATION_FOR_USER": "No pots crear una reserva per a un altre usuari", "REFUGE_OR_USER_NOT_FOUND": "Refugi o usuari ha estat eliminat, refresca la pàgina" }, diff --git a/app/src/assets/i18n/en.json b/app/src/assets/i18n/en.json index 0924d68..8a403dd 100644 --- a/app/src/assets/i18n/en.json +++ b/app/src/assets/i18n/en.json @@ -118,7 +118,8 @@ }, "CREATE_OPERATION": { "CORRECT": "Reservation on day {{day}} created!", - "INVALID_DATE": "The selected date is invalid!", + "INVALID_DATE_PAST": "Can't select past date!", + "INVALID_DATE_ALREADY_RESERVED": "Can't select a date that is already reserved!", "NOT_ALLOWED_CREATION_FOR_USER": "You can't create a reservation for another user", "REFUGE_OR_USER_NOT_FOUND": "Refuge or user has been deleted, refresh the page" }, diff --git a/app/src/assets/i18n/es.json b/app/src/assets/i18n/es.json index 35a5e91..7ffb36d 100644 --- a/app/src/assets/i18n/es.json +++ b/app/src/assets/i18n/es.json @@ -118,7 +118,8 @@ }, "CREATE_OPERATION": { "CORRECT": "¡Reserva en el día {{day}} creada!", - "INVALID_DATE": "La fecha seleccionada no es válida.", + "INVALID_DATE_PAST": "No puedes seleccionar una fecha en el pasado", + "INVALID_DATE_ALREADY_RESERVED": "No puedes seleccionar una fecha que ya está reservada", "NOT_ALLOWED_CREATION_FOR_USER": "No puedes crear una reserva para otro usuario", "REFUGE_OR_USER_NOT_FOUND": "Refugio o usuario ha sido eliminado, actualiza la página" },