diff options
| author | Thomas Haddad | 2016-12-13 11:53:11 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2016-12-13 11:54:30 +0100 |
| commit | d33014e05b556134eaf30c8bd06d36e832d66bdd (patch) | |
| tree | 939aa08477fd464b1c4bb0e28bcdc3d65961106c /app/assets/javascripts | |
| parent | cce91fc058275ec8f7f504aed4180f5b64abc9f3 (diff) | |
| download | chouette-core-d33014e05b556134eaf30c8bd06d36e832d66bdd.tar.bz2 | |
Add simple counter for pagination before plugging it for real Refs #2205
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
9 files changed, 96 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 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 = () => ( <div> <AddJourneyPattern /> + <Navigate /> <JourneyPatternList /> </div> ) 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 ( + <div className="clearfix" style={{marginBottom: 10}}> + <form onSubmit={e => { + e.preventDefault() + }}> + <button + onClick={e => { + e.preventDefault() + dispatch(actions.goToNextPage()) + }} + type="submit" + className="btn btn-primary btn-xs pull-right"> + <span className="fa fa-plus"></span> Suivant + </button> + <button + onClick={e => { + e.preventDefault() + dispatch(actions.goToPreviousPage()) + }} + type="submit" + className="btn btn-primary btn-xs pull-right"> + <span className="fa fa-plus"></span> Précédent + </button> + </form> + </div> + ) +} +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 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/test.js +++ /dev/null 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 |
