aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2017-06-29 17:28:52 +0200
committerThomas Haddad2017-06-29 17:29:25 +0200
commit180b6a8d2a7f50d967ff1a30e45ab23eb11896e4 (patch)
treef9bf04687eff5895a5a8858a3b06137e8c81baa2
parente32e370ece3fa78efc8cce97e3ea827b01bfe7d1 (diff)
downloadchouette-core-180b6a8d2a7f50d967ff1a30e45ab23eb11896e4.tar.bz2
Refs #3925 @3h: Fix timetable period form invalid dates
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js12
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js10
-rw-r--r--app/assets/javascripts/smart_date.coffee2
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