diff options
| author | cedricnjanga | 2017-08-14 12:18:00 +0200 |
|---|---|---|
| committer | cedricnjanga | 2017-08-16 09:28:48 +0200 |
| commit | d1c1e5628679ee41956d0b05e24807ef84b98928 (patch) | |
| tree | 062647fb280d15405802cc7ccde00b5e6150df8c /app/assets | |
| parent | 508f7d115db0017392e60fe7594ee50b2dad3311 (diff) | |
| download | chouette-core-d1c1e5628679ee41956d0b05e24807ef84b98928.tar.bz2 | |
Refacto and fixes on Timetable Error modal
Diffstat (limited to 'app/assets')
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) } |
