aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets
diff options
context:
space:
mode:
authorcedricnjanga2017-08-14 12:18:00 +0200
committercedricnjanga2017-08-16 09:28:48 +0200
commitd1c1e5628679ee41956d0b05e24807ef84b98928 (patch)
tree062647fb280d15405802cc7ccde00b5e6150df8c /app/assets
parent508f7d115db0017392e60fe7594ee50b2dad3311 (diff)
downloadchouette-core-d1c1e5628679ee41956d0b05e24807ef84b98928.tar.bz2
Refacto and fixes on Timetable Error modal
Diffstat (limited to 'app/assets')
-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)
}