diff options
| author | Zog | 2018-02-27 14:38:51 +0100 | 
|---|---|---|
| committer | Zog | 2018-02-27 14:38:51 +0100 | 
| commit | 06ff047a212c8c1dd6eb1de10ce92f0059151d2a (patch) | |
| tree | cb642d585303489f293e8b5cf7a59b9bcc888a42 /app | |
| parent | f8609e6c8a4f460473991875df398e4509b09434 (diff) | |
| download | chouette-core-6036-fix-journeys-editor.tar.bz2 | |
Refs #6063; Fix the journeys time editor6036-fix-journeys-editor
Diffstat (limited to 'app')
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{ | 
