aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2016-12-09 15:57:09 +0100
committerThomas Haddad2016-12-09 15:58:22 +0100
commitd26d8517b13334956de84cb7b84d8e6e2ff51b13 (patch)
treeedaf18c3300f5b0f5a2efbc00710f44d5ebede64
parent8df23449499ad9934880db6a8856b5e25baacf5f (diff)
downloadchouette-core-d26d8517b13334956de84cb7b84d8e6e2ff51b13.tar.bz2
Add async RECEIVE_JOURNEY_PATTERN action Refs #2204
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com> Signed-off-by: Jean-Paul Lescouzeres <jean-paul.lescouzeres@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js37
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js21
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js40
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js0
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/index.js34
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js2
6 files changed, 72 insertions, 62 deletions
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
index a51c11b9c..5d2b0bdd2 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
@@ -1,3 +1,38 @@
-const actions = {}
+const actions = {
+ receiveJourneyPatterns : (state) => ({
+ type: "RECEIVE_JOURNEY_PATTERNS",
+ state
+ }),
+
+ fetchJourneyPatterns : (dispatch) => {
+ let state = []
+ let urlJSON = window.location.pathname + '.json'
+ let req = new Request(urlJSON, {
+ credentials: 'same-origin'
+ });
+ fetch(req)
+ .then(response => response.json())
+ .then((json) => {
+ console.log(json)
+ for (let [i, val] of json.entries()){
+ let stop_points = []
+ for (let [i, stopArea] of val['stop_area_short_descriptions'].entries()){
+ stop_points.push("id", false)
+ }
+ for (let [i, stopArea] of val['stop_area_short_descriptions'].entries()){
+ stop_points["id"] = true
+ }
+ state.push({
+ name: val.name,
+ object_id: val.object_id,
+ published_name: val.published_name
+ // stop_points: stop_points
+ })
+ }
+ dispatch(actions.receiveJourneyPatterns(state))
+ })
+ }
+}
+
module.exports = actions
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js
deleted file mode 100644
index b291494e4..000000000
--- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var React = require('react')
-var PropTypes = require('react').PropTypes
-var JourneyPattern = require('./JourneyPattern')
-
-const JourneyPatterns = ({ journeyPatterns }) => {
- return (
- <div className='list-group'>
- {journeyPatterns.map((journeyPattern, index) =>
- <JourneyPattern
- value={ journeyPattern }
- />
- )}
- </div>
- )
-}
-
-JourneyPatterns.propTypes = {
- journeyPatterns: PropTypes.array.isRequired
-}
-
-module.exports = JourneyPatterns
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js
index 0e3e57b21..a6710c690 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js
@@ -1,6 +1,34 @@
+var React = require('react')
+var Component = require('react').Component
+var PropTypes = require('react').PropTypes
var actions = require('../actions')
var connect = require('react-redux').connect
-var JourneyPatterns = require('../components/JourneyPatterns')
+var JourneyPattern = require('../components/JourneyPattern')
+
+class JourneyPatternList extends Component{
+ constructor(props) {
+ super(props)
+ }
+
+ componentDidMount() {
+ const dispatch = this.props.dispatch
+ const journeyPatterns = this.props.journeyPatterns
+ actions.fetchJourneyPatterns(dispatch)
+ }
+
+ render() {
+ return (
+ <div className='list-group'>
+ {this.props.journeyPatterns.map((journeyPattern, index) =>
+ <JourneyPattern
+ value={ journeyPattern }
+ key={ index }
+ />
+ )}
+ </div>
+ )
+ }
+}
const mapStateToProps = (state) => {
return {
@@ -8,13 +36,11 @@ const mapStateToProps = (state) => {
}
}
-const mapDispatchToProps = (dispatch) => {
- return {}
+JourneyPatternList.propTypes = {
+ dispatch: PropTypes.func.isRequired,
+ journeyPatterns: PropTypes.array.isRequired
}
-const JourneyPatternList = connect(
- mapStateToProps,
- mapDispatchToProps
-)(JourneyPatterns)
+JourneyPatternList = connect(mapStateToProps)(JourneyPatternList)
module.exports = JourneyPatternList
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js
index 626997f4c..e0104db09 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js
@@ -11,39 +11,7 @@ var createLogger = require('redux-logger')
var thunkMiddleware = require('redux-thunk').default
var promise = require('redux-promise')
-const urlJSON = window.location.pathname + '.json'
-var req = new Request(urlJSON, {
- credentials: 'same-origin'
-});
-const getInitialState = () => {
- console.log(urlJSON)
- let state = []
- fetch(req)
- .then(response => response.json())
- // .then(json => dispatch(receivePosts(reddit, json)))
- .then((json) => {
- console.log(json)
- for (let [i, val] of json.entries()){
- let stop_points = []
- for (let [i, stopArea] of val['stop_area_short_descriptions'].entries()){
- stop_points.push("id", false)
- }
- for (let [i, stopArea] of val['stop_area_short_descriptions'].entries()){
- stop_points["id"] = true
- }
- state.push({
- name: val.name,
- object_id: val.object_id,
- published_name: val.published_name
- // stop_points: stop_points
- })
- }
- })
- return state
-}
-
-
-var initialState = {journeyPatterns: getInitialState()}
+var initialState = {journeyPatterns: []}
const loggerMiddleware = createLogger()
let store = createStore(
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js
index a63c83be6..0d7dc569b 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js
@@ -1,5 +1,7 @@
const journeyPatterns = (state = [], action) => {
switch (action.type) {
+ case 'RECEIVE_JOURNEY_PATTERNS':
+ return [...action.state]
default:
return state
}