diff options
| author | Thomas Haddad | 2017-01-11 12:09:31 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2017-01-11 12:10:13 +0100 |
| commit | 221300caac758edf7cdb34ec26f41952a2401728 (patch) | |
| tree | f7d72303ee4eb942577bab5d38ffee30470514c5 /app/assets/javascripts | |
| parent | ac64a2c779174a7ecd125d761364cbe9b4e9e30a (diff) | |
| download | chouette-core-221300caac758edf7cdb34ec26f41952a2401728.tar.bz2 | |
Add update journey patterns length after submitting correct values
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
6 files changed, 22 insertions, 8 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 1819ee742..24fd37a34 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -17,10 +17,12 @@ const actions = { currentPage, nextPage : false }), - goToNextPage : (dispatch, currentPage) => ({ + goToNextPage : (dispatch, currentPage, totalCount, perPage) => ({ type: 'GO_TO_NEXT_PAGE', dispatch, currentPage, + totalCount, + perPage, nextPage : true }), updateCheckboxValue : (e, index) => ({ @@ -67,6 +69,10 @@ const actions = { type: 'SAVE_PAGE', dispatch }), + updateTotalCount: (diff) =>({ + type: 'UPDATE_TOTAL_COUNT', + diff + }), submitJourneyPattern : (dispatch, state, next) => { let urlJSON = window.location.pathname + ".json" let req = new Request(urlJSON, { @@ -147,6 +153,9 @@ const actions = { deletable: false }) } + if(journeyPatterns.length != window.journeyPatternsPerPage){ + dispatch(actions.updateTotalCount(journeyPatterns.length - window.journeyPatternsPerPage)) + } dispatch(actions.receiveJourneyPatterns(journeyPatterns)) }) } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js index 3c771417d..826781890 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js @@ -3,9 +3,9 @@ var Component = require('react').Component var PropTypes = require('react').PropTypes var actions = require('../actions') -let Navigate = ({ dispatch, journeyPatterns, page, length, stateChanged }) => { +let Navigate = ({ dispatch, journeyPatterns, page, stateChanged, totalCount, perPage }) => { let firstPage = 1 - let lastPage = Math.ceil(length / 12) + let lastPage = Math.ceil(totalCount / window.journeyPatternsPerPage) return ( <form className='btn-group btn-group-sm' onSubmit={e => { @@ -25,7 +25,7 @@ let Navigate = ({ dispatch, journeyPatterns, page, length, stateChanged }) => { <button onClick={e => { e.preventDefault() - dispatch(actions.checkConfirmModal(e, actions.goToNextPage(dispatch, page), stateChanged)) + dispatch(actions.checkConfirmModal(e, actions.goToNextPage(dispatch, page, totalCount, perPage), stateChanged)) }} type="submit" data-toggle='' @@ -39,9 +39,10 @@ let Navigate = ({ dispatch, journeyPatterns, page, length, stateChanged }) => { Navigate.propTypes = { page: PropTypes.number.isRequired, - length: PropTypes.number.isRequired, + totalCount: PropTypes.number.isRequired, stateChanged: PropTypes.bool.isRequired, journeyPatterns: PropTypes.array.isRequired, + perPage: PropTypes.number.isRequired, dispatch: PropTypes.func.isRequired } 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 d324e6064..a5e29ccc3 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js @@ -7,7 +7,8 @@ const mapStateToProps = (state) => { return { journeyPatterns: state.journeyPatterns, page: state.pagination.page, - length: state.pagination.totalCount, + totalCount: state.pagination.totalCount, + perPage: state.pagination.perPage, stateChanged: state.pagination.stateChanged } } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js index 47d6dc31f..13d891630 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js @@ -16,6 +16,7 @@ var initialState = { pagination: { page : 1, totalCount: window.journeyPatternLength, + perPage: window.journeyPatternsPerPage, stateChanged: false }, modal: { 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 8dd1a46e6..985725ade 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js @@ -45,7 +45,7 @@ const journeyPatterns = (state = [], action) => { return state case 'GO_TO_NEXT_PAGE': $('#ConfirmModal').modal('hide') - if (window.journeyPatternLength - (action.currentPage * 12) > 0){ + if (action.totalCount - (action.currentPage * window.journeyPatternsPerPage) > 0){ actions.fetchJourneyPatterns(action.dispatch, action.currentPage, action.nextPage) } return state 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 3ac5ba7c0..02ccdea1f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js @@ -9,7 +9,7 @@ const pagination = (state = {}, action) => { } return state case 'GO_TO_NEXT_PAGE': - if (state.totalCount - (action.currentPage * 12) > 0){ + if (state.totalCount - (action.currentPage * action.perPage) > 0){ toggleOnConfirmModal() return Object.assign({}, state, {page : action.currentPage + 1, stateChanged: false}) } @@ -19,6 +19,8 @@ const pagination = (state = {}, action) => { case 'SAVE_MODAL': toggleOnConfirmModal('modal') return Object.assign({}, state, {stateChanged: true}) + case 'UPDATE_TOTAL_COUNT': + return Object.assign({}, state, {totalCount : state.totalCount - action.diff }) default: return state } |
