From 3bcb85e4f28366f829c8abf6058fd54aaeaa9d8d Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 6 Mar 2017 12:53:39 +0100 Subject: Refs #2507: Add query filter state, component logic for filters Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/components/Filters.js | 70 +++++++++++++++++++++- .../vehicle_journeys/containers/Filters.js | 13 +++- .../es6_browserified/vehicle_journeys/index.js | 18 +++++- 3 files changed, 94 insertions(+), 7 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js index 00612da31..5f539a067 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js @@ -1,15 +1,79 @@ var React = require('react') var PropTypes = require('react').PropTypes +var MissionSelect2 = require('./tools/select2s/MissionSelect2') +var TimetableSelect2 = require('./tools/select2s/TimetableSelect2') -const Filters = ({filters, onFilters}) => { +const Filters = ({filters, onFilter, onResetFilters, onUpdateTimeFilter, onToggleWithoutSchedule}) => { return ( - Filters +
+
+ +
+
+ Plage horaire au départ de la course + Début + {onUpdateTimeFilter(e, 'hour')}} + value={filters.query.interval.start.hour} + /> + {onUpdateTimeFilter(e, 'minute')}} + value={filters.query.interval.start.minute} + /> + Fin + {onUpdateTimeFilter(e, 'hour')}} + value={filters.query.interval.end.hour} + /> + {onUpdateTimeFilter(e, 'minute')}} + value={filters.query.interval.end.minute} + /> +
+
+ +
+
+ Afficher les courses sans horaires + +
+
+ + EFFACER + + + FILTRER + +
+
) } Filters.propTypes = { filters : PropTypes.object.isRequired, - onFilters: PropTypes.func.isRequired + onFilter: PropTypes.func.isRequired, + onResetFilters: PropTypes.func.isRequired, + onUpdateTimeFilter: PropTypes.func.isRequired } module.exports = Filters diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js index 61fc29cb7..5339aa02e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js @@ -10,8 +10,17 @@ const mapStateToProps = (state) => { const mapDispatchToProps = (dispatch) => { return { - onFilters: () =>{ - dispatch(actions.toggleArrivals()) + onUpdateTimeFilter: (e, unit) =>{ + dispatch(actions.updateTimeFilter(e.target.value, unit)) + }, + onToggleWithoutSchedule: () =>{ + dispatch(actions.toggleWithoutSchedule()) + }, + onResetFilters: () =>{ + dispatch(actions.resetFilters()) + }, + onFilter: () =>{ + dispatch(actions.filterQuery()) } } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js index 70edeafeb..e0a68cbc3 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -19,9 +19,23 @@ if (window.journeyPatternId) var initialState = { filters: { selectedJourneyPatterns : selectedJP, - // TODO retrieve policy from controller policy: window.perms, - toggleArrivals: false + toggleArrivals: false, + query: { + interval: { + start:{ + hour: '00', + minute: '00' + }, + end:{ + hour: '23', + minute: '59' + } + }, + journeyPattern: {}, + timetable: {}, + withoutSchedule: false + } }, status: { -- cgit v1.2.3