aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorThomas Haddad2017-03-03 18:08:20 +0100
committerThomas Haddad2017-03-03 18:08:20 +0100
commit284d590435ab85b86d3722eb50ce4e1c3b3abf2c (patch)
treebdbc3d536f986f7bf96d337391e63f2e75c03240 /app/assets/javascripts
parent89e744d0f430889acc88a5e0e15c588baa962f6a (diff)
downloadchouette-core-284d590435ab85b86d3722eb50ce4e1c3b3abf2c.tar.bz2
Refs #2521: Add timetable to one or more vj
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js13
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js2
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js2
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/CalendarsEditVehicleJourney.js4
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js31
5 files changed, 40 insertions, 12 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 74d2903e0..c97728f4e 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js
@@ -63,12 +63,16 @@ const actions = {
vehicleJourneys
}),
selectTTCalendarsModal: (selectedTT) =>({
- type: 'SEELCT_TT_CALENDAR_MODAL',
+ type: 'SELECT_TT_CALENDAR_MODAL',
selectedItem:{
- id: selectedTT.id
- // TODO add relevant attributes
+ id: selectedTT.id,
+ comment: selectedTT.comment,
+ objectid: selectedTT.objectid
}
}),
+ addSelectedTimetable: () => ({
+ type: 'ADD_SELECTED_TIMETABLE'
+ }),
deleteCalendarModal : (timetable) => ({
type : 'DELETE_CALENDAR_MODAL',
timetable
@@ -202,7 +206,8 @@ const actions = {
for (tt of val.time_tables){
timeTables.push({
objectid: tt.objectid,
- comment: tt.comment
+ comment: tt.comment,
+ id: tt.id
})
}
let vjasWithDelta = val.vehicle_journey_at_stops.map((vjas, i) => {
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js
index fca2934cd..3359ca44d 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CalendarsEditVehicleJourney.js
@@ -64,6 +64,7 @@ class CalendarsEditVehicleJourney extends Component {
<label className='control-label is-required'>Ajouter un calendrier</label>
<TimetableSelect2 onSelect2Timetable={this.props.onSelect2Timetable} />
<button
+ onClick={this.props.onAddSelectedTimetable}
type='button'
><span className='fa fa-times'>Ajouter</span>
</button>
@@ -109,6 +110,7 @@ CalendarsEditVehicleJourney.propTypes = {
onCalendarsEditVehicleJourney: PropTypes.func.isRequired,
onDeleteCalendarModal: PropTypes.func.isRequired,
onSelect2Timetable: PropTypes.func.isRequired,
+ onAddSelectedTimetable: PropTypes.func.isRequired,
filters: PropTypes.object.isRequired
}
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
index 170150a36..93ed4e0c1 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js
@@ -40,7 +40,7 @@ class BSelect4 extends React.Component{
item => Object.assign(
{},
item,
- {text: item.published_name, complete_jp: item}
+ {text: item.comment}
)
)
};
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/CalendarsEditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/CalendarsEditVehicleJourney.js
index 1e58ed5fd..130acb017 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/CalendarsEditVehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/CalendarsEditVehicleJourney.js
@@ -26,8 +26,10 @@ const mapDispatchToProps = (dispatch) => {
dispatch(actions.editVehicleJourneyCalendars(calendars))
},
onSelect2Timetable: (e) =>{
- console.log(e.params.data)
dispatch(actions.selectTTCalendarsModal(e.params.data))
+ },
+ onAddSelectedTimetable: () => {
+ dispatch(actions.addSelectedTimetable())
}
}
}
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js
index 34c8e2dad..de424c25e 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js
@@ -1,3 +1,4 @@
+var _ = require('lodash')
let vehicleJourneysModal, newModalProps
const modal = (state = {}, action) => {
switch (action.type) {
@@ -40,7 +41,7 @@ const modal = (state = {}, action) => {
let timetable = {}
vehicleJourneysModal.map((vj, i) => {
vj.time_tables.map((tt, j) =>{
- if(!isInArray(tt, uniqTimetables)){
+ if(!(_.find(uniqTimetables, tt))){
uniqTimetables.push(tt)
}
})
@@ -53,6 +54,28 @@ const modal = (state = {}, action) => {
},
confirmModal: {}
}
+ case 'SELECT_TT_CALENDAR_MODAL':
+ newModalProps = Object.assign({}, state.modalProps, {selectedTimetable : action.selectedItem})
+ return Object.assign({}, state, {modalProps: newModalProps})
+ case 'ADD_SELECTED_TIMETABLE':
+ if(state.modalProps.selectedTimetable){
+ newModalProps = JSON.parse(JSON.stringify(state.modalProps))
+ newModalProps.vehicleJourneys.map((vj) => {
+ let isPresent = false
+ vj.time_tables.forEach((tt) =>{
+ if (_.isEqual(newModalProps.selectedTimetable.objectid, tt.objectid)){
+ isPresent = true
+ }
+ })
+ if (!isPresent){
+ vj.time_tables.push(newModalProps.selectedTimetable)
+ }
+ })
+ if (!_.find(newModalProps.timetables, newModalProps.selectedTimetable)){
+ newModalProps.timetables.push(newModalProps.selectedTimetable)
+ }
+ return Object.assign({}, state, {modalProps: newModalProps})
+ }
case 'DELETE_CALENDAR_MODAL':
newModalProps = JSON.parse(JSON.stringify(state.modalProps))
let timetablesModal = state.modalProps.timetables.slice(0)
@@ -64,7 +87,7 @@ const modal = (state = {}, action) => {
vehicleJourneysModal = state.modalProps.vehicleJourneys.slice(0)
vehicleJourneysModal.map((vj) =>{
vj.time_tables.map((tt, i) =>{
- if (tt == action.timetable){
+ if (_.isEqual(tt, action.timetable)){
vj.time_tables.splice(i, 1)
}
})
@@ -104,8 +127,4 @@ const modal = (state = {}, action) => {
}
}
-function isInArray(value, array) {
- return array.indexOf(value) > -1;
-}
-
module.exports = modal