aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2017-02-17 11:52:39 +0100
committerThomas Haddad2017-02-17 11:52:39 +0100
commitf0bf220b554dfea74e252e1d64f3dbda81055470 (patch)
tree2ec4f6d0ff8d717ebf5fa0e669d18ce2fa0ed33e
parent25761bf1dc0247b0f3a5d2bd95022d782c648722 (diff)
downloadchouette-core-f0bf220b554dfea74e252e1d64f3dbda81055470.tar.bz2
Refs #2521: add selected attr to vehicle journey
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js7
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js11
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js4
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js3
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js10
-rw-r--r--spec/javascripts/vehicle_journeys/actions_spec.js10
-rw-r--r--spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js13
7 files changed, 56 insertions, 2 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 56ed1ef07..e906b1abf 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
@@ -36,6 +36,10 @@ const actions = {
openCreateModal : () => ({
type : 'CREATE_VEHICLEJOURNEY_MODAL'
}),
+ selectVehicleJourney : (index) => ({
+ type : 'SELECT_VEHICLEJOURNEY',
+ index
+ }),
addVehicleJourney : (data) => ({
type: 'ADD_VEHICLEJOURNEY',
data,
@@ -138,7 +142,8 @@ const actions = {
footnotes: val.footnotes,
time_tables: timeTables,
vehicle_journey_at_stops: val.vehicle_journey_at_stops,
- deletable: false
+ deletable: false,
+ selected: false
})
}
// if(vehicleJourneys.length != window.vehicleJourneysPerPage){
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
index 0dc208846..53cf2c5fb 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
@@ -12,6 +12,16 @@ class VehicleJourney extends Component {
<div className={'list-group-item'}>
<div style={{display: 'inline-block', verticalAlign: 'top', width: 'calc(100% - 25px)'}}>
+ {/* selected */}
+ <p className='small'>
+ <label>Sélectionné</label>
+ <input
+ onChange = {(e) => this.props.onSelectVehicleJourney(this.props.index)}
+ type = 'checkbox'
+ checked = {this.props.value.selected}
+ ></input>
+ </p>
+
{/* Nom */}
<p className='small'>
<strong>Nom: </strong>{this.props.value.comment}
@@ -95,6 +105,7 @@ VehicleJourney.propTypes = {
filters: PropTypes.object.isRequired,
index: PropTypes.number.isRequired,
onUpdateTime: PropTypes.func.isRequired,
+ onSelectVehicleJourney: PropTypes.func.isRequired
}
module.exports = VehicleJourney
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js
index 0c2a11bac..9b3836fc4 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js
@@ -34,6 +34,7 @@ class VehicleJourneys extends Component{
index = {index}
filters = {this.props.filters}
onUpdateTime = {this.props.onUpdateTime}
+ onSelectVehicleJourney = {this.props.onSelectVehicleJourney}
/>
)}
</div>
@@ -44,9 +45,10 @@ class VehicleJourneys extends Component{
VehicleJourneys.propTypes = {
status: PropTypes.object.isRequired,
+ filters: PropTypes.object.isRequired,
onLoadFirstPage: PropTypes.func.isRequired,
onUpdateTime: PropTypes.func.isRequired,
- filters: PropTypes.object.isRequired
+ onSelectVehicleJourney: PropTypes.func.isRequired
}
module.exports = VehicleJourneys
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js
index b08340887..ba9491ee4 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js
@@ -18,6 +18,9 @@ const mapDispatchToProps = (dispatch) => {
},
onUpdateTime: (e, subIndex, index, timeUnit, isDeparture, isArrivalsToggled) => {
dispatch(actions.updateTime(e.target.value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled))
+ },
+ onSelectVehicleJourney: (index) => {
+ dispatch(actions.selectVehicleJourney(index))
}
}
}
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js
index ccf1efea1..987c57de5 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js
@@ -2,6 +2,8 @@ var actions = require("../actions")
const vehicleJourney= (state = {}, action) => {
switch (action.type) {
+ case 'SELECT_VEHICLEJOURNEY':
+ return Object.assign({}, state, {selected: !state.selected})
case 'ADD_VEHICLEJOURNEY':
return {
journey_pattern_id: parseInt(action.data.journey_pattern_id.value),
@@ -60,6 +62,14 @@ const vehicleJourneys = (state = [], action) => {
vehicleJourney(state, action),
...state
]
+ case 'SELECT_VEHICLEJOURNEY':
+ return state.map((vj, i) =>{
+ if (i == action.index){
+ return vehicleJourney(vj, action)
+ } else {
+ return vj
+ }
+ })
case 'UPDATE_TIME':
return state.map((vj, i) =>{
if (i == action.index){
diff --git a/spec/javascripts/vehicle_journeys/actions_spec.js b/spec/javascripts/vehicle_journeys/actions_spec.js
index 9f3f5e168..92783841a 100644
--- a/spec/javascripts/vehicle_journeys/actions_spec.js
+++ b/spec/javascripts/vehicle_journeys/actions_spec.js
@@ -81,6 +81,16 @@ describe('when next navigation button is clicked', () => {
expect(actions.goToNextPage(dispatch, pagination)).toEqual(expectedAction)
})
})
+describe('when checking a vehicleJourney', () => {
+ it('should create an action to select vj', () => {
+ const index = 1
+ const expectedAction = {
+ type: 'SELECT_VEHICLEJOURNEY',
+ index
+ }
+ expect(actions.selectVehicleJourney(index)).toEqual(expectedAction)
+ })
+})
describe('when toggling arrivals', () => {
it('should create an action to toggleArrivals', () => {
const expectedAction = {
diff --git a/spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js b/spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js
index bb40add3a..0a7b2330b 100644
--- a/spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js
+++ b/spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js
@@ -32,6 +32,7 @@ describe('vehicleJourneys reducer', () => {
published_journey_name: "vj1",
objectid: 11,
deletable: false,
+ selected: false,
footnotes: fakeFootnotes,
time_tables: fakeTimeTables,
vehicle_journey_at_stops: fakeVJAS
@@ -40,6 +41,7 @@ describe('vehicleJourneys reducer', () => {
journey_pattern_id: 2,
published_journey_name: "vj2",
objectid: 22,
+ selected: false,
deletable: false,
footnotes: fakeFootnotes,
time_tables: fakeTimeTables,
@@ -112,4 +114,15 @@ describe('vehicleJourneys reducer', () => {
).toEqual([newVJ, state[1]])
})
+ it('should handle SELECT_VEHICLEJOURNEY', () => {
+ const index = 0
+ const newVJ = Object.assign({}, state[0], {selected: true})
+ expect(
+ vjReducer(state, {
+ type: 'SELECT_VEHICLEJOURNEY',
+ index
+ })
+ ).toEqual([newVJ, state[1]])
+ })
+
})