aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2016-11-07 17:17:58 +0100
committerThomas Haddad2016-11-08 18:15:12 +0100
commitc01ecd41cd89f3477ae5d7a27a66ffcfa2cc86a7 (patch)
tree6ebd2cddcf283fb767f33d02150808fc28abb7b5
parent53426aa8c9e41064fd69119f69e2106726ff4e3f (diff)
downloadchouette-core-c01ecd41cd89f3477ae5d7a27a66ffcfa2cc86a7.tar.bz2
Add retrieve datas when stop areas already exist
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com> Signed-off-by: Paul-Xavier Ceccaldi <paul-xavier.ceccaldi@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/actions/index.js4
-rw-r--r--app/assets/javascripts/es6_browserified/components/Todo.js4
-rw-r--r--app/assets/javascripts/es6_browserified/components/TodoList.js2
-rw-r--r--app/assets/javascripts/es6_browserified/getJSON.js4
-rw-r--r--app/assets/javascripts/es6_browserified/reducers/todos.js19
-rw-r--r--app/assets/javascripts/es6_browserified/stop_points.js29
-rw-r--r--app/views/routes/_form.html.slim1
7 files changed, 44 insertions, 19 deletions
diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js
index 06b0410b6..c0f64005e 100644
--- a/app/assets/javascripts/es6_browserified/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/actions/index.js
@@ -1,10 +1,8 @@
-let nextTodoId = 0
module.exports = {
addStop : () => {
return {
- type: 'ADD_STOP',
- id: nextTodoId++
+ type: 'ADD_STOP'
}
},
diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js
index 574f3ac88..aeee78295 100644
--- a/app/assets/javascripts/es6_browserified/components/Todo.js
+++ b/app/assets/javascripts/es6_browserified/components/Todo.js
@@ -9,10 +9,10 @@ const Todo = (props) => (
<div className='list-group-item' style={Container}>
<div style={firstBlock}>
<div style={{display: 'inline-block', width: '9%'}}>
- <span className='strong'>Id: {props.id}</span>
+ <span className='strong'>Id: {props.index}</span>
</div>
<div style={{display: 'inline-block', width: '91%'}}>
- <input type='text' className='form-control' id={'route_stop_points_' + props.id} value={props.text} onChange={props.onChange}/>
+ <input type='text' className='form-control' id={'route_stop_points_' + props.index} value={props.text} onChange={props.onChange}/>
</div>
</div>
diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js
index 96991e76b..768c691bb 100644
--- a/app/assets/javascripts/es6_browserified/components/TodoList.js
+++ b/app/assets/javascripts/es6_browserified/components/TodoList.js
@@ -21,7 +21,7 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChan
TodoList.propTypes = {
todos: PropTypes.arrayOf(PropTypes.shape({
- id: PropTypes.number.isRequired,
+ index: PropTypes.number.isRequired,
}).isRequired).isRequired,
onDeleteClick: PropTypes.func.isRequired,
onMoveUpClick: PropTypes.func.isRequired,
diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js
deleted file mode 100644
index c65336b2d..000000000
--- a/app/assets/javascripts/es6_browserified/getJSON.js
+++ /dev/null
@@ -1,4 +0,0 @@
-data = decodeURIComponent(window.itinerary_stop)
-JSONobject = JSON.parse(data)
-
-console.log("JSON", JSONobject)
diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js
index 53bceb62d..d5a02f40a 100644
--- a/app/assets/javascripts/es6_browserified/reducers/todos.js
+++ b/app/assets/javascripts/es6_browserified/reducers/todos.js
@@ -1,17 +1,15 @@
-const todo = (state = {}, action) => {
+const todo = (state = {}, action, length) => {
switch (action.type) {
case 'ADD_STOP':
return {
text: '',
- id: action.id
+ index: length
}
case 'UPDATE_INPUT_VALUE':
- if (state.id !== action.index) {
+ if (state.index !== action.index) {
return state
}
- // console.log('action', action)
- // console.log('state', state)
return Object.assign(
{},
state,
@@ -27,9 +25,11 @@ const todos = (state = [], action) => {
case 'ADD_STOP':
return [
...state,
- todo(undefined, action)
+ todo(undefined, action, state.length)
]
case 'MOVE_STOP_UP':
+ state[action.index].index = state[action.index - 1].index
+ state[action.index - 1].index = state[action.index].index + 1
return [
...state.slice(0, action.index - 1),
state[action.index],
@@ -37,6 +37,8 @@ const todos = (state = [], action) => {
...state.slice(action.index + 1)
]
case 'MOVE_STOP_DOWN':
+ state[action.index + 1].index = state[action.index].index
+ state[action.index].index = state[action.index + 1].index + 1
return [
...state.slice(0, action.index),
state[action.index + 1],
@@ -46,7 +48,10 @@ const todos = (state = [], action) => {
case 'DELETE_STOP':
return [
...state.slice(0, action.index),
- ...state.slice(action.index + 1)
+ ...state.slice(action.index + 1).map((todo)=>{
+ todo.index--
+ return todo
+ })
]
case 'UPDATE_INPUT_VALUE':
return state.map(t =>
diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js
index a324ef5bd..41c99c90f 100644
--- a/app/assets/javascripts/es6_browserified/stop_points.js
+++ b/app/assets/javascripts/es6_browserified/stop_points.js
@@ -2,10 +2,37 @@ var React = require('react')
var render = require('react-dom').render
var Provider = require('react-redux').Provider
var createStore = require('redux').createStore
+// var applyMiddleware = require('redux').applyMiddleware
var todoApp = require('./reducers')
var App = require('./components/App')
+// var createLogger = require('redux-logger').default
+// var thunkMiddleware = require('redux-thunk').default
+// var promise = require('redux-promise')
-let store = createStore(todoApp)
+const getInitialState = () => {
+ let state = []
+ let datas = JSON.parse(decodeURIComponent(window.itinerary_stop))
+ for (let [index, value] of datas.entries()){
+ state.push({
+ index: index,
+ text: value.name,
+ city_name: value.city_name,
+ zip_code: value.zip_code
+ })
+ }
+ console.log(state)
+ return state
+}
+
+var initialState = {todos: getInitialState()}
+// const loggerMiddleware = createLogger()
+let store = createStore(
+ todoApp,
+ initialState
+ // applyMiddleware(thunkMiddleware, promise, loggerMiddleware)
+)
+
+console.log(store.getState())
render(
<Provider store={store}>
diff --git a/app/views/routes/_form.html.slim b/app/views/routes/_form.html.slim
index 9a42a3e26..2b1fe0687 100644
--- a/app/views/routes/_form.html.slim
+++ b/app/views/routes/_form.html.slim
@@ -50,7 +50,6 @@
// Get JSON data for route stop points
= javascript_tag do
| window.itinerary_stop = "#{URI.escape(@route.stop_areas.all.to_json)}"
-= javascript_include_tag 'es6_browserified/getJSON.js'
/ StopPoints Reactux component
= javascript_include_tag 'es6_browserified/stop_points.js'