aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorThomas Haddad2017-04-24 11:57:31 +0200
committerThomas Haddad2017-04-24 11:58:06 +0200
commitc96e59ad35eff48cec7c077d4ecf3a6d2d161556 (patch)
tree6aa07c9f113691cbb9c5c1b01117f2608a47f559 /app/assets/javascripts
parent208c82b3a2a716e7481afedef429088ec5898c33 (diff)
downloadchouette-core-c96e59ad35eff48cec7c077d4ecf3a6d2d161556.tar.bz2
Refs #3151: add VALIDATE_PERIOD_FORM (w/o error handler yet)
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/actions/index.js7
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js9
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js3
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/index.js4
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js17
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js16
6 files changed, 46 insertions, 10 deletions
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 a9fbb94cf..d83612211 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js
@@ -85,6 +85,10 @@ const actions = {
group,
selectType
}),
+ validatePeriodForm: (modalProps) => ({
+ type: 'VALIDATE_PERIOD_FORM',
+ modalProps
+ }),
includeDateInPeriod: (index, day, dayTypes) => ({
type: 'INCLUDE_DATE_IN_PERIOD',
index,
@@ -162,6 +166,9 @@ const actions = {
return callback
}
},
+ formatDate: (props) => {
+ return props.year + '-' + props.month + '-' + props.day
+ },
fetchTimeTables: (dispatch, nextPage) => {
let urlJSON = window.location.pathname.split('/', 5).join('/')
// console.log(nextPage)
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 274429af8..c46fb2c18 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js
@@ -31,7 +31,7 @@ const makeYearsOptions = (yearSelected) => {
return arr
}
-const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm, onUpdatePeriodForm}) => (
+const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm, onUpdatePeriodForm, onValidatePeriodForm}) => (
<div>
{modal.modalProps.active &&
<div className="form-group date filter_menu-item">
@@ -65,7 +65,11 @@ const PeriodForm = ({modal, timetable, onOpenAddPeriodForm, onClosePeriodForm, o
>
Annuler
</button>
- <button>Valider</button>
+ <button
+ onClick={() => onValidatePeriodForm(modal.modalProps)}
+ >
+ Valider
+ </button>
</div>
</div>
}
@@ -84,6 +88,7 @@ PeriodForm.propTypes = {
onOpenAddPeriodForm: PropTypes.func.isRequired,
onClosePeriodForm: PropTypes.func.isRequired,
onUpdatePeriodForm: PropTypes.func.isRequired,
+ onValidatePeriodForm: 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 0a785c680..68ee5beef 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js
@@ -19,6 +19,9 @@ const mapDispatchToProps = (dispatch) => {
},
onUpdatePeriodForm: (val, group, selectType) => {
dispatch(actions.updatePeriodForm(val, group, selectType))
+ },
+ onValidatePeriodForm: (props) => {
+ dispatch(actions.validatePeriodForm(props))
}
}
}
diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/assets/javascripts/es6_browserified/time_tables/index.js
index 69b7fdd7c..c78df5f1e 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/index.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/index.js
@@ -48,7 +48,9 @@ var initialState = {
day: '01',
month: '01',
year: String(new Date().getFullYear())
- }
+ },
+ index: false,
+ errors: []
},
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 e9c0c2fb9..58466fa70 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js
@@ -1,15 +1,15 @@
var _ = require('lodash')
let newModalProps = {}
+let emptyDate = {
+ begin: '01',
+ month: '01',
+ year: String(new Date().getFullYear())
+}
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, index: false})
+ newModalProps = _.assign({}, state.modalProps, {active: false})
return _.assign({}, state, {modalProps: newModalProps})
case 'OPEN_EDIT_PERIOD_FORM':
let period_start = action.period.period_start.split('-')
@@ -28,12 +28,15 @@ const modal = (state = {}, action) => {
newModalProps.index = action.index
return _.assign({}, state, {modalProps: newModalProps})
case 'OPEN_ADD_PERIOD_FORM':
- newModalProps = _.assign({}, state.modalProps, {active: true})
+ newModalProps = _.assign({}, state.modalProps, {active: true, begin: emptyDate, end: emptyDate, index: false, errors: []})
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})
+ case 'VALIDATE_PERIOD_FORM':
+ newModalProps = _.assign({}, state.modalProps, {active: false})
+ return _.assign({}, state, {modalProps: newModalProps})
default:
return state
}
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 b052b5fcc..dc13684fb 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js
@@ -55,6 +55,22 @@ const timetable = (state = {}, action) => {
})
newState = _.assign({}, state, {current_month: newCMe})
return _.assign({}, newState, {current_month: actions.updateSynthesis(newState, action.dayTypes)})
+ case 'VALIDATE_PERIOD_FORM':
+ let period_start = actions.formatDate(action.modalProps.begin)
+ let period_end = actions.formatDate(action.modalProps.end)
+ let newPeriods = JSON.parse(JSON.stringify(state.time_table_periods))
+ if (action.modalProps.index !== false){
+ newPeriods[action.modalProps.index].period_start = period_start
+ newPeriods[action.modalProps.index].period_end = period_end
+ }else{
+ let newPeriod = {
+ period_start: period_start,
+ period_end: period_end
+ }
+ newPeriods.push(newPeriod)
+ }
+ return _.assign({}, state, {time_table_periods: newPeriods})
+
default:
return state
}