aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorThomas Haddad2017-01-10 17:23:58 +0100
committerThomas Haddad2017-01-10 17:25:27 +0100
commit1ed5294c5227c2f8d24cb78c71a87f8f4d58f1b9 (patch)
treec48fb6f1e8738b05ab74e4145e2df159e689eaa4 /app/assets/javascripts
parent60bd5e945f959c080b3c478b0495dc39466ca80f (diff)
downloadchouette-core-1ed5294c5227c2f8d24cb78c71a87f8f4d58f1b9.tar.bz2
Refs #2205: Fix confirm modal being opened only when journey patterns state changed
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js12
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js4
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js48
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js39
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/index.js3
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js2
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js4
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js19
8 files changed, 86 insertions, 45 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 a294e69ba..1819ee742 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
@@ -28,10 +28,16 @@ const actions = {
id : e.currentTarget.id,
index
}),
- openConfirmModal : (accept, cancel) => ({
+ checkConfirmModal : (event, callback, stateChanged) => {
+ if(stateChanged === true){
+ return actions.openConfirmModal(callback)
+ }else{
+ return callback
+ }
+ },
+ openConfirmModal : (callback) => ({
type : 'OPEN_CONFIRM_MODAL',
- accept,
- cancel
+ callback
}),
openEditModal : (index, journeyPattern) => ({
type : 'EDIT_JOURNEYPATTERN_MODAL',
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js
index 86bbe3acb..d9fbf07f8 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js
@@ -14,7 +14,7 @@ const ConfirmModal = ({dispatch, modal, onModalAccept, onModalCancel, journeyPat
className='btn btn-default'
data-dismiss='modal'
type='button'
- onClick= {() => {onModalCancel(modal.confirmModal.cancel)}}
+ onClick= {() => {onModalCancel(modal.confirmModal.callback)}}
>
Ne pas enregistrer
</button>
@@ -22,7 +22,7 @@ const ConfirmModal = ({dispatch, modal, onModalAccept, onModalCancel, journeyPat
className='btn btn-danger'
data-dismiss='modal'
type='button'
- onClick = {() => {onModalAccept(modal.confirmModal.accept, journeyPatterns)}}
+ onClick = {() => {onModalAccept(modal.confirmModal.callback, journeyPatterns)}}
>
Enregistrer
</button>
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js
new file mode 100644
index 000000000..3c771417d
--- /dev/null
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js
@@ -0,0 +1,48 @@
+var React = require('react')
+var Component = require('react').Component
+var PropTypes = require('react').PropTypes
+var actions = require('../actions')
+
+let Navigate = ({ dispatch, journeyPatterns, page, length, stateChanged }) => {
+ let firstPage = 1
+ let lastPage = Math.ceil(length / 12)
+
+ return (
+ <form className='btn-group btn-group-sm' onSubmit={e => {
+ e.preventDefault()
+ }}>
+ <button
+ onClick={e => {
+ e.preventDefault()
+ dispatch(actions.checkConfirmModal(e, actions.goToPreviousPage(dispatch, page), stateChanged))
+ }}
+ type="submit"
+ data-toggle=''
+ data-target='#ConfirmModal'
+ className={ (page == firstPage ? "hidden" : "") + " btn btn-default" }>
+ <span className="fa fa-chevron-left"></span>
+ </button>
+ <button
+ onClick={e => {
+ e.preventDefault()
+ dispatch(actions.checkConfirmModal(e, actions.goToNextPage(dispatch, page), stateChanged))
+ }}
+ type="submit"
+ data-toggle=''
+ data-target='#ConfirmModal'
+ className={ (page == lastPage ? "hidden" : "") + " btn btn-default" }>
+ <span className="fa fa-chevron-right"></span>
+ </button>
+ </form>
+ )
+}
+
+Navigate.propTypes = {
+ page: PropTypes.number.isRequired,
+ length: PropTypes.number.isRequired,
+ stateChanged: PropTypes.bool.isRequired,
+ journeyPatterns: PropTypes.array.isRequired,
+ dispatch: PropTypes.func.isRequired
+}
+
+module.exports = Navigate
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js
index 1c9f7113f..d324e6064 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js
@@ -1,49 +1,18 @@
var React = require('react')
var connect = require('react-redux').connect
var actions = require('../actions')
+var NavigateComponent = require('../components/Navigate')
-let Navigate = ({ dispatch, journeyPatterns, page, length, onOpenConfirmModal }) => {
- let firstPage = 1
- let lastPage = Math.ceil(length / 12)
-
- return (
- <form className='btn-group btn-group-sm' onSubmit={e => {
- e.preventDefault()
- }}>
- <button
- onClick={e => {
- e.preventDefault()
- dispatch(actions.openConfirmModal(actions.goToPreviousPage(dispatch, page), actions.goToPreviousPage(dispatch, page)))
- }}
- type="submit"
- data-toggle='modal'
- data-target='#ConfirmModal'
- className={ (page == firstPage ? "hidden" : "") + " btn btn-default" }>
- <span className="fa fa-chevron-left"></span>
- </button>
- <button
- onClick={e => {
- e.preventDefault()
- dispatch(actions.openConfirmModal(actions.goToNextPage(dispatch, page), actions.goToNextPage(dispatch, page)))
- }}
- type="submit"
- data-toggle='modal'
- data-target='#ConfirmModal'
- className={ (page == lastPage ? "hidden" : "") + " btn btn-default" }>
- <span className="fa fa-chevron-right"></span>
- </button>
- </form>
- )
-}
const mapStateToProps = (state) => {
return {
journeyPatterns: state.journeyPatterns,
page: state.pagination.page,
length: state.pagination.totalCount,
- confirmModalActions: state.modal.confirmActions
+ stateChanged: state.pagination.stateChanged
}
}
-Navigate = connect(mapStateToProps)(Navigate)
+
+const Navigate = connect(mapStateToProps)(NavigateComponent)
module.exports = Navigate
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js
index 449cd3202..47d6dc31f 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js
@@ -15,7 +15,8 @@ var initialState = {
journeyPatterns: [],
pagination: {
page : 1,
- totalCount: window.journeyPatternLength
+ totalCount: window.journeyPatternLength,
+ stateChanged: false
},
modal: {
type: '',
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 9215f801b..8dd1a46e6 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js
@@ -38,11 +38,13 @@ const journeyPatterns = (state = [], action) => {
case 'LOAD_FIRST_PAGE':
actions.fetchJourneyPatterns(action.dispatch)
case 'GO_TO_PREVIOUS_PAGE':
+ $('#ConfirmModal').modal('hide')
if(action.currentPage > 1){
actions.fetchJourneyPatterns(action.dispatch, action.currentPage, action.nextPage)
}
return state
case 'GO_TO_NEXT_PAGE':
+ $('#ConfirmModal').modal('hide')
if (window.journeyPatternLength - (action.currentPage * 12) > 0){
actions.fetchJourneyPatterns(action.dispatch, action.currentPage, action.nextPage)
}
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 85df48954..cb274d767 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js
@@ -1,11 +1,11 @@
const modal = (state = {}, action) => {
switch (action.type) {
case 'OPEN_CONFIRM_MODAL':
+ $('#ConfirmModal').modal('show')
return Object.assign({}, state, {
type: 'confirm',
confirmModal: {
- accept: action.accept,
- cancel: action.cancel
+ callback: action.callback,
}
})
case 'EDIT_JOURNEYPATTERN_MODAL':
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js
index a17e9f292..3ac5ba7c0 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js
@@ -1,18 +1,33 @@
const pagination = (state = {}, action) => {
switch (action.type) {
+ case 'RECEIVE_JOURNEY_PATTERNS':
+ return Object.assign({}, state, {stateChanged: false})
case 'GO_TO_PREVIOUS_PAGE':
if (action.currentPage > 1){
- return Object.assign({}, state, {page : action.currentPage - 1})
+ toggleOnConfirmModal()
+ return Object.assign({}, state, {page : action.currentPage - 1, stateChanged: false})
}
return state
case 'GO_TO_NEXT_PAGE':
if (state.totalCount - (action.currentPage * 12) > 0){
- return Object.assign({}, state, {page : action.currentPage + 1})
+ toggleOnConfirmModal()
+ return Object.assign({}, state, {page : action.currentPage + 1, stateChanged: false})
}
return state
+ case 'UPDATE_CHECKBOX_VALUE':
+ case 'ADD_JOURNEYPATTERN':
+ case 'SAVE_MODAL':
+ toggleOnConfirmModal('modal')
+ return Object.assign({}, state, {stateChanged: true})
default:
return state
}
}
+const toggleOnConfirmModal = (arg = '') =>{
+ $('.confirm').each(function(){
+ $(this).data('toggle','')
+ })
+}
+
module.exports = pagination