diff options
| author | Thomas Haddad | 2016-11-09 16:38:09 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2016-11-09 16:40:26 +0100 |
| commit | 721532c9fb90ea55851dff8d51bfa29dd3209c4c (patch) | |
| tree | b8ce596a4b3a10bf7edf82193b8cca1c86640976 /app/assets/javascripts | |
| parent | 1d1c449573811f16e4360622d7c9baf27cf0aa72 (diff) | |
| download | chouette-core-721532c9fb90ea55851dff8d51bfa29dd3209c4c.tar.bz2 | |
Fix generate hidden inputs when submitting
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
4 files changed, 33 insertions, 7 deletions
diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 590e755fd..1c8dc2dff 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -60,7 +60,7 @@ class BSelect3 extends React.Component{ const BSelect2 = (props) => { return ( <Select2 - value={ props.value.id } + value={props.value.stoparea_id} onSelect={ props.onSelect } options={{ placeholder: 'SĂ©lectionnez un arrĂȘt existant...', diff --git a/app/assets/javascripts/es6_browserified/form_helper.js b/app/assets/javascripts/es6_browserified/form_helper.js new file mode 100644 index 000000000..5888f23b9 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/form_helper.js @@ -0,0 +1,10 @@ +module.exports = { + addInput : (name, value, index) => { + let form = document.querySelector('form') + let input = document.createElement('input') + input.setAttribute('type', 'hidden') + input.setAttribute('name', `route[stop_points_attributes][${index}][${name}]`) + input.setAttribute('value', value) + form.appendChild(input) + } +} diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index bf64632bd..351b6e0d0 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,3 +1,5 @@ +var addInput = require('../form_helper').addInput + const todo = (state = {}, action, length) => { switch (action.type) { case 'ADD_STOP': @@ -14,12 +16,19 @@ const todo = (state = {}, action, length) => { return Object.assign( {}, state, - {text: action.text.text, id: action.text.id} + {text: action.text.text, id: action.text.stoparea_id} ) default: return state } } +const updateFormForDeletion = (stop) =>{ + if (stop.stoppoint_id !== undefined){ + let now = Date.now() + addInput('id', stop.stoppoint_id, now) + addInput('_destroy', 'true', now) + } +} const todos = (state = [], action) => { switch (action.type) { @@ -43,6 +52,7 @@ const todos = (state = [], action) => { ...state.slice(action.index + 2) ] case 'DELETE_STOP': + updateFormForDeletion(state[action.index]) return [ ...state.slice(0, action.index), ...state.slice(action.index + 1).map((todo)=>{ diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 9c0195f2b..f8b8448cd 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -19,14 +19,14 @@ const getInitialState = () => { fancyText += ", " + value.zip_code + " " + value.city_name state.push({ - id: value.id, - name: value.name, + stoppoint_id: value.stoppoint_id, + stoparea_id: value.stoparea_id, + index: index, city_name: value.city_name, zip_code: value.zip_code, text: fancyText }) } - // console.log(state) return state } @@ -38,11 +38,17 @@ let store = createStore( // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) -// console.log(store.getState()) - render( <Provider store={store}> <App /> </Provider>, document.getElementById('stop_points') ) + +document.querySelector('input[name=commit]').addEventListener('click', (event)=>{ + let state = store.getState() + for (let [i, todo] of state.todos.entries()){ + addInput('id',todo.stoppoint_id, i) + addInput('stop_area_id',todo.stoparea_id, i) + } +}) |
