aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/actions/index.js26
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js3
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js8
3 files changed, 27 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 13ce8f59c..a1e41027a 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js
@@ -192,11 +192,11 @@ const actions = {
})
return improvedCM
},
-
checkConfirmModal: (event, callback, stateChanged, dispatch, metas, timetable) => {
- if(stateChanged === true){
- if(timetable.time_table_periods.length == 0 && _.some(metas.day_types)){
- return actions.showErrorModal()
+ if(stateChanged){
+ const error = actions.errorModalKey(timetable.time_table_periods, metas.day_types)
+ if(error){
+ return actions.showErrorModal(error)
}else{
return actions.openConfirmModal(callback)
}
@@ -292,6 +292,24 @@ const actions = {
}
}
})
+ },
+ errorModalKey: (periods, dayTypes) => {
+ const withoutPeriodsWithDaysTypes = _.reject(periods, 'deleted').length == 0 && _.some(dayTypes) && "withoutPeriodsWithDaysTypes"
+ const withPeriodsWithoutDayTypes = _.reject(periods, 'deleted').length > 0 && _.every(dayTypes, dt => dt == false) && "withPeriodsWithoutDayTypes"
+
+ return (withoutPeriodsWithDaysTypes || withPeriodsWithoutDayTypes) && (withoutPeriodsWithDaysTypes ? "withoutPeriodsWithDaysTypes" : "withPeriodsWithoutDayTypes")
+
+ },
+ errorModalMessage: (errorKey) => {
+ switch (errorKey) {
+ case "withoutPeriodsWithDaysTypes":
+ return window.I18n.fr.time_tables.edit.error_modal.withoutPeriodsWithDaysTypes
+ case "withPeriodsWithoutDayTypes":
+ return window.I18n.fr.time_tables.edit.error_modal.withPeriodsWithoutDayTypes
+ default:
+ return errorKey
+
+ }
}
}
diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js b/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js
index 5f178d3c2..84af28f30 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js
@@ -1,6 +1,7 @@
var React = require('react')
var Component = require('react').Component
var PropTypes = require('react').PropTypes
+var errorModalMessage = require('../actions').errorModalMessage
const ErrorModal = ({dispatch, modal, onModalClose}) => (
<div className={ 'modal fade ' + ((modal.type == 'error') ? 'in' : '') } id='ErrorModal'>
@@ -12,7 +13,7 @@ const ErrorModal = ({dispatch, modal, onModalClose}) => (
</div>
<div className='modal-body'>
<div className='mt-md mb-md'>
- <p>{(modal.modalProps.error == "withoutPeriodsWithDaysTypes") ? window.I18n.fr.time_tables.edit.error_modal.withoutPeriodsWithDaysTypes : window.I18n.fr.time_tables.edit.error_modal.withPeriodsWithoutDayTypes}</p>
+ <p>{errorModalMessage(modal.modalProps.error)}</p>
</div>
</div>
<div className='modal-footer'>
diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js
index 428243788..779fd8e25 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js
@@ -10,9 +10,7 @@ class SaveTimetable extends Component{
}
render() {
- const withoutPeriodsWithDaysTypes = _.reject(this.props.timetable.time_table_periods, 'deleted').length == 0 && _.some(this.props.metas.day_types)
- const withPeriodsWithoutDayTypes = _.reject(this.props.timetable.time_table_periods, 'deleted').length > 0 && _.every(this.props.metas.day_types, dt => dt == false)
- const errorKey = withoutPeriodsWithDaysTypes ? "withoutPeriodsWithDaysTypes" : "withPeriodsWithoutDayTypes"
+ const error = actions.errorModalKey(this.props.timetable.time_table_periods, this.props.metas.day_types)
return (
<div className='row mt-md'>
@@ -23,8 +21,8 @@ class SaveTimetable extends Component{
type='button'
onClick={e => {
e.preventDefault()
- if (withoutPeriodsWithDaysTypes || withPeriodsWithoutDayTypes) {
- this.props.onShowErrorModal(errorKey)
+ if (error) {
+ this.props.onShowErrorModal(error)
} else {
actions.submitTimetable(this.props.getDispatch(), this.props.timetable, this.props.metas)
}