diff options
| author | Thomas Haddad | 2017-03-08 18:06:30 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2017-03-08 18:06:30 +0100 |
| commit | 113ab0e2ed4bb7564ee25427d1ad2721f41aa639 (patch) | |
| tree | 7fd95d9b45147457e99d7751fa6c0ae997adcbbd | |
| parent | c7a7b314759b32497b32063c4cecb498e26f2e35 (diff) | |
| download | chouette-core-113ab0e2ed4bb7564ee25427d1ad2721f41aa639.tar.bz2 | |
Refs #2751: Add UPDATE_TOTAL_COUNT for vj
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
4 files changed, 28 insertions, 3 deletions
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js index 64c71bde4..25fa3b221 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -222,6 +222,10 @@ const actions = { actions.queryFilterVehicleJourneys(dispatch) ]) ), + updateTotalCount: (diff) => ({ + type: 'UPDATE_TOTAL_COUNT', + diff + }), fetchVehicleJourneys : (dispatch, currentPage, nextPage, queryString) => { if(currentPage == undefined){ currentPage = 1 @@ -294,9 +298,6 @@ const actions = { company_id: val.published_journey_name || 'non renseigné' }) } - // if(vehicleJourneys.length != window.vehicleJourneysPerPage){ - // dispatch(actions.updateTotalCount(vehicleJourneys.length - window.vehicleJourneysPerPage)) - // } dispatch(actions.receiveVehicleJourneys(vehicleJourneys)) } }) @@ -328,6 +329,9 @@ const actions = { if(next) { dispatch(next) } else { + if(json.length != window.vehicleJourneysPerPage){ + dispatch(actions.updateTotalCount(window.vehicleJourneysPerPage - json.length)) + } dispatch(actions.receiveVehicleJourneys(json)) } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js index e603753e2..203e37e5a 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js @@ -18,6 +18,8 @@ const pagination = (state = {}, action) => { return Object.assign({}, state, {stateChanged: true}) case 'RESET_PAGINATION': return Object.assign({}, state, {page: 1, stateChanged: false}) + case 'UPDATE_TOTAL_COUNT': + return Object.assign({}, state, {totalCount : state.totalCount - action.diff }) default: return state } diff --git a/spec/javascripts/vehicle_journeys/actions_spec.js b/spec/javascripts/vehicle_journeys/actions_spec.js index 8817bc34c..ec52036d6 100644 --- a/spec/javascripts/vehicle_journeys/actions_spec.js +++ b/spec/javascripts/vehicle_journeys/actions_spec.js @@ -382,3 +382,13 @@ describe('when user clicked either on filter or reset button in filters', () => expect(actions.createQueryString()).toEqual(expectedAction) }) }) +describe('when submitting new vj', () => { + it('should create an action to update pagination totalCount', () => { + const diff = 1 + const expectedAction = { + type: 'UPDATE_TOTAL_COUNT', + diff + } + expect(actions.updateTotalCount(diff)).toEqual(expectedAction) + }) +}) diff --git a/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js b/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js index 55e48dfd6..ff74e1a0d 100644 --- a/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js +++ b/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js @@ -26,6 +26,15 @@ describe('pagination reducer, given parameters allowing page change', () => { ).toEqual(Object.assign({}, state, {page: 1})) }) + it('should handle UPDATE_TOTAL_COUNT', () => { + expect( + reducer(state, { + type: 'UPDATE_TOTAL_COUNT', + diff: 1 + }) + ).toEqual(Object.assign({}, state, {totalCount: 24})) + }) + it('should handle GO_TO_NEXT_PAGE and change state', () => { expect( reducer(state, { |
