aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorThomas Haddad2016-12-13 17:00:35 +0100
committerThomas Haddad2016-12-13 17:01:36 +0100
commit48477aec36203c518548ac2f0455530c2515baa2 (patch)
treec15b7341694d5ddf49a2713981f8ed9e014dce70 /app
parent2113edeba7a1339370e04ef02111ca145add43b4 (diff)
downloadchouette-core-48477aec36203c518548ac2f0455530c2515baa2.tar.bz2
Add paginate for journey_patterns Refs #2205
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js45
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js14
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js14
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/index.js2
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/journey_patterns.js9
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js10
-rw-r--r--app/views/journey_patterns_collections/show.html.slim5
7 files changed, 68 insertions, 31 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 a03b64b10..620890b9f 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js
@@ -7,17 +7,46 @@ const actions = {
type: 'LOAD_FIRST_PAGE',
dispatch
}),
- goToPreviousPage : () => ({
- type: 'GO_TO_PREVIOUS_PAGE'
+ goToPreviousPage : (dispatch, currentPage) => {
+ return {
+ type: 'GO_TO_PREVIOUS_PAGE',
+ dispatch,
+ currentPage,
+ nextPage : false
+ }
+ },
+ goToNextPage : (dispatch, currentPage) => ({
+ type: 'GO_TO_NEXT_PAGE',
+ dispatch,
+ currentPage,
+ nextPage : true
}),
- goToNextPage : () => ({
- type: 'GO_TO_NEXT_PAGE'
- }),
- fetchJourneyPatterns : (dispatch) => {
+ fetchJourneyPatterns : (dispatch, currentPage, nextPage) => {
+ if(currentPage == undefined){
+ currentPage = 1
+ }
let journeyPatterns = []
- let urlJSON = window.location.pathname + '.json'
+ let page
+ switch (nextPage) {
+ case true:
+ page = currentPage + 1
+ break
+ case false:
+ if(currentPage > 1){
+ page = currentPage - 1
+ }
+ break
+ default:
+ page = currentPage
+ break
+ }
+ let str = ".json"
+ if(page > 1){
+ str = '.json?page=' + page.toString()
+ }
+ let urlJSON = window.location.pathname + str
let req = new Request(urlJSON, {
- credentials: 'same-origin'
+ credentials: 'same-origin',
});
fetch(req)
.then(response => response.json())
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 067167a4d..5be1869a9 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js
@@ -32,21 +32,11 @@ class JourneyPatternList extends Component{
const mapStateToProps = (state) => {
return {
- journeyPatterns: state.journeyPatterns
+ journeyPatterns: state.journeyPatterns,
+ page: state.pagination
}
}
-// 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
index feaa73ba3..c9d804bc4 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js
@@ -11,7 +11,7 @@ let Navigate = ({ dispatch, journeyPatterns, page }) => {
<button
onClick={e => {
e.preventDefault()
- dispatch(actions.goToNextPage())
+ dispatch(actions.goToNextPage(dispatch, page))
}}
type="submit"
className="btn btn-primary btn-xs pull-right">
@@ -20,7 +20,7 @@ let Navigate = ({ dispatch, journeyPatterns, page }) => {
<button
onClick={e => {
e.preventDefault()
- dispatch(actions.goToPreviousPage())
+ dispatch(actions.goToPreviousPage(dispatch, page))
}}
type="submit"
className="btn btn-primary btn-xs pull-right">
@@ -30,6 +30,14 @@ let Navigate = ({ dispatch, journeyPatterns, page }) => {
</div>
)
}
-Navigate = connect()(Navigate)
+
+const mapStateToProps = (state) => {
+ return {
+ journeyPatterns: state.journeyPatterns,
+ page: state.pagination
+ }
+}
+
+Navigate = connect(mapStateToProps)(Navigate)
module.exports = Navigate
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js
index 4590d1013..2c2128ee0 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js
@@ -13,7 +13,7 @@ var promise = require('redux-promise')
var initialState = {
journeyPatterns: [],
- pagination: 0
+ pagination: 1
}
const loggerMiddleware = createLogger()
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 8ef6b07d8..129746575 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
@@ -7,12 +7,15 @@ const journeyPatterns = (state = {}, action) => {
case 'LOAD_FIRST_PAGE':
actions.fetchJourneyPatterns(action.dispatch)
case 'GO_TO_PREVIOUS_PAGE':
- if(state.page >= 0){
- actions.fetchJourneyPatterns()
+ if(action.currentPage > 1){
+ actions.fetchJourneyPatterns(action.dispatch, action.currentPage, action.nextPage)
}
return state
case 'GO_TO_NEXT_PAGE':
- actions.fetchJourneyPatterns()
+ if (window.journeyPatternLength - (action.currentPage * 12) > 0){
+ actions.fetchJourneyPatterns(action.dispatch, action.currentPage, action.nextPage)
+ }
+ return state
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
index 09f003fbd..0103fe248 100644
--- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js
+++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js
@@ -1,9 +1,15 @@
const pagination = (state = 0, action) => {
switch (action.type) {
case 'GO_TO_PREVIOUS_PAGE':
- return state - 1
+ if (action.currentPage > 1){
+ return state - 1
+ }
+ return state
case 'GO_TO_NEXT_PAGE':
- return state + 1
+ if (window.journeyPatternLength - (action.currentPage * 12) > 0){
+ return state + 1
+ }
+ return state
default:
return state
}
diff --git a/app/views/journey_patterns_collections/show.html.slim b/app/views/journey_patterns_collections/show.html.slim
index d38129d5c..bb4d3f0c6 100644
--- a/app/views/journey_patterns_collections/show.html.slim
+++ b/app/views/journey_patterns_collections/show.html.slim
@@ -1,3 +1,4 @@
-#journey_patterns
-= @journey_patterns.total_entries()
+#journey_patterns data
+= javascript_tag do
+ | window.journeyPatternLength = #{@journey_patterns.total_entries()}
= javascript_include_tag 'es6_browserified/journey_patterns/index.js'