diff options
| author | Thomas Haddad | 2017-06-29 17:28:52 +0200 | 
|---|---|---|
| committer | Thomas Haddad | 2017-06-29 17:29:25 +0200 | 
| commit | 180b6a8d2a7f50d967ff1a30e45ab23eb11896e4 (patch) | |
| tree | f9bf04687eff5895a5a8858a3b06137e8c81baa2 | |
| parent | e32e370ece3fa78efc8cce97e3ea827b01bfe7d1 (diff) | |
| download | chouette-core-180b6a8d2a7f50d967ff1a30e45ab23eb11896e4.tar.bz2 | |
Refs #3925 @3h: Fix timetable period form invalid dates
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
3 files changed, 13 insertions, 11 deletions
| 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 a54131984..028974fc8 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js @@ -63,13 +63,13 @@ const PeriodForm = ({modal, timetable, metas, onOpenAddPeriodForm, onClosePeriod                    <div>                      <div className={'form-group date ' + (modal.modalProps.error ? ' has-error' : '')}>                        <div className="form-inline"> -                        <select value={formatNumber(modal.modalProps.begin.day)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'day')} id="q_validity_period_begin_gteq_3i" className="date required form-control"> +                        <select value={formatNumber(modal.modalProps.begin.day)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'day', modal.modalProps)} id="q_validity_period_begin_gteq_3i" className="date required form-control">                            {makeDaysOptions(modal.modalProps.begin.day)}                          </select> -                        <select value={formatNumber(modal.modalProps.begin.month)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'month')} id="q_validity_period_begin_gteq_2i" className="date required form-control"> +                        <select value={formatNumber(modal.modalProps.begin.month)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'month', modal.modalProps)} id="q_validity_period_begin_gteq_2i" className="date required form-control">                            {makeMonthsOptions(modal.modalProps.begin.month)}                          </select> -                        <select value={modal.modalProps.begin.year} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'year')} id="q_validity_period_begin_gteq_1i" className="date required form-control"> +                        <select value={modal.modalProps.begin.year} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'year', modal.modalProps)} id="q_validity_period_begin_gteq_1i" className="date required form-control">                            {makeYearsOptions(modal.modalProps.begin.year)}                          </select>                        </div> @@ -78,13 +78,13 @@ const PeriodForm = ({modal, timetable, metas, onOpenAddPeriodForm, onClosePeriod                    <div>                      <div className={'form-group date ' + (modal.modalProps.error ? ' has-error' : '')}>                        <div className="form-inline"> -                        <select value={formatNumber(modal.modalProps.end.day)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'day')} id="q_validity_period_end_gteq_3i" className="date required form-control"> +                        <select value={formatNumber(modal.modalProps.end.day)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'day', modal.modalProps)} id="q_validity_period_end_gteq_3i" className="date required form-control">                            {makeDaysOptions(modal.modalProps.end.day)}                          </select> -                        <select value={formatNumber(modal.modalProps.end.month)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'month')} id="q_validity_period_end_gteq_2i" className="date required form-control"> +                        <select value={formatNumber(modal.modalProps.end.month)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'month', modal.modalProps)} id="q_validity_period_end_gteq_2i" className="date required form-control">                            {makeMonthsOptions(modal.modalProps.end.month)}                          </select> -                        <select value={modal.modalProps.end.year} onChange={(e) => onUpdatePeriodForm(e, 'end', 'year')} id="q_validity_period_end_gteq_1i" className="date required form-control"> +                        <select value={modal.modalProps.end.year} onChange={(e) => onUpdatePeriodForm(e, 'end', 'year', modal.modalProps)} id="q_validity_period_end_gteq_1i" className="date required form-control">                            {makeYearsOptions(modal.modalProps.end.year)}                          </select>                        </div> 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 a7edbc328..7f2db785a 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js +++ b/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js @@ -1,6 +1,7 @@  var connect = require('react-redux').connect  var PeriodFormComponent = require('../components/PeriodForm')  var actions = require('../actions') +var _ = require('lodash')  const mapStateToProps = (state) => {    return { @@ -18,10 +19,13 @@ const mapDispatchToProps = (dispatch) => {      onClosePeriodForm: () => {        dispatch(actions.closePeriodForm())      }, -    onUpdatePeriodForm: (e, group, selectType) => { +    onUpdatePeriodForm: (e, group, selectType, modalProps) => {        dispatch(actions.updatePeriodForm(e.currentTarget.value, group, selectType)) -      let selector = '#q_validity_period_' + group + '_gteq_3i' -      dispatch(actions.updatePeriodForm($(selector).val(), group, 'day')) +      let mProps = _.assign({}, modalProps) +      mProps[group][selectType] = e.currentTarget.value +      let val = window.correctDay([parseInt(mProps[group]['day']), parseInt(mProps[group]['month']), parseInt(mProps[group]['year'])]) +      val = (val < 10) ? '0' + String(val) : String(val) +      dispatch(actions.updatePeriodForm(val, group, 'day'))      },      onValidatePeriodForm: (modalProps, timeTablePeriods, metas) => {        dispatch(actions.validatePeriodForm(modalProps, timeTablePeriods, metas)) diff --git a/app/assets/javascripts/smart_date.coffee b/app/assets/javascripts/smart_date.coffee index afc0c7ddf..48aa1c2f9 100644 --- a/app/assets/javascripts/smart_date.coffee +++ b/app/assets/javascripts/smart_date.coffee @@ -2,8 +2,6 @@ window.legalDaysPerMonth =    false: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],    true:  [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] - -window.legal  window.correctDay = (dateValues) ->    [day, month, year] = dateValues    return day unless day > 0 && month > 0 && year > 0 | 
