diff options
| author | Thomas Haddad | 2017-03-13 16:58:45 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2017-03-13 16:58:45 +0100 |
| commit | a473fe3aa7a73df1a85a89eb678097bfe8bfe931 (patch) | |
| tree | e57de0119f7e88045831364fc72106f9cd3eb397 | |
| parent | 2180edc34c7936e3e9a507a36cdf2200553bed90 (diff) | |
| download | chouette-core-a473fe3aa7a73df1a85a89eb678097bfe8bfe931.tar.bz2 | |
Refs #2776: Fix TotalCount with new json, and check when no vj
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
6 files changed, 31 insertions, 1 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 b82f082ce..5069e5945 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -228,6 +228,10 @@ const actions = { type: 'UPDATE_TOTAL_COUNT', diff }), + receiveTotalCount: (total) => ({ + type: 'RECEIVE_TOTAL_COUNT', + total + }), fetchVehicleJourneys : (dispatch, currentPage, nextPage, queryString) => { if(currentPage == undefined){ currentPage = 1 @@ -301,6 +305,7 @@ const actions = { }) } dispatch(actions.receiveVehicleJourneys(vehicleJourneys)) + dispatch(actions.receiveTotalCount(json.total)) } }) }, diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js index 9b95c1bc6..2d5923a4d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js @@ -7,6 +7,10 @@ let Navigate = ({ dispatch, vehicleJourneys, pagination, status, filters}) => { let firstPage = 1 let lastPage = Math.ceil(pagination.totalCount / pagination.perPage) let minVJ = (pagination.page - 1) * pagination.perPage + 1 + if (pagination.totalCount == 0){ + minVJ = 0 + lastPage = 1 + } let maxVJ = Math.min((pagination.page * pagination.perPage), pagination.totalCount) if(status.isFetching == true) { return false diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js index 517f5c922..7bca4911a 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -53,7 +53,7 @@ var initialState = { stopPointsList: window.stopPoints, pagination: { page : 1, - totalCount: window.vehicleJourneysLength, + totalCount: 0, perPage: window.vehicleJourneysPerPage, stateChanged: false }, 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 203e37e5a..31c855a2f 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 'RECEIVE_TOTAL_COUNT': + return Object.assign({}, state, {totalCount: action.total}) case 'UPDATE_TOTAL_COUNT': return Object.assign({}, state, {totalCount : state.totalCount - action.diff }) default: diff --git a/spec/javascripts/vehicle_journeys/actions_spec.js b/spec/javascripts/vehicle_journeys/actions_spec.js index 6916f463f..b9876b331 100644 --- a/spec/javascripts/vehicle_journeys/actions_spec.js +++ b/spec/javascripts/vehicle_journeys/actions_spec.js @@ -396,3 +396,13 @@ describe('when submitting new vj', () => { expect(actions.updateTotalCount(diff)).toEqual(expectedAction) }) }) +describe('when receiving vj', () => { + it('should create an action to show pagination totalCount', () => { + const total = 1 + const expectedAction = { + type: 'RECEIVE_TOTAL_COUNT', + total + } + expect(actions.receiveTotalCount(total)).toEqual(expectedAction) + }) +}) diff --git a/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js b/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js index ff74e1a0d..57417a3b9 100644 --- a/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js +++ b/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js @@ -18,6 +18,15 @@ describe('pagination reducer, given parameters allowing page change', () => { ).toEqual({}) }) + it('should handle RECEIVE_TOTAL_COUNT', () => { + expect( + reducer(state, { + type: 'RECEIVE_TOTAL_COUNT', + total: 1 + }) + ).toEqual(Object.assign({}, state, {totalCount: 1})) + }) + it('should handle RESET_PAGINATION', () => { expect( reducer(state, { |
