aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/javascript/vehicle_journeys/actions/index.js9
-rw-r--r--app/javascript/vehicle_journeys/components/VehicleJourney.js4
-rw-r--r--app/javascript/vehicle_journeys/containers/VehicleJourneysList.js4
-rw-r--r--app/javascript/vehicle_journeys/reducers/vehicleJourneys.js4
4 files changed, 13 insertions, 8 deletions
diff --git a/app/javascript/vehicle_journeys/actions/index.js b/app/javascript/vehicle_journeys/actions/index.js
index e67753e4b..6d9119cdc 100644
--- a/app/javascript/vehicle_journeys/actions/index.js
+++ b/app/javascript/vehicle_journeys/actions/index.js
@@ -213,14 +213,15 @@ const actions = {
toggleArrivals : () => ({
type: 'TOGGLE_ARRIVALS',
}),
- updateTime : (val, subIndex, index, timeUnit, isDeparture, isArrivalsToggled) => ({
+ updateTime : (val, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency=false) => ({
type: 'UPDATE_TIME',
val,
subIndex,
index,
timeUnit,
isDeparture,
- isArrivalsToggled
+ isArrivalsToggled,
+ enforceConsistency
}),
resetStateFilters: () => ({
type: 'RESET_FILTERS'
@@ -487,10 +488,10 @@ const actions = {
vjas.delta = delta
return vjas
},
- adjustSchedule: (action, schedule) => {
+ adjustSchedule: (action, schedule, enforceConsistency=false) => {
// we enforce that the departure time remains after the arrival time
actions.getDelta(schedule)
- if(schedule.delta < 0){
+ if(enforceConsistency && schedule.delta < 0){
if(action.isDeparture){
schedule.arrival_time = schedule.departure_time
}
diff --git a/app/javascript/vehicle_journeys/components/VehicleJourney.js b/app/javascript/vehicle_journeys/components/VehicleJourney.js
index 7db0cee1c..d0a9343ed 100644
--- a/app/javascript/vehicle_journeys/components/VehicleJourney.js
+++ b/app/javascript/vehicle_journeys/components/VehicleJourney.js
@@ -132,6 +132,7 @@ export default class VehicleJourney extends Component {
disabled={!this.props.editMode || this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false}
readOnly={!this.props.editMode && !vj.dummy}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false)}}
+ onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false, true)}}
value={vj.arrival_time['hour']}
/>
<span>:</span>
@@ -143,6 +144,7 @@ export default class VehicleJourney extends Component {
disabled={!this.props.editMode || this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false}
readOnly={!this.props.editMode && !vj.dummy}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false)}}
+ onBlur={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false, true)}}
value={vj.arrival_time['minute']}
/>
</span>
@@ -163,6 +165,7 @@ export default class VehicleJourney extends Component {
disabled={!this.props.editMode || this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false}
readOnly={!this.props.editMode && !vj.dummy}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'hour', true, this.props.filters.toggleArrivals)}}
+ onBlur={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'hour', true, this.props.filters.toggleArrivals, true)}}
value={vj.departure_time['hour']}
/>
<span>:</span>
@@ -174,6 +177,7 @@ export default class VehicleJourney extends Component {
disabled={!this.props.editMode || this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.update'] == false}
readOnly={!this.props.editMode && !vj.dummy}
onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, "minute", true, this.props.filters.toggleArrivals)}}
+ onBlur={(e) => {this.props.onUpdateTime(e, i, this.props.index, "minute", true, this.props.filters.toggleArrivals, true)}}
value={vj.departure_time['minute']}
/>
</span>
diff --git a/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js b/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js
index 76d1c3a78..81d603fd4 100644
--- a/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js
+++ b/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js
@@ -20,8 +20,8 @@ const mapDispatchToProps = (dispatch) => {
dispatch(actions.fetchingApi())
actions.fetchVehicleJourneys(dispatch, undefined, undefined, filters.queryString, routeUrl)
},
- onUpdateTime: (e, subIndex, index, timeUnit, isDeparture, isArrivalsToggled) => {
- dispatch(actions.updateTime(e.target.value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled))
+ onUpdateTime: (e, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency=false) => {
+ dispatch(actions.updateTime(e.target.value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency))
},
onSelectVehicleJourney: (index) => {
dispatch(actions.selectVehicleJourney(index))
diff --git a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
index 8705b3cf2..9f78a4163 100644
--- a/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
+++ b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js
@@ -148,11 +148,11 @@ const vehicleJourney= (state = {}, action, keep) => {
newSchedule.departure_time[action.timeUnit] = actions.pad(action.val, action.timeUnit)
if(!action.isArrivalsToggled)
newSchedule.arrival_time[action.timeUnit] = newSchedule.departure_time[action.timeUnit]
- newSchedule = actions.adjustSchedule(action, newSchedule)
+ newSchedule = actions.adjustSchedule(action, newSchedule, action.enforceConsistency)
return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta})
}else{
newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val, action.timeUnit)
- newSchedule = actions.adjustSchedule(action, newSchedule)
+ newSchedule = actions.adjustSchedule(action, newSchedule, action.enforceConsistency)
return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta})
}
}else{