diff options
| author | Thomas Haddad | 2017-01-03 14:40:49 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2017-01-03 14:40:49 +0100 |
| commit | 7acfa52be2f41f0ccf94f892252fed0bffc0aa1a (patch) | |
| tree | 100dfc7e64aad2fdeab9114e4b74c09bfa94b61a /app/assets/javascripts | |
| parent | ce223962fd2600916ede138d891cd61277165b77 (diff) | |
| download | chouette-core-7acfa52be2f41f0ccf94f892252fed0bffc0aa1a.tar.bz2 | |
Refs #2206: fix addJourneyPattern and provide stop_points
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
4 files changed, 36 insertions, 27 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 79f58b16b..0342b5df1 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -45,6 +45,11 @@ const actions = { data, index }), + addJourneyPattern : (index, data) => ({ + type: 'ADD_JOURNEYPATTERN', + data, + index + }), savePage : (dispatch, currentPage) => ({ type: 'SAVE_PAGE', dispatch diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js index f22b28fe8..963a33284 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js @@ -8,7 +8,7 @@ class CreateModal extends Component { } handleSubmit(e) { e.preventDefault() - this.props.saveModal((this.props.journeyPatterns.length + 1), this.refs) + this.props.onAddJourneyPattern((this.props.journeyPatterns.length + 1), this.refs) } render() { @@ -99,7 +99,7 @@ CreateModal.propTypes = { modal: PropTypes.object, onOpenCreateModal: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired, - saveModal: PropTypes.func.isRequired + addJourneyPattern: PropTypes.func.isRequired } module.exports = CreateModal diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js index 0a743b2be..a4c5c09c9 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js @@ -14,8 +14,8 @@ const mapDispatchToProps = (dispatch) => { onModalClose: () =>{ dispatch(actions.closeModal()) }, - saveModal: (index, data) =>{ - dispatch(actions.saveModal(index, data)) + onAddJourneyPattern: (index, data) =>{ + dispatch(actions.addJourneyPattern(index, data)) }, onOpenCreateModal: () =>{ dispatch(actions.openCreateModal()) diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js index 8bd4c1142..68346b242 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js @@ -2,6 +2,18 @@ var actions = require("../actions") const journeyPattern = (state = {}, action) => { switch (action.type) { + case 'ADD_JOURNEYPATTERN': + const stop_points = state[0].stop_points.map((s)=>{ + s.checked = false + return s + }) + return { + name: action.data.name.value, + published_name: action.data.published_name.value, + registration_number: action.data.registration_number.value, + stop_points: stop_points, + deletable: false + } case 'UPDATE_CHECKBOX_VALUE': var updatedStopPoints = state.stop_points.map((s) => { if (s.id.toString() == action.id) { @@ -48,31 +60,23 @@ const journeyPatterns = (state = {}, action) => { return j } }) + case 'ADD_JOURNEYPATTERN': + return [ + ...state, + journeyPattern(state, action) + ] case 'SAVE_MODAL': - if(action.index > 12) { - // Save new item - const newJourneyPattern = { - name: action.data.name.value, - published_name: action.data.published_name.value, - registration_number: action.data.registration_number.value, - stop_points: [], - deletable: false + return state.map((j, i) =>{ + if(i == action.index) { + return Object.assign({}, j, { + name: action.data.name.value, + published_name: action.data.published_name.value, + registration_number: action.data.registration_number.value + }) + } else { + return j } - return state.concat(newJourneyPattern) - } else { - // Save existing item - return state.map((j, i) =>{ - if(i == action.index) { - return Object.assign({}, j, { - name: action.data.name.value, - published_name: action.data.published_name.value, - registration_number: action.data.registration_number.value - }) - } else { - return j - } - }) - } + }) case 'SAVE_PAGE': actions.submitJourneyPattern(action.dispatch, state) default: |
