aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2017-01-11 12:09:31 +0100
committerThomas Haddad2017-01-11 12:10:13 +0100
commit221300caac758edf7cdb34ec26f41952a2401728 (patch)
treef7d72303ee4eb942577bab5d38ffee30470514c5
parentac64a2c779174a7ecd125d761364cbe9b4e9e30a (diff)
downloadchouette-core-221300caac758edf7cdb34ec26f41952a2401728.tar.bz2
Add update journey patterns length after submitting correct values
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js11
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js9
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js3
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/index.js1
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js2
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js4
-rw-r--r--app/views/journey_patterns_collections/show.html.slim3
-rw-r--r--spec/javascripts/journey_patterns/actions_spec.js6
-rw-r--r--spec/javascripts/journey_patterns/reducers/pagination_spec.js9
9 files changed, 37 insertions, 11 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
}
diff --git a/app/views/journey_patterns_collections/show.html.slim b/app/views/journey_patterns_collections/show.html.slim
index 7b6f7ae7a..10ac476a5 100644
--- a/app/views/journey_patterns_collections/show.html.slim
+++ b/app/views/journey_patterns_collections/show.html.slim
@@ -1,4 +1,5 @@
#journey_patterns
= javascript_tag do
- | window.journeyPatternLength = #{@journey_patterns.total_entries()}
+ | window.journeyPatternLength = #{@journey_patterns.total_entries()};
+ | window.journeyPatternsPerPage = 12
= javascript_include_tag 'es6_browserified/journey_patterns/index.js'
diff --git a/spec/javascripts/journey_patterns/actions_spec.js b/spec/javascripts/journey_patterns/actions_spec.js
index 03198c2c4..736a4326a 100644
--- a/spec/javascripts/journey_patterns/actions_spec.js
+++ b/spec/javascripts/journey_patterns/actions_spec.js
@@ -26,13 +26,17 @@ describe('when landing on page', () => {
describe('when next navigation button is clicked', () => {
it('should create an action to go to next page', () => {
const nextPage = true
+ const totalCount = 25
+ const perPage = 12
const expectedAction = {
type: 'GO_TO_NEXT_PAGE',
dispatch,
currentPage,
+ totalCount,
+ perPage,
nextPage
}
- expect(actions.goToNextPage(dispatch, currentPage)).toEqual(expectedAction)
+ expect(actions.goToNextPage(dispatch, currentPage, totalCount, perPage)).toEqual(expectedAction)
})
})
describe('when clicking on a journey pattern checkbox', () => {
diff --git a/spec/javascripts/journey_patterns/reducers/pagination_spec.js b/spec/javascripts/journey_patterns/reducers/pagination_spec.js
index 1c8011fca..430db4b64 100644
--- a/spec/javascripts/journey_patterns/reducers/pagination_spec.js
+++ b/spec/javascripts/journey_patterns/reducers/pagination_spec.js
@@ -1,7 +1,11 @@
var reducer = require('es6_browserified/journey_patterns/reducers/pagination')
+
+const totalCount = 25
+const perPage = 12
let state = {
page : 2,
- totalCount : 25
+ totalCount : totalCount,
+ stateChanged: false
}
let currentPage = 2
const dispatch = function(){}
@@ -20,6 +24,8 @@ describe('pagination reducer, given parameters allowing page change', () => {
type: 'GO_TO_NEXT_PAGE',
dispatch,
currentPage,
+ totalCount,
+ perPage,
nextPage : true
})
).toEqual(Object.assign({}, state, {page : state.page + 1, stateChanged: false}))
@@ -70,6 +76,7 @@ describe('pagination reducer, given parameters not allowing to go to next page',
type: 'GO_TO_NEXT_PAGE',
dispatch,
currentPage,
+ totalCount,
nextPage : false
})
).toEqual(state)