From a9586d1c2b6cafc615f0b0e9203520621a97b40a Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 31 Mar 2017 10:47:37 +0200 Subject: Refs #2946: Fix content in header not being reloaded properly (thanks to turbolinks) Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/main_menu.coffee | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index c6bfc8408..9357cff34 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -20,22 +20,22 @@ $(document).on 'ready page:load', -> selectedItem.closest('.panel-title').children('a').attr('aria-expanded') == true # Sticky content - if ($('.page-action .small').length > 0) - data = $('.page-action .small')[0].innerHTML - - if ($(".page-title").length > 0) - ptitleCont = $(".page-title").html() - - stickyContent = '
' - stickyContent += '
' + ptitleCont + '
' - stickyContent += '
' + data + '
' - stickyContent += '
' # Sticky behavior $(document).on 'scroll', -> limit = 51 if $(window).scrollTop() >= limit + if ($('.page-action .small').length > 0) + data = $('.page-action .small')[0].innerHTML + + if ($(".page-title").length > 0) + ptitleCont = $(".page-title").html() + + stickyContent = '
' + stickyContent += '
' + ptitleCont + '
' + stickyContent += '
' + data + '
' + stickyContent += '
' $('#main_nav').addClass 'sticky' if $('#menu_top').find('.sticky-content').length == 0 -- cgit v1.2.3 From 8fa4640289fdb8dfa4b9b730a6383711b5503bbf Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 31 Mar 2017 12:47:42 +0200 Subject: Refs #3015: Attempt fix submit being fired multiple times Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/forms.coffee | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index 426f3e6ee..9d884edcd 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -1,3 +1,7 @@ +# IE fix +isIE = false || !!document.documentMode +isEdge = !isIE && !!window.StyleMedia + @togglableFilter = -> $('.form-filter').on 'click', '.form-group.togglable', (e)-> if $(e.target).hasClass('togglable') || $(e.target).parent().hasClass('togglable') @@ -23,17 +27,15 @@ $('.formSubmitr').appendTo('.page-action') - # IE fix - isIE = false || !!document.documentMode - isEdge = !isIE && !!window.StyleMedia - if isIE || isEdge $('.formSubmitr').off() - $(document).on 'click', '.formSubmitr', (e)-> - e.preventDefault() - target = $(this).attr('form') - $('#' + target).submit() $(document).on 'ready page:load', togglableFilter $(document).on 'ready page:load', submitMover $(document).on 'ready page:load', switchInput + +if isIE || isEdge + $(document).on 'click', '.formSubmitr', (e)-> + e.preventDefault() + target = $(this).attr('form') + $('#' + target).submit() -- cgit v1.2.3 From 4ed8d66ec3025cb4e554554161a7af01307bd128 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 3 Apr 2017 17:26:12 +0200 Subject: Refs #3028: Add and update permissions for vj and jp Signed-off-by: Thomas Shawarma Haddad --- .../journey_patterns/components/CreateModal.js | 2 +- .../journey_patterns/components/JourneyPattern.js | 6 +++--- .../journey_patterns/components/JourneyPatterns.js | 1 + .../journey_patterns/components/SaveJourneyPattern.js | 2 +- .../javascripts/es6_browserified/journey_patterns/index.js | 1 + .../vehicle_journeys/components/SaveVehicleJourneys.js | 5 +++-- .../vehicle_journeys/components/VehicleJourney.js | 14 +++++++------- .../vehicle_journeys/components/tools/CreateModal.js | 2 +- .../vehicle_journeys/containers/SaveVehicleJourneys.js | 3 ++- .../javascripts/es6_browserified/vehicle_journeys/index.js | 2 +- 10 files changed, 21 insertions(+), 17 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js index 573ebf228..aa2d208df 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js @@ -17,7 +17,7 @@ class CreateModal extends Component { } render() { - if(this.props.status.isFetching == true) { + if(this.props.status.isFetching == true || this.props.status.policy['journey_patterns.edit'] == false) { return false } if(this.props.status.fetchSuccess == true) { diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index 3dae38d74..04e3b8974 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -34,7 +34,7 @@ class JourneyPattern extends Component{ type='checkbox' id={sp.id} checked={sp.checked} - disabled={this.props.value.deletable ? 'disabled' : ''} + disabled={(this.props.value.deletable || this.props.status.policy['journey_patterns.edit'] == false) ? 'disabled' : ''} > @@ -74,7 +74,7 @@ class JourneyPattern extends Component{
    -
  • +
  • {this.vehicleJourneyURL(this.props.value.object_id)}
  • -
  • +
  • { diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js index 37a0a5126..e0557d651 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js @@ -116,6 +116,7 @@ class JourneyPatterns extends Component{ onCheckboxChange= {(e) => this.props.onCheckboxChange(e, index)} onOpenEditModal= {() => this.props.onOpenEditModal(index, journeyPattern)} onDeleteJourneyPattern={() => this.props.onDeleteJourneyPattern(index)} + status= {this.props.status} /> )} diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js index 6e09430a0..43800330f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js @@ -15,7 +15,7 @@ class SaveJourneyPattern extends Component{ } render() { - if(this.props.status.isFetching == true) { + if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == true)) { return false } if(this.props.status.fetchSuccess == true) { diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js index a2e1c2fb6..b06957e0f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js @@ -13,6 +13,7 @@ var App = require('./components/App') var initialState = { status: { + policy: window.perms, fetchSuccess: true, isFetching: false }, diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js index b22e1d826..bd34ae114 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js @@ -15,7 +15,7 @@ class SaveVehicleJourneys extends Component{ } render() { - if(this.props.status.isFetching == true) { + if(this.props.status.isFetching == true || this.props.filters.policy['vehicle_journeys.edit'] == false) { return false } if(this.props.status.fetchSuccess == true) { @@ -46,7 +46,8 @@ class SaveVehicleJourneys extends Component{ SaveVehicleJourneys.propTypes = { vehicleJourneys: PropTypes.array.isRequired, page: PropTypes.number.isRequired, - status: PropTypes.object.isRequired + status: PropTypes.object.isRequired, + filters: PropTypes.object.isRequired } module.exports = SaveVehicleJourneys 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 dc0621f76..f91a59a16 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js @@ -54,7 +54,7 @@ class VehicleJourney extends Component {
    {this.timeTableURL(tt.id)}
    )} - {this.isDisabled(this.props.filters.policy['vehicle_journeys.edit'], this.props.filters.policy['vehicle_journeys.destroy']) && + {(this.props.filters.policy['vehicle_journeys.edit'] == true) &&
    {this.props.filters.toggleArrivals &&
    - + {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false)}} value={vj.arrival_time['hour']} /> @@ -90,7 +90,7 @@ class VehicleJourney extends Component { min='00' max='59' className='form-control' - disabled={((this.props.value.deletable) && (!vj.dummy))} + disabled={((this.props.value.deletable) && (!vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false)}} value={vj.arrival_time['minute']} /> @@ -103,13 +103,13 @@ class VehicleJourney extends Component { }
    - + {this.props.onUpdateTime(e, i, this.props.index, 'hour', true, this.props.filters.toggleArrivals)}} value={vj.departure_time['hour']} /> @@ -119,7 +119,7 @@ class VehicleJourney extends Component { min='00' max='59' className='form-control' - disabled={this.isDisabled(this.props.value.deletable, vj.dummy)} + disabled={(this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, "minute", true, this.props.filters.toggleArrivals)}} value={vj.departure_time['minute']} /> diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js index 1a1588f85..1eba37a90 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js @@ -27,7 +27,7 @@ class CreateModal extends Component {
  • { return { vehicleJourneys: state.vehicleJourneys, page: state.pagination.page, - status: state.status + status: state.status, + filters: state.filters } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js index 1b9ff8f41..bf6930215 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -21,7 +21,7 @@ if (window.journeyPatternId) var initialState = { filters: { selectedJourneyPatterns : selectedJP, - policy: perms, + policy: window.perms, toggleArrivals: false, queryString: '', query: { -- cgit v1.2.3 From bdf1a763e001aa5de6d237a50813b52927cd5fa7 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 3 Apr 2017 17:44:36 +0200 Subject: Fix disabled links on jp --- .../journey_patterns/components/JourneyPattern.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index 04e3b8974..e0952e769 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -75,28 +75,28 @@ class JourneyPattern extends Component{ -- cgit v1.2.3 From ad321635979ddade79fbebb08d3901e879031bb4 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 10:31:15 +0200 Subject: Fix delete button not being disabled properly Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/JourneyPattern.js | 1 + 1 file changed, 1 insertion(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index e0952e769..8b5aa2e89 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -90,6 +90,7 @@ class JourneyPattern extends Component{
  • diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js index 1eba37a90..1273921e7 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js @@ -25,15 +25,15 @@ class CreateModal extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - - +
    diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js index e2425cc22..c98b794a8 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js @@ -5,9 +5,9 @@ var actions = require('../../actions') const DeleteVehicleJourneys = ({onDeleteVehicleJourneys, vehicleJourneys, filters}) => { return (
  • - 0 && filters.policy['vehicle_journeys.destroy']) ? '' : 'disabled'} +
  • ) } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js index b0cb1c850..7fc625f6a 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js @@ -23,15 +23,15 @@ class DuplicateVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - - +
    diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js index f7726dad9..12814bad1 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js @@ -24,15 +24,15 @@ class EditVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - this.props.onOpenEditModal(actions.getSelected(this.props.vehicleJourneys)[0])} > - +
    diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js index 7c5df3333..ca8b2ec7d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js @@ -44,15 +44,15 @@ class NotesEditVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - this.props.onOpenNotesEditModal(actions.getSelected(this.props.vehicleJourneys)[0])} > - +
    diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js index a373ed1e5..af1b29de1 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js @@ -23,15 +23,15 @@ class ShiftVehicleJourney extends Component { if(this.props.status.fetchSuccess == true) { return (
  • - - +
    -- cgit v1.2.3 From 4bb68cf4748fae774cad7ef6c1e71e91e72a1af6 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 14:42:34 +0200 Subject: Refs #3035: Fix arrival and departure time not overlapping Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'app/assets/javascripts') 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 5924f5cc7..b42cf5f93 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -75,10 +75,16 @@ const vehicleJourney= (state = {}, action) => { if(!action.isArrivalsToggled) newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) newSchedule = actions.getDelta(newSchedule) + if(newSchedule.delta < 0){ + return vjas + } return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) }else{ newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) newSchedule = actions.getDelta(newSchedule) + if(newSchedule.delta < 0){ + return vjas + } return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) } }else{ -- cgit v1.2.3 From 2620efba52c5ce68ec9f0b812f387d7ef66c9d13 Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 4 Apr 2017 15:44:50 +0200 Subject: Refs #2892: adding simpleform builder for acts-as-taggable (for timetable#edit) --- app/assets/javascripts/select2.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/select2.coffee b/app/assets/javascripts/select2.coffee index edd4c476d..e20ef8d32 100644 --- a/app/assets/javascripts/select2.coffee +++ b/app/assets/javascripts/select2.coffee @@ -7,5 +7,13 @@ placeholder: target.data('select2ed-placeholder') allowClear: true + $('select.form-control.tags').each -> + target = $(this) + target.select2 + theme: 'bootstrap' + language: 'fr' + allowClear: true + tags: true + $(document).on 'ready page:load', select_2 -- cgit v1.2.3 From e2cae59e05914688b0d23b83a3dd80761c4df453 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 17:03:49 +0200 Subject: Refs #3039: Fix pad when setting value in inputs Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/actions/index.js | 29 ++++++++++++++-------- .../vehicle_journeys/reducers/filters.js | 4 +-- .../vehicle_journeys/reducers/vehicleJourneys.js | 6 ++--- 3 files changed, 24 insertions(+), 15 deletions(-) (limited to 'app/assets/javascripts') 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 4e67482da..c1ac1bd0e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -362,12 +362,21 @@ const actions = { return obj.selected }) }, - pad: (d) => { + pad: (d, timeUnit) => { + let val = d.toString() if(d.toString().length == 1){ - return (d < 10) ? '0' + d.toString() : d.toString(); - }else{ - return d.toString() + val = (d < 10) ? '0' + d.toString() : d.toString(); + } + if(val.length > 2){ + val = val.substr(1) + } + if(timeUnit == 'minute' && parseInt(val) > 59){ + val = '59' + } + if(timeUnit == 'hour' && parseInt(val) > 23){ + val = '23' } + return val }, encodeParams: (params) => { let esc = encodeURIComponent @@ -391,18 +400,18 @@ const actions = { }, checkSchedules: (schedule) => { if (parseInt(schedule.departure_time.minute) > 59){ - schedule.departure_time.minute = actions.pad(parseInt(schedule.departure_time.minute) - 60) - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) + 1) + schedule.departure_time.minute = actions.pad(parseInt(schedule.departure_time.minute) - 60, 'minute') + schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) + 1, 'hour') } if (parseInt(schedule.arrival_time.minute) > 59){ - schedule.arrival_time.minute = actions.pad(parseInt(schedule.arrival_time.minute) - 60) - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) + 1) + schedule.arrival_time.minute = actions.pad(parseInt(schedule.arrival_time.minute) - 60, 'minute') + schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) + 1, 'hour') } if (parseInt(schedule.departure_time.hour) > 23){ - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) - 24) + schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) - 24, 'hour') } if (parseInt(schedule.arrival_time.hour) > 23){ - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) - 24) + schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) - 24, 'hour') } } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index 4b67dc4df..e7d5baafc 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -22,7 +22,7 @@ const filters = (state = {}, action) => { return _.assign({}, state, {query: newQuery}) case 'UPDATE_END_TIME_FILTER': newInterval = JSON.parse(JSON.stringify(state.query.interval)) - newInterval.end[action.unit] = actions.pad(action.val) + newInterval.end[action.unit] = actions.pad(action.val, action.unit) if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){ newQuery = _.assign({}, state.query, {interval: newInterval}) return _.assign({}, state, {query: newQuery}) @@ -31,7 +31,7 @@ const filters = (state = {}, action) => { } case 'UPDATE_START_TIME_FILTER': newInterval = JSON.parse(JSON.stringify(state.query.interval)) - newInterval.start[action.unit] = actions.pad(action.val) + newInterval.start[action.unit] = actions.pad(action.val, action.unit) if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){ newQuery = _.assign({}, state.query, {interval: newInterval}) return _.assign({}, state, {query: newQuery}) 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 b42cf5f93..cb3ca90ad 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -71,16 +71,16 @@ const vehicleJourney= (state = {}, action) => { arrival_time: _.assign({}, vjas.arrival_time) } if (action.isDeparture){ - newSchedule.departure_time[action.timeUnit] = actions.pad(action.val) + newSchedule.departure_time[action.timeUnit] = actions.pad(action.val, action.timeUnit) if(!action.isArrivalsToggled) - newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) + newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val, action.timeUnit) newSchedule = actions.getDelta(newSchedule) if(newSchedule.delta < 0){ return vjas } return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta}) }else{ - newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val) + newSchedule.arrival_time[action.timeUnit] = actions.pad(action.val, action.timeUnit) newSchedule = actions.getDelta(newSchedule) if(newSchedule.delta < 0){ return vjas -- cgit v1.2.3 From 0eb29d3c273f6161a6eda820cc6c53614641cef8 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 4 Apr 2017 17:15:32 +0200 Subject: Refs #3040: Fix wording && disable inputs correctly Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/components/VehicleJourney.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') 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 f91a59a16..0645fdd19 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js @@ -73,14 +73,14 @@ class VehicleJourney extends Component {
    {this.props.filters.toggleArrivals && -
    - +
    + {this.props.onUpdateTime(e, i, this.props.index, 'hour', false, false)}} value={vj.arrival_time['hour']} /> @@ -90,7 +90,7 @@ class VehicleJourney extends Component { min='00' max='59' className='form-control' - disabled={((this.props.value.deletable) && (!vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} + disabled={((this.isDisabled(this.props.value.deletable), vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false)} onChange={(e) => {this.props.onUpdateTime(e, i, this.props.index, 'minute', false, false)}} value={vj.arrival_time['minute']} /> @@ -102,7 +102,7 @@ class VehicleJourney extends Component { }
    -
    +
    --- .../javascripts/es6_browserified/vehicle_journeys/actions/index.js | 7 +++++++ .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') 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 c1ac1bd0e..9b6eca720 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -362,6 +362,13 @@ const actions = { return obj.selected }) }, + simplePad: (d) => { + if(d.toString().length == 1){ + return (d < 10) ? '0' + d.toString() : d.toString(); + }else{ + return d.toString() + } + }, pad: (d, timeUnit) => { let val = d.toString() if(d.toString().length == 1){ 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 cb3ca90ad..15e74a9aa 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -50,11 +50,11 @@ const vehicleJourney= (state = {}, action) => { shiftedSchedule = { departure_time: { hour: vjas.departure_time.hour, - minute: String(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) + minute: actions.simplePad(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) }, arrival_time: { hour: vjas.arrival_time.hour, - minute: String(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) + minute: actions.simplePad(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) } } actions.checkSchedules(shiftedSchedule) @@ -166,11 +166,12 @@ const vehicleJourneys = (state = [], action) => { let dupeVj let dupes = [] let selectedIndex + let val = action.data.additional_time.value state.map((vj, i) => { if(vj.selected){ selectedIndex = i for (i = 0; i< action.data.duplicate_number.value; i++){ - action.data.additional_time.value *= (i + 1) + action.data.additional_time.value = val * (i + 1) dupeVj = vehicleJourney(vj, action) dupeVj.published_journey_name = dupeVj.published_journey_name + '-' + i dupeVj.selected = false -- cgit v1.2.3 From 1e5a595150f4a90dcf17e0e6cd32728486fb36b8 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 5 Apr 2017 11:54:44 +0200 Subject: Refs #3028: Fix Save button not correctly displayed in jp Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/SaveJourneyPattern.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js index 43800330f..93dfa8c6b 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js @@ -15,7 +15,7 @@ class SaveJourneyPattern extends Component{ } render() { - if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == true)) { + if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == false)) { return false } if(this.props.status.fetchSuccess == true) { -- cgit v1.2.3 From 4a2a973c84a63e32cf33779808af2a1620867502 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 5 Apr 2017 14:46:15 +0200 Subject: Refs #3041: Fix dummy vjas not being affected by shift/duplicate Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/reducers/vehicleJourneys.js | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'app/assets/javascripts') 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 15e74a9aa..48d7a8f55 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -47,19 +47,23 @@ const vehicleJourney= (state = {}, action) => { case 'SHIFT_VEHICLEJOURNEY': let shiftedArray, shiftedSchedule, shiftedVjas shiftedArray = state.vehicle_journey_at_stops.map((vjas, i) => { - shiftedSchedule = { - departure_time: { - hour: vjas.departure_time.hour, - minute: actions.simplePad(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) - }, - arrival_time: { - hour: vjas.arrival_time.hour, - minute: actions.simplePad(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) + if (!vjas.dummy){ + shiftedSchedule = { + departure_time: { + hour: vjas.departure_time.hour, + minute: actions.simplePad(parseInt(vjas.departure_time.minute) + parseInt(action.data.additional_time.value)) + }, + arrival_time: { + hour: vjas.arrival_time.hour, + minute: actions.simplePad(parseInt(vjas.arrival_time.minute) + parseInt(action.data.additional_time.value)) + } } + actions.checkSchedules(shiftedSchedule) + shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) + return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) + }else { + return vjas } - actions.checkSchedules(shiftedSchedule) - shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) - return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) }) return _.assign({}, state, {vehicle_journey_at_stops: shiftedArray}) case 'UPDATE_TIME': -- cgit v1.2.3 From 2531fc719217ea6b3839df7a14aab124bf7b5743 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 5 Apr 2017 15:05:26 +0200 Subject: Refs #3049: Remove id from all vjas when duping a vj Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 1 + 1 file changed, 1 insertion(+) (limited to 'app/assets/javascripts') 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 48d7a8f55..ba3d58c22 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -60,6 +60,7 @@ const vehicleJourney= (state = {}, action) => { } actions.checkSchedules(shiftedSchedule) shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) + delete shiftedVjas['id'] return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) }else { return vjas -- cgit v1.2.3 From 45a789aa0041cbfeca535a8679f3d88ccbe01757 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 6 Apr 2017 15:28:14 +0200 Subject: Refs #2507: Fix filter modal not being displayed, added arg in querystring for toggle arrivals Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/JourneyPattern.js | 2 +- .../javascripts/es6_browserified/vehicle_journeys/reducers/filters.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index a37b9f1d8..d9f6d5550 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -14,7 +14,7 @@ class JourneyPattern extends Component{ let vjURL = routeURL + '/vehicle_journeys?jp=' + jpOid return ( - Horaires des courses + Horaires des courses ) } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index e7d5baafc..0fcb3489e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -54,7 +54,8 @@ const filters = (state = {}, action) => { 'q[journey_pattern_id_eq]': state.query.journeyPattern.id || undefined, 'q[time_tables_id_eq]': state.query.timetable.id || undefined, 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute), - 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute) + 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute), + 'q[vehicle_journey_without_u2]' : state.toggleArrivals } let queryString = actions.encodeParams(params) return _.assign({}, state, {queryString: queryString}) -- cgit v1.2.3 From 7ac766fb016108429730248f1a8bfd5065e8c31b Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 6 Apr 2017 18:00:22 +0200 Subject: Refs #3067 #3068: Fix Shift and duplicate accordingly to current needs Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/actions/index.js | 57 +++++++++++++++++++--- .../components/tools/DuplicateVehicleJourney.js | 2 +- .../components/tools/ShiftVehicleJourney.js | 2 +- 3 files changed, 51 insertions(+), 10 deletions(-) (limited to 'app/assets/javascripts') 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 9b6eca720..9abaf9d0f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -406,20 +406,61 @@ const actions = { return vjas }, checkSchedules: (schedule) => { + let hours = 0 + let minutes = 0 if (parseInt(schedule.departure_time.minute) > 59){ - schedule.departure_time.minute = actions.pad(parseInt(schedule.departure_time.minute) - 60, 'minute') - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) + 1, 'hour') + hours = Math.floor(parseInt(schedule.departure_time.minute) / 60) + minutes = parseInt(schedule.departure_time.minute) % 60 + schedule.departure_time.minute = actions.simplePad(minutes, 'minute') + schedule.departure_time.hour = parseInt(schedule.departure_time.hour) + hours } if (parseInt(schedule.arrival_time.minute) > 59){ - schedule.arrival_time.minute = actions.pad(parseInt(schedule.arrival_time.minute) - 60, 'minute') - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) + 1, 'hour') + hours = Math.floor(parseInt(schedule.arrival_time.minute) / 60) + minutes = parseInt(schedule.arrival_time.minute) % 60 + schedule.arrival_time.minute = actions.simplePad(minutes, 'minute') + schedule.arrival_time.hour = parseInt(schedule.arrival_time.hour) + hours } - if (parseInt(schedule.departure_time.hour) > 23){ - schedule.departure_time.hour = actions.pad(parseInt(schedule.departure_time.hour) - 24, 'hour') + if (parseInt(schedule.departure_time.minute) < 0){ + hours = Math.floor(parseInt(schedule.departure_time.minute) / 60) + minutes = (parseInt(schedule.departure_time.minute) % 60) + 60 + schedule.departure_time.minute = actions.simplePad(minutes, 'minute') + schedule.departure_time.hour = parseInt(schedule.departure_time.hour) + hours } - if (parseInt(schedule.arrival_time.hour) > 23){ - schedule.arrival_time.hour = actions.pad(parseInt(schedule.arrival_time.hour) - 24, 'hour') + if (parseInt(schedule.arrival_time.minute) < 0){ + hours = Math.floor(parseInt(schedule.arrival_time.minute) / 60) + minutes = (parseInt(schedule.arrival_time.minute) % 60) + 60 + schedule.arrival_time.minute = actions.simplePad(minutes, 'minute') + schedule.arrival_time.hour = parseInt(schedule.arrival_time.hour) + hours } + + if(schedule.departure_time.hour > 23){ + schedule.departure_time.hour = '23' + schedule.departure_time.minute = '59' + } + if(schedule.arrival_time.hour > 23){ + schedule.arrival_time.hour = '23' + schedule.arrival_time.minute = '59' + } + + if(schedule.departure_time.hour < 0){ + schedule.departure_time.hour = '00' + schedule.departure_time.minute = '00' + } + if(schedule.arrival_time.hour > 23){ + schedule.arrival_time.hour = '00' + schedule.arrival_time.minute = '00' + } + + schedule.departure_time.hour = actions.simplePad(parseInt(schedule.departure_time.hour), 'hour') + schedule.arrival_time.hour = actions.simplePad(parseInt(schedule.arrival_time.hour), 'hour') + // if (parseInt(schedule.departure_time.hour) > 23){ + // schedule.departure_time.hour = parseInt(schedule.departure_time.hour) - 24 + // } + // if (parseInt(schedule.arrival_time.hour) > 23){ + // schedule.arrival_time.hour = parseInt(schedule.arrival_time.hour) - 24 + // } + // schedule.departure_time.hour = actions.pad(schedule.departure_time.hour, 'hour') + // schedule.arrival_time.hour = actions.pad(schedule.arrival_time.hour, 'hour') } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js index 7fc625f6a..7448aa06e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js @@ -68,7 +68,7 @@ class DuplicateVehicleJourney extends Component { actions.resetValidation(e.currentTarget)} diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js index af1b29de1..ee7d01cf5 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js @@ -54,7 +54,7 @@ class ShiftVehicleJourney extends Component { actions.resetValidation(e.currentTarget)} -- cgit v1.2.3 From 7f9a6c636f50df5e5cd6032bdecfaa216b51efbb Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 7 Apr 2017 11:26:58 +0200 Subject: Refs #3049: Remove id from vjas when shifted in all cases Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') 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 ba3d58c22..2db76deae 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js @@ -60,9 +60,11 @@ const vehicleJourney= (state = {}, action) => { } actions.checkSchedules(shiftedSchedule) shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule) - delete shiftedVjas['id'] - return _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) + vjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas) + delete vjas['id'] + return vjas }else { + delete vjas['id'] return vjas } }) -- cgit v1.2.3 From 05d43edd0cbc585e1fde54832dc5a000908323dd Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 7 Apr 2017 12:03:54 +0200 Subject: Refs #3082: Fix correct totalCount for pagination Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/journey_patterns/actions/index.js | 6 ++++-- .../javascripts/es6_browserified/vehicle_journeys/actions/index.js | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'app/assets/javascripts') 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 709686f21..54d62f999 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -130,9 +130,10 @@ const actions = { if(next) { dispatch(next) } else { - if(json.length != window.journeyPatternsPerPage){ - dispatch(actions.updateTotalCount(window.journeyPatternsPerPage - json.length)) + if(json.length != window.currentItemsLength){ + dispatch(actions.updateTotalCount(window.currentItemsLength - json.length)) } + window.currentItemsLength = json.length dispatch(actions.receiveJourneyPatterns(json)) } } @@ -196,6 +197,7 @@ const actions = { }) } } + window.currentItemsLength = journeyPatterns.length dispatch(actions.receiveJourneyPatterns(journeyPatterns)) } }) 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 9abaf9d0f..d39943913 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -318,6 +318,7 @@ const actions = { company_id: val.published_journey_name || 'non renseigné' }) } + window.currentItemsLength = vehicleJourneys.length dispatch(actions.receiveVehicleJourneys(vehicleJourneys)) dispatch(actions.receiveTotalCount(json.total)) } @@ -348,9 +349,10 @@ const actions = { if(next) { dispatch(next) } else { - if(json.length != window.vehicleJourneysPerPage){ - dispatch(actions.updateTotalCount(window.vehicleJourneysPerPage - json.length)) + if(json.length != window.currentItemsLength){ + dispatch(actions.updateTotalCount(window.currentItemsLength - json.length)) } + window.currentItemsLength = json.length dispatch(actions.receiveVehicleJourneys(json)) } } -- cgit v1.2.3 From 700927525b24ecbbb730db468117838cfd2a1676 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 7 Apr 2017 12:17:22 +0200 Subject: Refs #3082: Fix disabled condition for navigation in vj and jp Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/journey_patterns/components/Navigate.js | 4 ++-- .../es6_browserified/vehicle_journeys/components/Navigate.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js index 3ca860e2e..5747aa5ce 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js @@ -31,7 +31,7 @@ let Navigate = ({ dispatch, journeyPatterns, pagination, status }) => { data-toggle='' data-target='#ConfirmModal' className={'previous_page' + (pagination.page == firstPage ? ' disabled' : '')} - disabled={'previous_page' + (pagination.page == firstPage ? ' disabled' : '')} + disabled={(pagination.page == firstPage ? ' disabled' : '')} > diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js index 2d5923a4d..a62e034ae 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js @@ -29,7 +29,7 @@ let Navigate = ({ dispatch, vehicleJourneys, pagination, status, filters}) => { type='button' data-target='#ConfirmModal' className={(pagination.page == firstPage ? 'disabled ' : '') + 'previous_page'} - disabled={(pagination.page == firstPage ? true : false)} + disabled={(pagination.page == firstPage ? 'disabled' : '')} >
    -- cgit v1.2.3 From f9c0e09501fed2daec12a5c4b2d282b2da9c3713 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 10 Apr 2017 12:27:03 +0200 Subject: Fix wrong value passed to queryString in vj Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/vehicle_journeys/reducers/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index 0fcb3489e..2d726190f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -55,7 +55,7 @@ const filters = (state = {}, action) => { 'q[time_tables_id_eq]': state.query.timetable.id || undefined, 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute), 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute), - 'q[vehicle_journey_without_u2]' : state.toggleArrivals + 'q[vehicle_journey_without_u2]' : state.query.toggleWithoutSchedule } let queryString = actions.encodeParams(params) return _.assign({}, state, {queryString: queryString}) -- cgit v1.2.3 From 8211f73dc9ac4da15626f0dee329a20fc64d98d0 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 10 Apr 2017 12:31:36 +0200 Subject: Fix typo Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/vehicle_journeys/reducers/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index 2d726190f..c358dd61a 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -55,7 +55,7 @@ const filters = (state = {}, action) => { 'q[time_tables_id_eq]': state.query.timetable.id || undefined, 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute), 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute), - 'q[vehicle_journey_without_u2]' : state.query.toggleWithoutSchedule + 'q[vehicle_journey_without_u2]' : state.query.withoutSchedule } let queryString = actions.encodeParams(params) return _.assign({}, state, {queryString: queryString}) -- cgit v1.2.3 From 0bb648c9eebcbcdfdd906e8f5e7839f9a7db253e Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 10 Apr 2017 12:38:39 +0200 Subject: Refs #2892: init reactux in edit, fetch and load state with datas Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 33 +++++++++++++++ .../es6_browserified/time_tables/containers/App.js | 29 +++++++++++++ .../es6_browserified/time_tables/index.js | 48 ++++++++++++++++++++++ .../time_tables/reducers/current_month.js | 10 +++++ .../es6_browserified/time_tables/reducers/index.js | 18 ++++++++ .../es6_browserified/time_tables/reducers/modal.js | 8 ++++ .../time_tables/reducers/pagination.js | 8 ++++ .../time_tables/reducers/periode_range.js | 10 +++++ .../time_tables/reducers/status.js | 16 ++++++++ .../time_tables/reducers/time_table_periods.js | 10 +++++ 10 files changed, 190 insertions(+) create mode 100644 app/assets/javascripts/es6_browserified/time_tables/actions/index.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/containers/App.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/index.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/index.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/status.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js new file mode 100644 index 000000000..7c9a5be08 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -0,0 +1,33 @@ +const actions = { + fetchingApi: () =>({ + type: 'FETCH_API' + }), + unavailableServer : () => ({ + type: 'UNAVAILABLE_SERVER' + }), + receiveTimeTables : (json) => ({ + type: "RECEIVE_TIME_TABLES", + json + }), + + fetchTimeTables : (dispatch, currentPage, nextPage) => { + let urlJSON = window.location.pathname.split('/', 5).join('/') + '.json' + let hasError = false + fetch(urlJSON, { + credentials: 'same-origin', + }).then(response => { + if(response.status == 500) { + hasError = true + } + return response.json() + }).then((json) => { + if(hasError == true) { + dispatch(actions.unavailableServer()) + } else { + dispatch(actions.receiveTimeTables(json)) + } + }) + }, +} + +module.exports = actions diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js new file mode 100644 index 000000000..ab8c3bf06 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js @@ -0,0 +1,29 @@ +var React = require('react') +var connect = require('react-redux').connect +var Component = require('react').Component +var actions = require('../actions') + +class App extends Component { + componentDidMount(){ + this.props.onLoadFirstPage() + } + + render(){ + return( +
    + ) + } +} + +const mapDispatchToProps = (dispatch) => { + return { + onLoadFirstPage: () =>{ + dispatch(actions.fetchingApi()) + actions.fetchTimeTables(dispatch) + } + } +} + +const timeTableApp = connect(null, mapDispatchToProps)(App) + +module.exports = timeTableApp diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js new file mode 100644 index 000000000..4e44e49ba --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/index.js @@ -0,0 +1,48 @@ +var React = require('react') +var render = require('react-dom').render +var Provider = require('react-redux').Provider +var createStore = require('redux').createStore +var timeTablesApp = require('./reducers') +var App = require('./containers/App') + +// logger, DO NOT REMOVE +// var applyMiddleware = require('redux').applyMiddleware +// var createLogger = require('redux-logger') +// var thunkMiddleware = require('redux-thunk').default +// var promise = require('redux-promise') + +var initialState = { + status: { + policy: window.perms, + fetchSuccess: true, + isFetching: false + }, + current_month: [], + time_table_periods: [], + periode_range: [], + pagination: { + page : 1, + totalCount: window.journeyPatternLength, + perPage: window.journeyPatternsPerPage, + stateChanged: false + }, + modal: { + type: '', + modalProps: {}, + confirmModal: {} + } +} +// const loggerMiddleware = createLogger() + +let store = createStore( + timeTablesApp, + initialState + // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) +) + +render( + + + , + document.getElementById('time_tables') +) diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js new file mode 100644 index 000000000..425e897d1 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js @@ -0,0 +1,10 @@ +const currentMonth = (state = [], action) => { + switch (action.type) { + case 'RECEIVE_TIME_TABLES': + return action.json.current_month + default: + return state + } +} + +module.exports = currentMonth diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js new file mode 100644 index 000000000..4308c0104 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js @@ -0,0 +1,18 @@ +var combineReducers = require('redux').combineReducers +var status = require('./status') +var pagination = require('./pagination') +var modal = require('./modal') +var current_month = require('./current_month') +var periode_range = require('./periode_range') +var time_table_periods = require('./time_table_periods') + +const timeTablesApp = combineReducers({ + current_month, + periode_range, + time_table_periods, + status, + pagination, + modal +}) + +module.exports = timeTablesApp diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js new file mode 100644 index 000000000..e011164c5 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js @@ -0,0 +1,8 @@ +const modal = (state = {}, action) => { + switch (action.type) { + default: + return state + } +} + +module.exports = modal diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js new file mode 100644 index 000000000..5ea7300dc --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js @@ -0,0 +1,8 @@ +const pagination = (state = {}, action) => { + switch (action.type) { + default: + return state + } +} + +module.exports = pagination diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js new file mode 100644 index 000000000..095069f8a --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js @@ -0,0 +1,10 @@ +const periodeRange = (state = [], action) => { + switch (action.type) { + case 'RECEIVE_TIME_TABLES': + return action.json.periode_range + default: + return state + } +} + +module.exports = periodeRange diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js new file mode 100644 index 000000000..aaedff4c1 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js @@ -0,0 +1,16 @@ +var _ = require('lodash') + +const status = (state = {}, action) => { + switch (action.type) { + case 'UNAVAILABLE_SERVER': + return _.assign({}, state, {fetchSuccess: false}) + case 'FETCH_API': + return _.assign({}, state, {isFetching: true}) + case 'RECEIVE_JOURNEY_PATTERNS': + return _.assign({}, state, {fetchSuccess: true, isFetching: false}) + default: + return state + } +} + +module.exports = status diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js new file mode 100644 index 000000000..614e63894 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js @@ -0,0 +1,10 @@ +const timeTablePeriods = (state = [], action) => { + switch (action.type) { + case 'RECEIVE_TIME_TABLES': + return action.json.time_table_periods + default: + return state + } +} + +module.exports = timeTablePeriods -- cgit v1.2.3 From 54b0dd9698576611792992e34bcdca04d8533d91 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 10 Apr 2017 14:14:28 +0200 Subject: Fix query.withoutSchedule default is true in vj Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/vehicle_journeys/components/Filters.js | 2 +- app/assets/javascripts/es6_browserified/vehicle_journeys/index.js | 2 +- .../javascripts/es6_browserified/vehicle_journeys/reducers/filters.js | 2 +- 3 files changed, 3 insertions(+), 3 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 bddb29434..6f07dd880 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js @@ -97,7 +97,7 @@ const Filters = ({filters, pagination, onFilter, onResetFilters, onUpdateStartTi onChange={onToggleWithoutSchedule} checked={filters.query.withoutSchedule} > - +
    diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js index bf6930215..4c9423c1f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js @@ -44,7 +44,7 @@ var initialState = { timetable: { comment: '' }, - withoutSchedule: false + withoutSchedule: true } }, diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index c358dd61a..342400ba4 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -15,7 +15,7 @@ const filters = (state = {}, action) => { minute: '59' } } - newQuery = _.assign({}, state.query, {interval: interval, journeyPattern: {}, timetable: {}, withoutSchedule: false }) + newQuery = _.assign({}, state.query, {interval: interval, journeyPattern: {}, timetable: {}, withoutSchedule: true }) return _.assign({}, state, {query: newQuery, queryString: ''}) case 'TOGGLE_WITHOUT_SCHEDULE': newQuery = _.assign({}, state.query, {withoutSchedule: !state.query.withoutSchedule}) -- cgit v1.2.3 From 14ba8e73fea3a1fb26d1d714d1291e710f95f984 Mon Sep 17 00:00:00 2001 From: Xinhui Date: Mon, 10 Apr 2017 12:32:58 +0200 Subject: Vehicle_journeys toggle with or without departure time filter Refs #2507 --- .../javascripts/es6_browserified/vehicle_journeys/reducers/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js index 342400ba4..cd065e362 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js @@ -55,7 +55,7 @@ const filters = (state = {}, action) => { 'q[time_tables_id_eq]': state.query.timetable.id || undefined, 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute), 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute), - 'q[vehicle_journey_without_u2]' : state.query.withoutSchedule + 'q[vehicle_journey_without_departure_time]' : state.query.withoutSchedule } let queryString = actions.encodeParams(params) return _.assign({}, state, {queryString: queryString}) -- cgit v1.2.3 From 80ce363137280724679ca7869019dcf52a97c651 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 10 Apr 2017 16:03:03 +0200 Subject: Refs #3085: avoid jquery duplicating submit button in header Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/main_menu.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index 9357cff34..67e2f437e 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -49,5 +49,6 @@ $(document).on 'ready page:load', -> $('#main_nav').removeClass 'sticky' if $('#menu_top').find('.sticky-content').length > 0 - $('.page-action .small').after(link) + if !$('.page-action').find('.formSubmitr').length + $('.page-action .small').after(link) $('.sticky-content').remove() -- cgit v1.2.3 From 46de3ff815baeb1d44e751b25df6594f26b77be4 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 10 Apr 2017 17:21:37 +0200 Subject: Refs #3094: Add (sub) transport mode in vj edit modal Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/actions/index.js | 4 +- .../components/tools/EditVehicleJourney.js | 47 +++++++++++++++++----- 2 files changed, 41 insertions(+), 10 deletions(-) (limited to 'app/assets/javascripts') 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 d39943913..81bbcdbb0 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js @@ -315,7 +315,9 @@ const actions = { selected: false, published_journey_name: val.published_journey_name || 'non renseigné', published_journey_identifier: val.published_journey_name || 'non renseigné', - company_id: val.published_journey_name || 'non renseigné' + company_id: val.published_journey_name || 'non renseigné', + transport_mode: val.route.line.transport_mode || 'non renseigné', + transport_mode: val.route.line.transport_submode || 'non renseigné' }) } window.currentItemsLength = vehicleJourneys.length diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js index 12814bad1..9a4790051 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js @@ -74,22 +74,51 @@ class EditVehicleJourney extends Component {
    - - actions.resetValidation(e.currentTarget)} - required +
    + + actions.resetValidation(e.currentTarget)} + required /> +
    - +
    + this.props.onSelect2Company(e)} /> +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    +
    + + +
    -- cgit v1.2.3 From f62876f66e1ded5347ac93954845357a58be6aa9 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 10 Apr 2017 18:34:15 +0200 Subject: Refs #3092 #2909: adding color attribute, adding colorSelector component --- app/assets/javascripts/forms.coffee | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index 9d884edcd..679f92a54 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -30,9 +30,21 @@ isEdge = !isIE && !!window.StyleMedia if isIE || isEdge $('.formSubmitr').off() +@colorSelector = -> + $('.form-group .dropdown.color_selector').each -> + selectedStatus = $(this).children('.dropdown-toggle').children('.fa-circle') + + $(this).on 'click', "input[type='radio']", (e) -> + selectedValue = e.currentTarget.value + if selectedValue == '' + $(selectedStatus).css('color', 'transparent') + else + $(selectedStatus).css('color', selectedValue) + $(document).on 'ready page:load', togglableFilter $(document).on 'ready page:load', submitMover $(document).on 'ready page:load', switchInput +$(document).on 'ready page:load', colorSelector if isIE || isEdge $(document).on 'click', '.formSubmitr', (e)-> -- cgit v1.2.3 From cacf29a1b4a679e70a017053ed25e0ed7d095d10 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 11 Apr 2017 12:05:25 +0200 Subject: Refs #3094: Fix select2 in edit display primary and secondary operators Signed-off-by: Thomas Shawarma Haddad --- .../vehicle_journeys/components/tools/select2s/CompanySelect2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js index 7837cdbff..1f5e5e98f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js @@ -6,6 +6,7 @@ var Select2 = require('react-select2') // get JSON full path var origin = window.location.origin var path = window.location.pathname.split('/', 3).join('/') +var line = window.location.pathname.split('/')[4] class BSelect4 extends React.Component{ @@ -27,7 +28,7 @@ class BSelect4 extends React.Component{ width: '100%', placeholder: 'Filtrer par transporteur...', ajax: { - url: origin + path + '/companies.json', + url: origin + path + '/companies.json' + '?line_id=' + line, dataType: 'json', delay: '500', data: function(params) { -- cgit v1.2.3 From aa481c087b162bc775b4418e205f91c5b6bead19 Mon Sep 17 00:00:00 2001 From: Vlatka Pavisic Date: Tue, 11 Apr 2017 15:35:01 +0200 Subject: Refs #3047: Associate RoutingConstraintZone with StopPoints --- app/assets/javascripts/routing_constraint_zones.coffee | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 app/assets/javascripts/routing_constraint_zones.coffee (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/routing_constraint_zones.coffee b/app/assets/javascripts/routing_constraint_zones.coffee new file mode 100644 index 000000000..57f94e654 --- /dev/null +++ b/app/assets/javascripts/routing_constraint_zones.coffee @@ -0,0 +1,18 @@ +fill_stop_points_options = -> + stop_point_select = $('#routing_constraint_zone_stop_point_ids') + stop_point_select.empty() + route_id = $('#routing_constraint_zone_route_id').val() + $.ajax + url: "/referentials/5/lines/162/routes/#{route_id}/stop_points" + dataType: 'json' + success: (data, textStatus, jqXHR) -> + for stop_point in data + stop_point_select.append "" + error: (jqXHR, textStatus, errorThrown) -> + console.log textStatus + console.log errorThrown + +$ -> + if document.location.pathname.endsWith('new') + fill_stop_points_options() + $('#routing_constraint_zone_route_id').change(fill_stop_points_options) -- cgit v1.2.3 From 90c62a1a73265056cdf998193395d455f5c4c0b6 Mon Sep 17 00:00:00 2001 From: Vlatka Pavisic Date: Tue, 11 Apr 2017 16:27:51 +0200 Subject: Refs #3047 : Rm hardcoded URL --- app/assets/javascripts/routing_constraint_zones.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/routing_constraint_zones.coffee b/app/assets/javascripts/routing_constraint_zones.coffee index 57f94e654..bb7d8e9cd 100644 --- a/app/assets/javascripts/routing_constraint_zones.coffee +++ b/app/assets/javascripts/routing_constraint_zones.coffee @@ -1,9 +1,11 @@ fill_stop_points_options = -> stop_point_select = $('#routing_constraint_zone_stop_point_ids') stop_point_select.empty() + referential_id = document.location.pathname.match(/\d+/g)[0] + line_id = document.location.pathname.match(/\d+/g)[1] route_id = $('#routing_constraint_zone_route_id').val() $.ajax - url: "/referentials/5/lines/162/routes/#{route_id}/stop_points" + url: "/referentials/#{referential_id}/lines/#{line_id}/routes/#{route_id}/stop_points" dataType: 'json' success: (data, textStatus, jqXHR) -> for stop_point in data @@ -16,3 +18,4 @@ $ -> if document.location.pathname.endsWith('new') fill_stop_points_options() $('#routing_constraint_zone_route_id').change(fill_stop_points_options) + -- cgit v1.2.3 From 3f7aca89384a1e682fdf93c3449ade6348260ad3 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Thu, 13 Apr 2017 09:22:19 +0200 Subject: Replace 'ready page:load' by 'turbolinks:load' event. Refs #3017 --- app/assets/javascripts/forms.coffee | 8 ++++---- app/assets/javascripts/main_menu.coffee | 2 +- app/assets/javascripts/nav_panels.coffee | 2 +- app/assets/javascripts/routing_constraint_zones.coffee | 9 ++++----- app/assets/javascripts/select2.coffee | 2 +- app/assets/javascripts/selectable_table.coffee | 2 +- 6 files changed, 12 insertions(+), 13 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/forms.coffee b/app/assets/javascripts/forms.coffee index 679f92a54..6b00e9c26 100644 --- a/app/assets/javascripts/forms.coffee +++ b/app/assets/javascripts/forms.coffee @@ -41,10 +41,10 @@ isEdge = !isIE && !!window.StyleMedia else $(selectedStatus).css('color', selectedValue) -$(document).on 'ready page:load', togglableFilter -$(document).on 'ready page:load', submitMover -$(document).on 'ready page:load', switchInput -$(document).on 'ready page:load', colorSelector +$(document).on 'turbolinks:load', togglableFilter +$(document).on 'turbolinks:load', submitMover +$(document).on 'turbolinks:load', switchInput +$(document).on 'turbolinks:load', colorSelector if isIE || isEdge $(document).on 'click', '.formSubmitr', (e)-> diff --git a/app/assets/javascripts/main_menu.coffee b/app/assets/javascripts/main_menu.coffee index 67e2f437e..2e0cd3470 100644 --- a/app/assets/javascripts/main_menu.coffee +++ b/app/assets/javascripts/main_menu.coffee @@ -1,4 +1,4 @@ -$(document).on 'ready page:load', -> +$(document).on 'turbolinks:load', -> link = [] ptitleCont = "" diff --git a/app/assets/javascripts/nav_panels.coffee b/app/assets/javascripts/nav_panels.coffee index b254b9f94..829db5ad0 100644 --- a/app/assets/javascripts/nav_panels.coffee +++ b/app/assets/javascripts/nav_panels.coffee @@ -1,4 +1,4 @@ -$(document).on 'ready page:load', -> +$(document).on 'turbolinks:load', -> $('#menu_top [data-panel="toggle"]').on 'click', (e) -> e.preventDefault() $(this).siblings().removeClass 'active' diff --git a/app/assets/javascripts/routing_constraint_zones.coffee b/app/assets/javascripts/routing_constraint_zones.coffee index bb7d8e9cd..707b6a856 100644 --- a/app/assets/javascripts/routing_constraint_zones.coffee +++ b/app/assets/javascripts/routing_constraint_zones.coffee @@ -14,8 +14,7 @@ fill_stop_points_options = -> console.log textStatus console.log errorThrown -$ -> - if document.location.pathname.endsWith('new') - fill_stop_points_options() - $('#routing_constraint_zone_route_id').change(fill_stop_points_options) - +# $ -> +# if document.location.pathname.endsWith('new') +# fill_stop_points_options() +# $('#routing_constraint_zone_route_id').change(fill_stop_points_options) diff --git a/app/assets/javascripts/select2.coffee b/app/assets/javascripts/select2.coffee index e20ef8d32..1870f7f9a 100644 --- a/app/assets/javascripts/select2.coffee +++ b/app/assets/javascripts/select2.coffee @@ -16,4 +16,4 @@ tags: true -$(document).on 'ready page:load', select_2 +$(document).on 'turbolinks:load', select_2 diff --git a/app/assets/javascripts/selectable_table.coffee b/app/assets/javascripts/selectable_table.coffee index 4d9f5122a..4086bf6c2 100644 --- a/app/assets/javascripts/selectable_table.coffee +++ b/app/assets/javascripts/selectable_table.coffee @@ -53,4 +53,4 @@ .addClass 'noselect' .children('.info-msg').children('span').text(selection.length) -$(document).on 'ready page:load', selectTable +$(document).on 'turbolinks:load', selectTable -- cgit v1.2.3 From 8635de27b6d49331b6acc59b258e1b6cf1d84d06 Mon Sep 17 00:00:00 2001 From: Vlatka Pavisic Date: Thu, 13 Apr 2017 09:34:05 +0200 Subject: Refs #3047: Turbolinks load --- app/assets/javascripts/routing_constraint_zones.coffee | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/routing_constraint_zones.coffee b/app/assets/javascripts/routing_constraint_zones.coffee index 707b6a856..7460a64a7 100644 --- a/app/assets/javascripts/routing_constraint_zones.coffee +++ b/app/assets/javascripts/routing_constraint_zones.coffee @@ -14,7 +14,8 @@ fill_stop_points_options = -> console.log textStatus console.log errorThrown -# $ -> -# if document.location.pathname.endsWith('new') -# fill_stop_points_options() -# $('#routing_constraint_zone_route_id').change(fill_stop_points_options) +$(document).on 'turbolinks:load', -> + if document.location.pathname.endsWith('new') + fill_stop_points_options() + $('#routing_constraint_zone_route_id').change(fill_stop_points_options) + -- cgit v1.2.3 From f72dc55a17c0f01bb610bd295038d19bdf95dd3e Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 13 Apr 2017 11:26:20 +0200 Subject: Refs #2892: Retrieve day_types from json and store it via redux Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 10 ++++++++++ .../javascripts/es6_browserified/time_tables/index.js | 15 ++++++++------- .../es6_browserified/time_tables/reducers/day_types.js | 12 ++++++++++++ .../es6_browserified/time_tables/reducers/index.js | 2 ++ .../es6_browserified/time_tables/reducers/status.js | 2 +- 5 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index 7c9a5be08..d06eaecff 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -1,4 +1,14 @@ const actions = { + strToArrayDayTypes: (str) =>{ + let weekDays = ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] + let array = [] + weekDays.map((day, i) =>{ + array[i] = (str.indexOf(day) != -1) ? true: false + }) + + return array + }, + fetchingApi: () =>({ type: 'FETCH_API' }), diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js index 4e44e49ba..adcf30130 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/index.js @@ -6,10 +6,10 @@ var timeTablesApp = require('./reducers') var App = require('./containers/App') // logger, DO NOT REMOVE -// var applyMiddleware = require('redux').applyMiddleware -// var createLogger = require('redux-logger') -// var thunkMiddleware = require('redux-thunk').default -// var promise = require('redux-promise') +var applyMiddleware = require('redux').applyMiddleware +var createLogger = require('redux-logger') +var thunkMiddleware = require('redux-thunk').default +var promise = require('redux-promise') var initialState = { status: { @@ -20,6 +20,7 @@ var initialState = { current_month: [], time_table_periods: [], periode_range: [], + day_types: [], pagination: { page : 1, totalCount: window.journeyPatternLength, @@ -32,12 +33,12 @@ var initialState = { confirmModal: {} } } -// const loggerMiddleware = createLogger() +const loggerMiddleware = createLogger() let store = createStore( timeTablesApp, - initialState - // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) + initialState, + applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) render( diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js new file mode 100644 index 000000000..c511f8dbe --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js @@ -0,0 +1,12 @@ +const actions = require('../actions') + +const dayTypes = (state = "", action) => { + switch (action.type) { + case 'RECEIVE_TIME_TABLES': + return actions.strToArrayDayTypes(action.json.day_types) + default: + return state + } +} + +module.exports = dayTypes diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js index 4308c0104..55ece38c4 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js @@ -5,11 +5,13 @@ var modal = require('./modal') var current_month = require('./current_month') var periode_range = require('./periode_range') var time_table_periods = require('./time_table_periods') +var day_types = require('./day_types') const timeTablesApp = combineReducers({ current_month, periode_range, time_table_periods, + day_types, status, pagination, modal diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js index aaedff4c1..07c5db8d1 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js @@ -6,7 +6,7 @@ const status = (state = {}, action) => { return _.assign({}, state, {fetchSuccess: false}) case 'FETCH_API': return _.assign({}, state, {isFetching: true}) - case 'RECEIVE_JOURNEY_PATTERNS': + case 'RECEIVE_TIME_TABLES': return _.assign({}, state, {fetchSuccess: true, isFetching: false}) default: return state -- cgit v1.2.3 From dfaf9a99c29f39ddaaaac07f31f2011a77dad049 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 13 Apr 2017 11:46:58 +0200 Subject: Add current_periode_range in time tables rabl Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/time_tables/actions/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index d06eaecff..39e9aba02 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -3,7 +3,7 @@ const actions = { let weekDays = ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] let array = [] weekDays.map((day, i) =>{ - array[i] = (str.indexOf(day) != -1) ? true: false + array[i] = (str.indexOf(day) != -1) ? true : false }) return array -- cgit v1.2.3 From 147cb5733741aff77b0cf191b18d56bc235a6e3b Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 13 Apr 2017 15:39:45 +0200 Subject: Refs #2892: Add simple display of stored data in tt Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 2 +- .../time_tables/components/Metas.js | 43 ++++++++++++++++++++++ .../time_tables/components/Timetable.js | 26 +++++++++++++ .../es6_browserified/time_tables/containers/App.js | 7 +++- .../time_tables/containers/Metas.js | 18 +++++++++ .../time_tables/containers/Timetable.js | 18 +++++++++ .../es6_browserified/time_tables/index.js | 2 +- 7 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/time_tables/components/Metas.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index 39e9aba02..ad6480a1b 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -3,7 +3,7 @@ const actions = { let weekDays = ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] let array = [] weekDays.map((day, i) =>{ - array[i] = (str.indexOf(day) != -1) ? true : false + array[i] = str.indexOf(day) != -1 }) return array diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js new file mode 100644 index 000000000..3bb763c71 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js @@ -0,0 +1,43 @@ +var React = require('react') +var PropTypes = require('react').PropTypes +let weekDays = ['L', 'Ma', 'Me', 'J', 'V', 'S', 'D'] + +const reorderArray = (arr) =>{ + let elt = arr.shift() + arr.push(elt) + return arr +} + +const Metas = ({day_types}) => { + day_types = reorderArray(day_types) + return ( +
    +

    Metas

    +
    + {day_types.map((day, i) => +
    +
    + +
    +
    + )} +
    +
    + ) +} + +Metas.propTypes = { + day_types: PropTypes.array.isRequired +} + +module.exports = Metas diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js new file mode 100644 index 000000000..716b33ba4 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -0,0 +1,26 @@ +var React = require('react') +var PropTypes = require('react').PropTypes + +const Timetable = ({current_month, time_table_periods}) => { + return ( +
    +

    Calendrier

    +
      + {current_month.map((day, i) => +
    • + {day.day} {day.mday} ({day.wday} {day.included_date} {day.excluded_date}) +
    • + )} +
    +
    + ) +} + +Timetable.propTypes = { + current_month: PropTypes.array.isRequired, + time_table_periods: PropTypes.array.isRequired +} + +module.exports = Timetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js index ab8c3bf06..56fe1e65b 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js @@ -2,6 +2,8 @@ var React = require('react') var connect = require('react-redux').connect var Component = require('react').Component var actions = require('../actions') +var Metas = require('./Metas') +var Timetable = require('./Timetable') class App extends Component { componentDidMount(){ @@ -10,7 +12,10 @@ class App extends Component { render(){ return( -
    +
    + + +
    ) } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js new file mode 100644 index 000000000..4a1465f6e --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js @@ -0,0 +1,18 @@ +var actions = require('../actions') +var connect = require('react-redux').connect +var MetasComponent = require('../components/Metas') + +const mapStateToProps = (state) => { + return { + day_types: state.day_types + } +} + +const mapDispatchToProps = (dispatch) => { + return { + } +} + +const Metas = connect(mapStateToProps, mapDispatchToProps)(MetasComponent) + +module.exports = Metas diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js new file mode 100644 index 000000000..c92dc5abf --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js @@ -0,0 +1,18 @@ +var connect = require('react-redux').connect +var TimetableComponent = require('../components/Timetable') + +const mapStateToProps = (state) => { + return { + current_month: state.current_month, + time_table_periods: state.time_table_periods + } +} + +const mapDispatchToProps = (dispatch) => { + return { + } +} + +const Timetable = connect(mapStateToProps, mapDispatchToProps)(TimetableComponent) + +module.exports = Timetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js index adcf30130..4213b307c 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/index.js @@ -45,5 +45,5 @@ render( , - document.getElementById('time_tables') + document.getElementById('periods') ) -- cgit v1.2.3 From bc09c8f16726f520c116e158ef3390dc84736bd2 Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 13 Apr 2017 16:07:09 +0200 Subject: Refs #2982: starting with reactux integration --- .../time_tables/components/Metas.js | 56 +++++++++++++++------- 1 file changed, 38 insertions(+), 18 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js index 3bb763c71..1440dcb1d 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js @@ -11,27 +11,47 @@ const reorderArray = (arr) =>{ const Metas = ({day_types}) => { day_types = reorderArray(day_types) return ( -
    -

    Metas

    -
    - {day_types.map((day, i) => -
    -
    - +
    +
    +
    + {/* comment (name) */} +
    + + {/* color */} +
    + + {/* tags */} +
    + + {/* day_types */} +
    + +
    +
    + {day_types.map((day, i) => +
    +
    + +
    +
    + )}
    - )} +
    +
    ) } -- cgit v1.2.3 From ae87a040fe5b81c03a5bd1d93c8742760fadae90 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 13 Apr 2017 16:28:59 +0200 Subject: Refs #2892: State refactoring for tt Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/components/Metas.js | 6 +++--- .../time_tables/components/Timetable.js | 7 +++---- .../es6_browserified/time_tables/containers/Metas.js | 2 +- .../time_tables/containers/Timetable.js | 3 +-- .../javascripts/es6_browserified/time_tables/index.js | 15 +++++++++++---- .../time_tables/reducers/current_month.js | 10 ---------- .../es6_browserified/time_tables/reducers/day_types.js | 12 ------------ .../es6_browserified/time_tables/reducers/index.js | 12 ++++-------- .../es6_browserified/time_tables/reducers/metas.js | 18 ++++++++++++++++++ .../time_tables/reducers/periode_range.js | 10 ---------- .../time_tables/reducers/time_table_periods.js | 10 ---------- .../es6_browserified/time_tables/reducers/timetable.js | 16 ++++++++++++++++ 12 files changed, 57 insertions(+), 64 deletions(-) delete mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js delete mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js delete mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js delete mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js index 1440dcb1d..fa72a76aa 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js @@ -8,8 +8,8 @@ const reorderArray = (arr) =>{ return arr } -const Metas = ({day_types}) => { - day_types = reorderArray(day_types) +const Metas = ({metas}) => { + let day_types = reorderArray(metas.day_types) return (
    @@ -57,7 +57,7 @@ const Metas = ({day_types}) => { } Metas.propTypes = { - day_types: PropTypes.array.isRequired + metas: PropTypes.object.isRequired } module.exports = Metas diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js index 716b33ba4..8f25d1f10 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -1,12 +1,12 @@ var React = require('react') var PropTypes = require('react').PropTypes -const Timetable = ({current_month, time_table_periods}) => { +const Timetable = ({timetable}) => { return (

    Calendrier

      - {current_month.map((day, i) => + {timetable.current_month.map((day, i) =>
    • @@ -19,8 +19,7 @@ const Timetable = ({current_month, time_table_periods}) => { } Timetable.propTypes = { - current_month: PropTypes.array.isRequired, - time_table_periods: PropTypes.array.isRequired + timetable: PropTypes.object.isRequired, } module.exports = Timetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js index 4a1465f6e..b2add391d 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js @@ -4,7 +4,7 @@ var MetasComponent = require('../components/Metas') const mapStateToProps = (state) => { return { - day_types: state.day_types + metas: state.metas } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js index c92dc5abf..2282afe80 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js @@ -3,8 +3,7 @@ var TimetableComponent = require('../components/Timetable') const mapStateToProps = (state) => { return { - current_month: state.current_month, - time_table_periods: state.time_table_periods + timetable: state.timetable } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js index 4213b307c..cc04a9a36 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/index.js @@ -17,10 +17,17 @@ var initialState = { fetchSuccess: true, isFetching: false }, - current_month: [], - time_table_periods: [], - periode_range: [], - day_types: [], + timetable: { + current_month: [], + time_table_periods: [], + periode_range: [], + }, + metas: { + comment: '', + day_types: [], + tags: [], + color: '' + }, pagination: { page : 1, totalCount: window.journeyPatternLength, diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js deleted file mode 100644 index 425e897d1..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/current_month.js +++ /dev/null @@ -1,10 +0,0 @@ -const currentMonth = (state = [], action) => { - switch (action.type) { - case 'RECEIVE_TIME_TABLES': - return action.json.current_month - default: - return state - } -} - -module.exports = currentMonth diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js deleted file mode 100644 index c511f8dbe..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/day_types.js +++ /dev/null @@ -1,12 +0,0 @@ -const actions = require('../actions') - -const dayTypes = (state = "", action) => { - switch (action.type) { - case 'RECEIVE_TIME_TABLES': - return actions.strToArrayDayTypes(action.json.day_types) - default: - return state - } -} - -module.exports = dayTypes diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js index 55ece38c4..5b05aadda 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js @@ -2,16 +2,12 @@ var combineReducers = require('redux').combineReducers var status = require('./status') var pagination = require('./pagination') var modal = require('./modal') -var current_month = require('./current_month') -var periode_range = require('./periode_range') -var time_table_periods = require('./time_table_periods') -var day_types = require('./day_types') +var timetable = require('./timetable') +var metas = require('./metas') const timeTablesApp = combineReducers({ - current_month, - periode_range, - time_table_periods, - day_types, + timetable, + metas, status, pagination, modal diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js new file mode 100644 index 000000000..5f80cb5db --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js @@ -0,0 +1,18 @@ +const _ = require('lodash') +const actions = require('../actions') + +const metas = (state = {}, action) => { + switch (action.type) { + case 'RECEIVE_TIME_TABLES': + return _.assign({}, state, { + comment: action.json.comment, + day_types: actions.strToArrayDayTypes(action.json.day_types), + tags: action.json.tags, + color: action.json.color + }) + default: + return state + } +} + +module.exports = metas diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js deleted file mode 100644 index 095069f8a..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/periode_range.js +++ /dev/null @@ -1,10 +0,0 @@ -const periodeRange = (state = [], action) => { - switch (action.type) { - case 'RECEIVE_TIME_TABLES': - return action.json.periode_range - default: - return state - } -} - -module.exports = periodeRange diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js deleted file mode 100644 index 614e63894..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/time_table_periods.js +++ /dev/null @@ -1,10 +0,0 @@ -const timeTablePeriods = (state = [], action) => { - switch (action.type) { - case 'RECEIVE_TIME_TABLES': - return action.json.time_table_periods - default: - return state - } -} - -module.exports = timeTablePeriods diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js new file mode 100644 index 000000000..8f689ad92 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js @@ -0,0 +1,16 @@ +const _ = require('lodash') + +const timetable = (state = {}, action) => { + switch (action.type) { + case 'RECEIVE_TIME_TABLES': + return _.assign({}, state, { + current_month: action.json.current_month, + time_table_periods: action.json.time_table_periods, + periode_range: action.json.periode_range + }) + default: + return state + } +} + +module.exports = timetable -- cgit v1.2.3 From 927b9872792e5b9ca9705a40790f6904e27036bf Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 13 Apr 2017 16:51:39 +0200 Subject: Refs #2982: starting with reactux integration --- .../time_tables/components/Metas.js | 64 +++++++++++++++++++++- 1 file changed, 61 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js index fa72a76aa..def212690 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js @@ -10,18 +10,75 @@ const reorderArray = (arr) =>{ const Metas = ({metas}) => { let day_types = reorderArray(metas.day_types) + let colorList = ["", "#9B9B9B", "#FFA070", "#C67300", "#7F551B", "#41CCE3", "#09B09C", "#3655D7", "#6321A0", "#E796C6", "#DD2DAA"] + return (
      {/* comment (name) */} -
      +
      + +
      + +
      +
      {/* color */} -
      +
      + +
      +
      + + +
      + {colorList.map((c, i) => + + + + )} +
      +
      +
      +
      {/* tags */} -
      +
      + +
      + {/* Select2 to implement*/} + +
      +
      {/* day_types */}
      @@ -52,6 +109,7 @@ const Metas = ({metas}) => {
      +
      ) } -- cgit v1.2.3 From e738a33da559b6ba1dc544ad35c336a340c75807 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 13 Apr 2017 17:17:53 +0200 Subject: Refs #2892: Add UPDATE_DAY_TYPES action Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 12 ++++++++---- .../es6_browserified/time_tables/components/Metas.js | 19 ++++++------------- .../es6_browserified/time_tables/containers/Metas.js | 3 +++ .../es6_browserified/time_tables/reducers/metas.js | 4 ++++ 4 files changed, 21 insertions(+), 17 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index ad6480a1b..f24b135e0 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -12,15 +12,19 @@ const actions = { fetchingApi: () =>({ type: 'FETCH_API' }), - unavailableServer : () => ({ + unavailableServer: () => ({ type: 'UNAVAILABLE_SERVER' }), - receiveTimeTables : (json) => ({ - type: "RECEIVE_TIME_TABLES", + receiveTimeTables: (json) => ({ + type: 'RECEIVE_TIME_TABLES', json }), + updateDayTypes: (index) => ({ + type: 'UPDATE_DAY_TYPES', + index + }), - fetchTimeTables : (dispatch, currentPage, nextPage) => { + fetchTimeTables: (dispatch, currentPage, nextPage) => { let urlJSON = window.location.pathname.split('/', 5).join('/') + '.json' let hasError = false fetch(urlJSON, { diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js index def212690..ee5a52d72 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js @@ -1,17 +1,9 @@ var React = require('react') var PropTypes = require('react').PropTypes -let weekDays = ['L', 'Ma', 'Me', 'J', 'V', 'S', 'D'] +let weekDays = ['D', 'L', 'Ma', 'Me', 'J', 'V', 'S'] -const reorderArray = (arr) =>{ - let elt = arr.shift() - arr.push(elt) - return arr -} - -const Metas = ({metas}) => { - let day_types = reorderArray(metas.day_types) +const Metas = ({metas, onUpdateDayTypes}) => { let colorList = ["", "#9B9B9B", "#FFA070", "#C67300", "#7F551B", "#41CCE3", "#09B09C", "#3655D7", "#6321A0", "#E796C6", "#DD2DAA"] - return (
      @@ -87,14 +79,14 @@ const Metas = ({metas}) => {
      - {day_types.map((day, i) => + {metas.day_types.map((day, i) =>
    • + +
    • + ))} +
    +
    +
    + + {/* prev/next */} +
    +
    + + +
    +
    +
    -- cgit v1.2.3 From 26923fae9be9b73bf6922f61421f20273dea9481 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 19 Apr 2017 18:23:56 +0200 Subject: Refs #2982: updating layout on tt#edit --- .../time_tables/components/Timetable.js | 26 +++------------------- 1 file changed, 3 insertions(+), 23 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js index b27dddbf1..37b756507 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -19,26 +19,6 @@ class Timetable extends Component{ return currentDate } - componentDidUpdate(prevProps, prevState) { - if(this.props.status.isFetching == false){ - $('.table-2entries').each(function() { - var refH = [] - var refCol = [] - - $(this).find('.t2e-head').children('.td').each(function() { - var h = $(this).outerHeight(); - refH.push(h) - }); - - $(this).find('.t2e-item').children('.td-group').each(function() { - for(var nth = 0; nth < refH.length; nth++) { - $(this).find('.td:nth-child('+ (nth + 1) +')').css('height', refH[nth]); - } - }); - }); - } - } - render() { return (
    @@ -48,9 +28,9 @@ class Timetable extends Component{
    Synthèse
    -
    Journées d'application
    -
    Périodes
    -
    Exceptions
    +
    Journées d'application
    +
    Périodes
    +
    Exceptions
    -- cgit v1.2.3 From e29e4c46bce58ca54a9eb10620038caebbf6f208 Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 20 Apr 2017 14:30:52 +0200 Subject: Refs #2892: adding periodManager actions css comp. --- .../time_tables/components/PeriodManager.js | 36 +++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js index 61098d9ea..35968fea3 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js @@ -14,7 +14,41 @@ class PeriodManager extends Component { className='period_manager' id={this.props.value.id} > - {(this.props.value.period_start.split('-')[2]) + ' > ' + actions.getHumanDate(this.props.value.period_end, 3)} +

    + {actions.getHumanDate(this.props.value.period_start, 3).substr(0, 7) + ' > ' + actions.getHumanDate(this.props.value.period_end, 3)} +

    + +
    +
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    +
    ) } -- cgit v1.2.3 From 31a24a86f4830fd5c993e7f22a7b06b71258907d Mon Sep 17 00:00:00 2001 From: jpl Date: Thu, 20 Apr 2017 15:57:14 +0200 Subject: Refs #2892: update stuff --- app/assets/javascripts/es6_browserified/time_tables/actions/index.js | 2 +- .../es6_browserified/time_tables/components/PeriodManager.js | 4 ++-- .../es6_browserified/time_tables/components/PeriodsInDay.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index a023360a5..de359b99e 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -74,7 +74,7 @@ const actions = { let M = actions.monthName(strDate).toLowerCase() let Y = origin[0] - if(mLimit) { + if(mLimit && M.length > mLimit) { M = M.substr(0, mLimit) + '.' } diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js index 35968fea3..01996b016 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js @@ -36,7 +36,7 @@ class PeriodManager extends Component {
  • @@ -44,7 +44,7 @@ class PeriodManager extends Component { type='button' > - Action + Supprimer
diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js index adc500c86..901b2205e 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js @@ -41,7 +41,7 @@ class PeriodsInDay extends Component { let d = this.props.currentDate.getTime() if(d >= begin && d <= end) { - if(d == begin) { + if(d == begin || (this.props.currentDate.getUTCDate() == 1)) { return ( --- .../es6_browserified/time_tables/components/TimeTableDay.js | 5 +++-- .../javascripts/es6_browserified/time_tables/components/Timetable.js | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js index cc47c2052..eecdf174d 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js @@ -17,7 +17,7 @@ class TimeTableDay extends Component { {((this.props.value.day).charAt(0) == 'm') ? (this.props.value.day).substr(0, 2) : (this.props.value.day).charAt(0)} {this.props.value.mday} @@ -28,7 +28,8 @@ class TimeTableDay extends Component { TimeTableDay.propTypes = { value: PropTypes.object.isRequired, - index: PropTypes.number.isRequired + index: PropTypes.number.isRequired, + dayTypeActive: PropTypes.bool.isRequired } module.exports = TimeTableDay diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js index 37b756507..738e1a3ed 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -46,6 +46,7 @@ class Timetable extends Component{ key={i} index={i} value={d} + dayTypeActive={this.props.metas.day_types[d.wday]} /> )} -- cgit v1.2.3 From c478fad6a0e617fce27977dd7d9994ad5348d353 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 21 Apr 2017 10:43:14 +0200 Subject: Refs #2892: Fix update day_types impacting correctly synthesis (again) Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Jean-Paul Lescouzeres --- .../es6_browserified/time_tables/actions/index.js | 8 ++++ .../time_tables/components/PeriodManager.js | 4 +- .../time_tables/components/PeriodsInDay.js | 56 +++++++++++++--------- .../time_tables/components/Timetable.js | 5 +- .../time_tables/containers/Timetable.js | 4 ++ .../time_tables/reducers/timetable.js | 12 ++++- 6 files changed, 63 insertions(+), 26 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index de359b99e..d54f1ba06 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -63,6 +63,11 @@ const actions = { name: selectedTag.name } }), + deletePeriod: (index, dayTypes) => ({ + type: 'DELETE_PERIOD', + index, + dayTypes + }), monthName(strDate) { let monthList = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] var date = new Date(strDate) @@ -92,6 +97,9 @@ const actions = { // We compare periods & currentDate, to determine if it is included or not let testDate = false periods.map((p, i) => { + if(p.deleted){ + return false + } let begin = new Date(p.period_start) let end = new Date(p.period_end) diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js index 01996b016..0511734ba 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js @@ -42,6 +42,7 @@ class PeriodManager extends Component {
  • + + ) + } else { + return ( +
    + +
    + ) + } + } else { + return ( +
    + ) + } } } ExceptionsInDay.propTypes = { value: PropTypes.object.isRequired, + outFromDaytypes: PropTypes.bool.isRequired, index: PropTypes.number.isRequired } diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js index b9b191792..8cb24f146 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -73,6 +73,7 @@ class Timetable extends Component{ )} -- cgit v1.2.3 From 82122043351d9881a23be2ea3402c33e9094d408 Mon Sep 17 00:00:00 2001 From: jpl Date: Fri, 21 Apr 2017 15:15:35 +0200 Subject: Refs #3152: Adding exception links DOM (fixing sens) --- .../es6_browserified/time_tables/components/ExceptionsInDay.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js index 8a2681c87..6d7dd4442 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js @@ -17,9 +17,9 @@ class ExceptionsInDay extends Component { ) @@ -29,9 +29,9 @@ class ExceptionsInDay extends Component { ) -- cgit v1.2.3 From 0509c8b7c858f88868a76c804c11223aa3ce4c64 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 21 Apr 2017 15:37:23 +0200 Subject: Refs #3151: Add open / close period form for tt Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 6 ++ .../time_tables/components/PeriodForm.js | 85 ++++++++++++++++++++++ .../es6_browserified/time_tables/containers/App.js | 2 + .../time_tables/containers/PeriodForm.js | 25 +++++++ .../es6_browserified/time_tables/index.js | 14 +++- .../es6_browserified/time_tables/reducers/modal.js | 14 ++++ 6 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index d54f1ba06..5f19dd711 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -68,6 +68,12 @@ const actions = { index, dayTypes }), + openAddPeriodForm: () => ({ + type: 'OPEN_ADD_PERIOD_FORM' + }), + closePeriodForm: () => ({ + type: 'CLOSE_PERIOD_FORM' + }), monthName(strDate) { let monthList = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] var date = new Date(strDate) diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js new file mode 100644 index 000000000..d53ccbd06 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js @@ -0,0 +1,85 @@ +var React = require('react') +var PropTypes = require('react').PropTypes +let monthsArray = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] + +const makeDaysOptions = (daySelected) => { + let arr = [] + for(let i = 1; i < 32; i++) { + arr.push() + } + return arr +} + +const makeMonthsOptions = (monthSelected) => { + let arr = [] + for(let i = 1; i < 13; i++) { + arr.push() + } + return arr +} + +const makeYearsOptions = (yearSelected) => { + let arr = [] + let startYear = new Date().getFullYear() - 3 + for(let i = startYear; i <= startYear + 6; i++) { + arr.push() + } + return arr +} + +const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm}) => ( +
    + {modal.modalProps.active && +
    + +
    + + + +
    + +
    + + + +
    +
    + + +
    +
    + } + {!modal.modalProps.active && + + } +
    +) + +PeriodForm.propTypes = { + modal: PropTypes.object.isRequired, + onOpenAddPeriodForm: PropTypes.func.isRequired, + onClosePeriodForm: PropTypes.func.isRequired, + timetable: PropTypes.object.isRequired +} + +module.exports = PeriodForm diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js index 2d51e91fe..fede03aec 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js @@ -5,6 +5,7 @@ var actions = require('../actions') var Metas = require('./Metas') var Timetable = require('./Timetable') var Navigate = require('./Navigate') +var PeriodForm = require('./PeriodForm') class App extends Component { componentDidMount(){ @@ -17,6 +18,7 @@ class App extends Component { + ) } diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js b/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js new file mode 100644 index 000000000..eab82414b --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js @@ -0,0 +1,25 @@ +var connect = require('react-redux').connect +var PeriodFormComponent = require('../components/PeriodForm') +var actions = require('../actions') + +const mapStateToProps = (state) => { + return { + modal: state.modal, + timetable: state.timetable + } +} + +const mapDispatchToProps = (dispatch) => { + return { + onOpenAddPeriodForm: () => { + dispatch(actions.openAddPeriodForm()) + }, + onClosePeriodForm: () => { + dispatch(actions.closePeriodForm()) + } + } +} + +const PeriodForm = connect(mapStateToProps, mapDispatchToProps)(PeriodFormComponent) + +module.exports = PeriodForm diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js index 7b279d9f9..1e6f08e1c 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/index.js @@ -37,7 +37,19 @@ var initialState = { }, modal: { type: '', - modalProps: {}, + modalProps: { + active: false, + begin: { + day: '', + month: '', + year: '' + }, + end: { + day: '', + month: '', + year: '' + } + }, confirmModal: {} } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js index e011164c5..571b849f5 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js @@ -1,5 +1,19 @@ +var _ = require('lodash') +let newModalProps = {} + const modal = (state = {}, action) => { switch (action.type) { + case 'CLOSE_PERIOD_FORM': + let emptyDate = { + begin: '', + month: '', + year: '' + } + newModalProps = _.assign({}, state.modalProps, {active: false, begin: emptyDate, end: emptyDate}) + return _.assign({}, state, {modalProps: newModalProps}) + case 'OPEN_ADD_PERIOD_FORM': + newModalProps = _.assign({}, state.modalProps, {active: true}) + return _.assign({}, state, {modalProps: newModalProps}) default: return state } -- cgit v1.2.3 From 831677263f36de9a184ba2b4cd5312721dc7e4e7 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 21 Apr 2017 16:17:03 +0200 Subject: Refs #3151: Add updatePeriodForm for select change in period form Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 6 ++++++ .../time_tables/components/PeriodForm.js | 21 +++++++++++---------- .../time_tables/containers/PeriodForm.js | 3 +++ .../es6_browserified/time_tables/index.js | 12 ++++++------ .../es6_browserified/time_tables/reducers/modal.js | 4 ++++ 5 files changed, 30 insertions(+), 16 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index 5f19dd711..9723327ff 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -74,6 +74,12 @@ const actions = { closePeriodForm: () => ({ type: 'CLOSE_PERIOD_FORM' }), + updatePeriodForm: (val, group, selectType) => ({ + type: 'UPDATE_PERIOD_FORM', + val, + group, + selectType + }), monthName(strDate) { let monthList = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] var date = new Date(strDate) diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js index d53ccbd06..c450a39c5 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js @@ -5,7 +5,7 @@ let monthsArray = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juill const makeDaysOptions = (daySelected) => { let arr = [] for(let i = 1; i < 32; i++) { - arr.push() + arr.push() } return arr } @@ -13,7 +13,7 @@ const makeDaysOptions = (daySelected) => { const makeMonthsOptions = (monthSelected) => { let arr = [] for(let i = 1; i < 13; i++) { - arr.push() + arr.push() } return arr } @@ -22,36 +22,36 @@ const makeYearsOptions = (yearSelected) => { let arr = [] let startYear = new Date().getFullYear() - 3 for(let i = startYear; i <= startYear + 6; i++) { - arr.push() + arr.push() } return arr } -const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm}) => ( +const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm, onUpdatePeriodForm}) => (
    {modal.modalProps.active &&
    - onUpdatePeriodForm(e.currentTarget.value, 'begin', 'day')} id="q_validity_period_begin_gteq_3i" className="date required form-control"> {makeDaysOptions(modal.modalProps.begin.day)} - onUpdatePeriodForm(e.currentTarget.value, 'begin', 'month')} id="q_validity_period_begin_gteq_2i" className="date required form-control"> {makeMonthsOptions(modal.modalProps.begin.month)} - onUpdatePeriodForm(e.currentTarget.value, 'begin', 'year')} id="q_validity_period_begin_gteq_1i" className="date required form-control"> {makeYearsOptions(modal.modalProps.begin.year)}
    - onUpdatePeriodForm(e.currentTarget.value, 'end', 'day')} id="q_validity_period_end_gteq_3i" className="date required form-control"> {makeDaysOptions(modal.modalProps.end.day)} - onUpdatePeriodForm(e.currentTarget.value, 'end', 'month')} id="q_validity_period_end_gteq_2i" className="date required form-control"> {makeMonthsOptions(modal.modalProps.end.month)} - onUpdatePeriodForm(e.currentTarget.value, 'end', 'year')} id="q_validity_period_end_gteq_1i" className="date required form-control"> {makeYearsOptions(modal.modalProps.end.year)}
    @@ -79,6 +79,7 @@ PeriodForm.propTypes = { modal: PropTypes.object.isRequired, onOpenAddPeriodForm: PropTypes.func.isRequired, onClosePeriodForm: PropTypes.func.isRequired, + onUpdatePeriodForm: PropTypes.func.isRequired, timetable: PropTypes.object.isRequired } diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js b/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js index eab82414b..0a785c680 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js @@ -16,6 +16,9 @@ const mapDispatchToProps = (dispatch) => { }, onClosePeriodForm: () => { dispatch(actions.closePeriodForm()) + }, + onUpdatePeriodForm: (val, group, selectType) => { + dispatch(actions.updatePeriodForm(val, group, selectType)) } } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js index 1e6f08e1c..b5af45628 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/index.js @@ -40,14 +40,14 @@ var initialState = { modalProps: { active: false, begin: { - day: '', - month: '', - year: '' + day: '1', + month: '1', + year: String(new Date().getFullYear()) }, end: { - day: '', - month: '', - year: '' + day: '1', + month: '1', + year: String(new Date().getFullYear()) } }, confirmModal: {} diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js index 571b849f5..cb4219c1f 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js @@ -14,6 +14,10 @@ const modal = (state = {}, action) => { case 'OPEN_ADD_PERIOD_FORM': newModalProps = _.assign({}, state.modalProps, {active: true}) return _.assign({}, state, {modalProps: newModalProps}) + case 'UPDATE_PERIOD_FORM': + newModalProps = JSON.parse(JSON.stringify(state.modalProps)) + newModalProps[action.group][action.selectType] = action.val + return _.assign({}, state, {modalProps: newModalProps}) default: return state } -- cgit v1.2.3 From 7e7163d95ce04cff2a1a1bbfe220701631acd08d Mon Sep 17 00:00:00 2001 From: jpl Date: Fri, 21 Apr 2017 16:49:33 +0200 Subject: Refs #3152: adding exceptions actions reporting to state --- .../es6_browserified/time_tables/actions/index.js | 25 +++++++++++++--------- .../time_tables/components/ExceptionsInDay.js | 12 +++++++++++ .../time_tables/components/TimeTableDay.js | 2 +- .../time_tables/components/Timetable.js | 7 +++++- .../time_tables/containers/Timetable.js | 6 ++++++ .../time_tables/reducers/timetable.js | 18 ++++++++++++++++ 6 files changed, 58 insertions(+), 12 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index 9723327ff..81d76cefa 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -80,6 +80,19 @@ const actions = { group, selectType }), + includeDateInPeriod: (index, day, dayTypes) => ({ + type: 'INCLUDE_DATE_IN_PERIOD', + index, + day, + dayTypes + }), + excludeDateFromPeriod: (index, day, dayTypes) => ({ + type: 'EXCLUDE_DATE_FROM_PERIOD', + index, + day, + dayTypes + }), + monthName(strDate) { let monthList = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] var date = new Date(strDate) @@ -117,19 +130,11 @@ const actions = { if(testDate === false){ if(currentDate >= begin && currentDate <= end) { - if(d.excluded_date) { - testDate = false - } else if(daytypes[d.wday] === false) { + if(daytypes[d.wday] === false) { testDate = false } else { testDate = true } - } else { - if(d.include_date) { - testDate = true - } else { - testDate = false - } } } }) @@ -144,7 +149,7 @@ const actions = { return improvedCM }, - checkConfirmModal : (event, callback, stateChanged,dispatch) => { + checkConfirmModal: (event, callback, stateChanged,dispatch) => { if(stateChanged === true){ return actions.openConfirmModal(callback) }else{ diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js index 6d7dd4442..13615a6ef 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js @@ -1,6 +1,7 @@ var React = require('react') var Component = require('react').Component var PropTypes = require('react').PropTypes +var actions = require('../actions') class ExceptionsInDay extends Component { constructor(props) { @@ -18,6 +19,10 @@ class ExceptionsInDay extends Component { type='button' className='btn btn-circle' data-actiontype='remove' + onClick={(e) => { + $(e.currentTarget).toggleClass('active') + this.props.onExcludeDateFromPeriod(this.props.index, this.props.value.current_month[this.props.index], this.props.metas.day_types) + }} > @@ -30,6 +35,10 @@ class ExceptionsInDay extends Component { type='button' className='btn btn-circle' data-actiontype='add' + onClick={(e) => { + $(e.currentTarget).toggleClass('active') + this.props.onIncludeDateInPeriod(this.props.index, this.props.value.current_month[this.props.index], this.props.metas.day_types) + }} > @@ -46,7 +55,10 @@ class ExceptionsInDay extends Component { ExceptionsInDay.propTypes = { value: PropTypes.object.isRequired, + metas: PropTypes.object.isRequired, outFromDaytypes: PropTypes.bool.isRequired, + onExcludeDateFromPeriod: PropTypes.func.isRequired, + onIncludeDateInPeriod: PropTypes.func.isRequired, index: PropTypes.number.isRequired } diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js index eecdf174d..29c894565 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js @@ -17,7 +17,7 @@ class TimeTableDay extends Component { {((this.props.value.day).charAt(0) == 'm') ? (this.props.value.day).substr(0, 2) : (this.props.value.day).charAt(0)} {this.props.value.mday} diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js index 8cb24f146..4812578fc 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js @@ -73,7 +73,10 @@ class Timetable extends Component{
    )} @@ -91,7 +94,9 @@ Timetable.propTypes = { metas: PropTypes.object.isRequired, timetable: PropTypes.object.isRequired, status: PropTypes.object.isRequired, - onDeletePeriod: PropTypes.func.isRequired + onDeletePeriod: PropTypes.func.isRequired, + onExcludeDateFromPeriod: PropTypes.func.isRequired, + onIncludeDateInPeriod: PropTypes.func.isRequired } module.exports = Timetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js index be31be061..f4259b0e9 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js @@ -14,6 +14,12 @@ const mapDispatchToProps = (dispatch) => { return { onDeletePeriod: (index, dayTypes) =>{ dispatch(actions.deletePeriod(index, dayTypes)) + }, + onExcludeDateFromPeriod: (index, day, dayTypes) => { + dispatch(actions.excludeDateFromPeriod(index, day, dayTypes)) + }, + onIncludeDateInPeriod: (index, day, dayTypes) => { + dispatch(actions.includeDateInPeriod(index, day, dayTypes)) } } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js index 845f0814b..b052b5fcc 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js @@ -37,6 +37,24 @@ const timetable = (state = {}, action) => { }) newState = _.assign({}, state, {time_table_periods : ttperiods}) return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) + case 'INCLUDE_DATE_IN_PERIOD': + let newCMi = state.current_month.map((d, i) => { + if(i == action.index){ + d.include_date = !d.include_date + } + return d + }) + newState = _.assign({}, state, {current_month: newCMi}) + return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) + case 'EXCLUDE_DATE_FROM_PERIOD': + let newCMe = state.current_month.map((d, i) => { + if(i == action.index){ + d.excluded_date = !d.excluded_date + } + return d + }) + newState = _.assign({}, state, {current_month: newCMe}) + return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)}) default: return state } -- cgit v1.2.3 From 2eb1757a0594f87253c7a12e561d2dab50d164c6 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 21 Apr 2017 17:30:08 +0200 Subject: Refs #3151: Add openEditFormPeriod Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 4 ++++ .../time_tables/components/PeriodForm.js | 16 ++++++++++------ .../time_tables/components/PeriodManager.js | 4 +++- .../time_tables/components/PeriodsInDay.js | 1 + .../es6_browserified/time_tables/components/Timetable.js | 1 + .../es6_browserified/time_tables/containers/Timetable.js | 3 +++ .../javascripts/es6_browserified/time_tables/index.js | 8 ++++---- .../es6_browserified/time_tables/reducers/modal.js | 15 +++++++++++++++ 8 files changed, 41 insertions(+), 11 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js index 81d76cefa..0970e400d 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -71,6 +71,10 @@ const actions = { openAddPeriodForm: () => ({ type: 'OPEN_ADD_PERIOD_FORM' }), + openEditPeriodForm: (period) => ({ + type: 'OPEN_EDIT_PERIOD_FORM', + period + }), closePeriodForm: () => ({ type: 'CLOSE_PERIOD_FORM' }), diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js index c450a39c5..274429af8 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js @@ -2,10 +2,14 @@ var React = require('react') var PropTypes = require('react').PropTypes let monthsArray = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] +const formatNumber = (val) => { + return ("0" + val).slice(-2) +} + const makeDaysOptions = (daySelected) => { let arr = [] for(let i = 1; i < 32; i++) { - arr.push() + arr.push() } return arr } @@ -13,7 +17,7 @@ const makeDaysOptions = (daySelected) => { const makeMonthsOptions = (monthSelected) => { let arr = [] for(let i = 1; i < 13; i++) { - arr.push() + arr.push() } return arr } @@ -33,10 +37,10 @@ const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm, o
    - onUpdatePeriodForm(e.currentTarget.value, 'begin', 'day')} id="q_validity_period_begin_gteq_3i" className="date required form-control"> {makeDaysOptions(modal.modalProps.begin.day)} - onUpdatePeriodForm(e.currentTarget.value, 'begin', 'month')} id="q_validity_period_begin_gteq_2i" className="date required form-control"> {makeMonthsOptions(modal.modalProps.begin.month)} onUpdatePeriodForm(e.currentTarget.value, 'end', 'day')} id="q_validity_period_end_gteq_3i" className="date required form-control"> + - onUpdatePeriodForm(e.currentTarget.value, 'end', 'month')} id="q_validity_period_end_gteq_2i" className="date required form-control"> {makeMonthsOptions(modal.modalProps.end.month)}