From d33014e05b556134eaf30c8bd06d36e832d66bdd Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 13 Dec 2016 11:53:11 +0100 Subject: Add simple counter for pagination before plugging it for real Refs #2205 Signed-off-by: Thomas Shawarma Haddad --- .../journey_patterns/actions/index.js | 21 +++++++++---- .../journey_patterns/components/App.js | 2 ++ .../containers/JourneyPatternList.js | 13 +++++++- .../journey_patterns/containers/Navigate.js | 35 ++++++++++++++++++++++ .../journey_patterns/containers/test.js | 0 .../es6_browserified/journey_patterns/index.js | 5 +++- .../journey_patterns/reducers/index.js | 4 ++- .../journey_patterns/reducers/journey_patterns.js | 15 ++++++++-- .../journey_patterns/reducers/pagination.js | 12 ++++++++ 9 files changed, 96 insertions(+), 11 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js delete mode 100644 app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js create mode 100644 app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js (limited to 'app/assets/javascripts') 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 98144938c..a03b64b10 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -1,11 +1,20 @@ const actions = { - receiveJourneyPatterns : (state) => ({ + receiveJourneyPatterns : (json) => ({ type: "RECEIVE_JOURNEY_PATTERNS", - state + json + }), + loadFirstPage: (dispatch) => ({ + type: 'LOAD_FIRST_PAGE', + dispatch + }), + goToPreviousPage : () => ({ + type: 'GO_TO_PREVIOUS_PAGE' + }), + goToNextPage : () => ({ + type: 'GO_TO_NEXT_PAGE' }), - fetchJourneyPatterns : (dispatch) => { - let state = [] + let journeyPatterns = [] let urlJSON = window.location.pathname + '.json' let req = new Request(urlJSON, { credentials: 'same-origin' @@ -23,14 +32,14 @@ const actions = { for (let stopArea of val.stop_area_short_descriptions){ stop_points[stopArea.stop_area_short_description.object_id].checked = true } - state.push({ + journeyPatterns.push({ name: val.name, object_id: val.object_id, published_name: val.published_name, stop_points: stop_points }) } - dispatch(actions.receiveJourneyPatterns(state)) + dispatch(actions.receiveJourneyPatterns(journeyPatterns)) }) } } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js index 8e22bfe45..c61613b9e 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js @@ -1,10 +1,12 @@ var React = require('react') var AddJourneyPattern = require('../containers/AddJourneyPattern') +var Navigate = require('../containers/Navigate') var JourneyPatternList = require('../containers/JourneyPatternList') const App = () => (
+
) diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js index a6710c690..067167a4d 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js @@ -13,7 +13,7 @@ class JourneyPatternList extends Component{ componentDidMount() { const dispatch = this.props.dispatch const journeyPatterns = this.props.journeyPatterns - actions.fetchJourneyPatterns(dispatch) + dispatch(actions.loadFirstPage(dispatch)) } render() { @@ -36,6 +36,17 @@ const mapStateToProps = (state) => { } } +// const mapDispatchToProps = (dispatch) => { +// return { +// onPreviousClick: (index) =>{ +// dispatch(actions.fetchNextPage(index)) +// }, +// onNextClick: (index) =>{ +// dispatch(actions.fetchPreviousPage(index)) +// } +// } +// } + JourneyPatternList.propTypes = { dispatch: PropTypes.func.isRequired, journeyPatterns: PropTypes.array.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 new file mode 100644 index 000000000..feaa73ba3 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js @@ -0,0 +1,35 @@ +var React = require('react') +var connect = require('react-redux').connect +var actions = require('../actions') + +let Navigate = ({ dispatch, journeyPatterns, page }) => { + return ( +
+
{ + e.preventDefault() + }}> + + +
+
+ ) +} +Navigate = connect()(Navigate) + +module.exports = Navigate diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js index e0104db09..4590d1013 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js @@ -11,7 +11,10 @@ var createLogger = require('redux-logger') var thunkMiddleware = require('redux-thunk').default var promise = require('redux-promise') -var initialState = {journeyPatterns: []} +var initialState = { + journeyPatterns: [], + pagination: 0 +} const loggerMiddleware = createLogger() let store = createStore( diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js index 2a71bcf15..9210dfd4d 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js @@ -1,8 +1,10 @@ var combineReducers = require('redux').combineReducers var journeyPatterns = require('./journey_patterns') +var pagination = require('./pagination') const journeyPatternsApp = combineReducers({ - journeyPatterns + journeyPatterns, + pagination }) module.exports = journeyPatternsApp diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js index 0d7dc569b..8ef6b07d8 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js @@ -1,7 +1,18 @@ -const journeyPatterns = (state = [], action) => { +var actions = require("../actions") + +const journeyPatterns = (state = {}, action) => { switch (action.type) { case 'RECEIVE_JOURNEY_PATTERNS': - return [...action.state] + return [...action.json] + case 'LOAD_FIRST_PAGE': + actions.fetchJourneyPatterns(action.dispatch) + case 'GO_TO_PREVIOUS_PAGE': + if(state.page >= 0){ + actions.fetchJourneyPatterns() + } + return state + case 'GO_TO_NEXT_PAGE': + actions.fetchJourneyPatterns() default: 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 new file mode 100644 index 000000000..09f003fbd --- /dev/null +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js @@ -0,0 +1,12 @@ +const pagination = (state = 0, action) => { + switch (action.type) { + case 'GO_TO_PREVIOUS_PAGE': + return state - 1 + case 'GO_TO_NEXT_PAGE': + return state + 1 + default: + return state + } +} + +module.exports = pagination -- cgit v1.2.3