From 180b6a8d2a7f50d967ff1a30e45ab23eb11896e4 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 29 Jun 2017 17:28:52 +0200 Subject: Refs #3925 @3h: Fix timetable period form invalid dates Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/components/PeriodForm.js | 12 ++++++------ .../es6_browserified/time_tables/containers/PeriodForm.js | 10 +++++++--- app/assets/javascripts/smart_date.coffee | 2 -- 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
- onUpdatePeriodForm(e, 'begin', 'day', modal.modalProps)} id="q_validity_period_begin_gteq_3i" className="date required form-control"> {makeDaysOptions(modal.modalProps.begin.day)} - onUpdatePeriodForm(e, 'begin', 'month', modal.modalProps)} id="q_validity_period_begin_gteq_2i" className="date required form-control"> {makeMonthsOptions(modal.modalProps.begin.month)} - onUpdatePeriodForm(e, 'begin', 'year', modal.modalProps)} id="q_validity_period_begin_gteq_1i" className="date required form-control"> {makeYearsOptions(modal.modalProps.begin.year)}
@@ -78,13 +78,13 @@ const PeriodForm = ({modal, timetable, metas, onOpenAddPeriodForm, onClosePeriod
- onUpdatePeriodForm(e, 'end', 'day', modal.modalProps)} id="q_validity_period_end_gteq_3i" className="date required form-control"> {makeDaysOptions(modal.modalProps.end.day)} - onUpdatePeriodForm(e, 'end', 'month', modal.modalProps)} id="q_validity_period_end_gteq_2i" className="date required form-control"> {makeMonthsOptions(modal.modalProps.end.month)} - onUpdatePeriodForm(e, 'end', 'year', modal.modalProps)} id="q_validity_period_end_gteq_1i" className="date required form-control"> {makeYearsOptions(modal.modalProps.end.year)}
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 -- cgit v1.2.3