From 755b07db36a10ffdbd315dff2b5315374eb3e58a Mon Sep 17 00:00:00 2001 From: Zog Date: Mon, 29 Jan 2018 10:32:05 +0100 Subject: Refs #5750; Add a validation on VehicleJourneys Ensure a time is set for all non-commercial stops --- app/javascript/vehicle_journeys/actions/index.js | 26 ++++++++++++++++++++++ .../components/SaveVehicleJourneys.js | 2 +- .../vehicle_journeys/components/VehicleJourney.js | 3 +++ .../vehicle_journeys/components/VehicleJourneys.js | 2 +- .../containers/SaveVehicleJourneys.js | 3 +++ .../vehicle_journeys/reducers/vehicleJourneys.js | 2 ++ 6 files changed, 36 insertions(+), 2 deletions(-) (limited to 'app/javascript') diff --git a/app/javascript/vehicle_journeys/actions/index.js b/app/javascript/vehicle_journeys/actions/index.js index 2675328e3..b01158212 100644 --- a/app/javascript/vehicle_journeys/actions/index.js +++ b/app/javascript/vehicle_journeys/actions/index.js @@ -380,6 +380,32 @@ const actions = { } }) }, + + validate : (dispatch, vehicleJourneys, next) => { + let valid = true + let vj, vjas + for (vj of vehicleJourneys){ + vj.errors = false + for(vjas of vj.vehicle_journey_at_stops){ + vjas.errors = null + if (vjas.area_kind == "non_commercial" && parseInt(vjas.departure_time.hour) == 0 && parseInt(vjas.departure_time.minute) == 0){ + vjas.errors = "Champ requis" + vj.errors = true + valid = false + } + } + } + dispatch(actions.didValidateVehicleJourneys(vehicleJourneys)) + if(valid){ + actions.submitVehicleJourneys(dispatch, vehicleJourneys, next) + } + }, + + didValidateVehicleJourneys : (vehicleJourneys) => ({ + type: 'DID_VALIDATE_VEHICLE_JOURNEYS', + vehicleJourneys + }), + submitVehicleJourneys : (dispatch, state, next) => { dispatch(actions.fetchingApi()) let urlJSON = window.location.pathname + "_collection.json" diff --git a/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js b/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js index 6e94b04a3..fb921df9c 100644 --- a/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js +++ b/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js @@ -13,7 +13,7 @@ export default class SaveVehicleJourneys extends SaveButton{ } submitForm(){ - this.props.onSubmitVehicleJourneys(this.props.dispatch, this.props.vehicleJourneys) + this.props.validate(this.props.vehicleJourneys, this.props.dispatch) } } diff --git a/app/javascript/vehicle_journeys/components/VehicleJourney.js b/app/javascript/vehicle_journeys/components/VehicleJourney.js index d240757a3..2b5783dda 100644 --- a/app/javascript/vehicle_journeys/components/VehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/VehicleJourney.js @@ -153,6 +153,9 @@ export default class VehicleJourney extends Component { /> + {vj.errors &&