diff options
| author | Thomas Haddad | 2017-03-10 11:39:03 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2017-03-10 11:39:03 +0100 |
| commit | 8ddfc8c0441eaa29fee3974d9d74d078ddc83502 (patch) | |
| tree | 86477122517de4cdac0d290afd195c9ccf331174 | |
| parent | 35f49c9df1c615edc7cd8fca10c225972ffbe81d (diff) | |
| download | chouette-core-8ddfc8c0441eaa29fee3974d9d74d078ddc83502.tar.bz2 | |
Refs #2501: Add queryString to vj state when coming from a journeypattern
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Signed-off-by: Jean-Paul Lescouzeres <jean-paul.lescouzeres@af83.com>
5 files changed, 25 insertions, 6 deletions
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js index 25fa3b221..d6de64256 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -350,6 +350,11 @@ const actions = { return d.toString() } }, + encodeParams: (params) => { + let esc = encodeURIComponent + let queryString = Object.keys(params).map((k) => esc(k) + '=' + esc(params[k])).join('&') + return queryString + }, fillEmptyFields: (vjas) => { if (vjas.departure_time.hour == null) vjas.departure_time.hour = '00' if (vjas.departure_time.minute == null) vjas.departure_time.minute = '00' diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js index ddf40b88d..fcc5fd153 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js @@ -9,7 +9,7 @@ class VehicleJourneys extends Component{ this.previousCity = undefined } componentDidMount() { - this.props.onLoadFirstPage() + this.props.onLoadFirstPage(this.props.filters) } componentDidUpdate(prevProps, prevState) { diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js index 7cedc3ec0..176a68500 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js @@ -13,9 +13,9 @@ const mapStateToProps = (state) => { const mapDispatchToProps = (dispatch) => { return { - onLoadFirstPage: () =>{ + onLoadFirstPage: (filters) =>{ dispatch(actions.fetchingApi()) - actions.fetchVehicleJourneys(dispatch) + actions.fetchVehicleJourneys(dispatch, undefined, undefined, filters.queryString) }, onUpdateTime: (e, subIndex, index, timeUnit, isDeparture, isArrivalsToggled) => { dispatch(actions.updateTime(e.target.value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled)) diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js index ce64d3692..517f5c922 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -4,10 +4,11 @@ var Provider = require('react-redux').Provider var createStore = require('redux').createStore var vehicleJourneysApp = require('./reducers') var App = require('./components/App') +var actions = require("./actions") var enableBatching = require('./batch').enableBatching // logger, DO NOT REMOVE -var applyMiddleware = require('redux').applyMiddleware +// var applyMiddleware = require('redux').applyMiddleware // var createLogger = require('redux-logger') // var thunkMiddleware = require('redux-thunk').default // var promise = require('redux-promise') @@ -62,6 +63,20 @@ var initialState = { confirmModal: {} } } + +if (window.jpOrigin){ + initialState.filters.query.journeyPattern = { + id: window.jpOrigin.id, + name: window.jpOrigin.name, + published_name: window.jpOrigin.published_name, + objectid: window.jpOrigin.objectid + } + let params = { + 'q[journey_pattern_id_eq]': initialState.filters.query.journeyPattern.id, + } + initialState.filters.queryString = actions.encodeParams(params) +} + // const loggerMiddleware = createLogger() let store = createStore( diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index c2deaf019..5b5ba0788 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -55,8 +55,7 @@ const filters = (state = {}, action) => { 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute), 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute) } - let esc = encodeURIComponent - let queryString = Object.keys(params).map((k) => esc(k) + '=' + esc(params[k])).join('&') + let queryString = actions.encodeParams(params) return Object.assign({}, state, {queryString: queryString}) default: return state |
