From b99e3d0ee45f498f79799bdddcacd6b19eca81a3 Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 29 Dec 2016 12:14:50 +0100 Subject: refs #2210: adding save to modalProps, still have to dispatch to journeyPattern --- .../journey_patterns/actions/index.js | 4 + .../journey_patterns/components/Modal.js | 196 +++++++++++---------- .../journey_patterns/containers/Modal.js | 3 + .../journey_patterns/reducers/modal.js | 34 +++- 4 files changed, 139 insertions(+), 98 deletions(-) (limited to 'app/assets/javascripts') 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 2561a6add..c9f029bcd 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -37,6 +37,10 @@ const actions = { closeModal : () => ({ type : 'CLOSE_MODAL' }), + saveModal : (data) => ({ + type: 'SAVE_MODAL', + data + }), savePage : (dispatch, currentPage) => ({ type: 'SAVE_PAGE', dispatch diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js index 869d14f1e..cfc53d302 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js @@ -1,112 +1,130 @@ var React = require('react') +var Component = require('react').Component var PropTypes = require('react').PropTypes -const ModalComponent = (props) => { - return ( -
-
-
-
-

- Modifier la mission - {props.modal.open && ( - "{props.modal.modalProps.journeyPattern.name}" - )} -

-
- +class ModalComponent extends Component { + constructor(props) { + super(props) + } + handleSubmit(e) { + e.preventDefault() + this.props.saveModal(this.refs) + } - + + + + + +
+ {this.props.modal.open && ( + this.props.modal.modalProps.journeyPattern.deletable ? +
La mission a été supprimée. Cette action sera effective après validation.
+ : + '' + )}
- {props.modal.open && ( - props.modal.modalProps.journeyPattern.deletable ? -
La mission a été supprimée. Cette action sera effective après validation.
- : - '' - )} -
-
- {props.modal.open && ( -
-
- - -
+
+ {this.props.modal.open && ( + +
+ + +
-
-
-
- - +
+
+
+ + +
-
-
-
- - +
+
+ + +
-
- - )} -
-
- - + + )} +
+
+ + +
-
- ) + ) + } } ModalComponent.propTypes = { index: PropTypes.number, modal: PropTypes.object, onModalClose: PropTypes.func.isRequired, + saveModal: PropTypes.func.isRequired, onDeleteJourneyPattern: PropTypes.func.isRequired } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js index 06f4d0e13..c60b05403 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js @@ -15,6 +15,9 @@ const mapDispatchToProps = (dispatch) => { }, onDeleteJourneyPattern: (index, journeyPattern) =>{ dispatch(actions.deleteJourneyPattern(index, journeyPattern)) + }, + saveModal: (data) =>{ + dispatch(actions.saveModal(data)) } } } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js index 1ee7f64c0..577987997 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js @@ -1,3 +1,18 @@ +const updatedJourneyPattern = (state = {}, action) => { + switch (action.type) { + case 'DELETE_JOURNEYPATTERN_MODAL': + return Object.assign({}, state, { deletable: true }) + case 'SAVE_MODAL': + return Object.assign({}, state, { + name: action.data.name.value, + published_name: action.data.published_name.value, + registration_number: action.data.registration_number.value + }) + default: + return state + } +} + const modal = (state = {}, action) => { switch (action.type) { case 'UPDATE_JOURNEYPATTERN_MODAL': @@ -11,17 +26,18 @@ const modal = (state = {}, action) => { case 'DELETE_JOURNEYPATTERN_MODAL': return Object.assign({}, state, { modalProps: { - index: action.index, - journeyPattern: { - name: action.journeyPattern.name, - object_id: action.journeyPattern.object_id, - published_name: action.journeyPattern.published_name, - registration_number: action.journeyPattern.registration_number, - stop_points: action.journeyPattern.stop_points, - deletable: true - } + index: state.modalProps.index, + journeyPattern: updatedJourneyPattern(state.modalProps.journeyPattern, action) } }) + case 'SAVE_MODAL': + return Object.assign({}, state, { + modalProps: { + index: state.modalProps.index, + journeyPattern: updatedJourneyPattern(state.modalProps.journeyPattern, action) + } + }) + case 'CLOSE_MODAL': return { open: false, -- cgit v1.2.3