From 1e38848dc427f7fe5bd5b0079c2fb9b1d491dca2 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 15 Jun 2017 15:28:11 +0200 Subject: Refs #3784 @3h: Add condition check before validating timetable Signed-off-by: Thomas Shawarma Haddad --- .../es6_browserified/time_tables/actions/index.js | 11 ++++-- .../time_tables/components/ErrorModal.js | 39 ++++++++++++++++++++++ .../time_tables/components/Navigate.js | 6 ++-- .../time_tables/components/SaveTimetable.js | 7 +++- .../es6_browserified/time_tables/containers/App.js | 2 ++ .../time_tables/containers/ErrorModal.js | 21 ++++++++++++ .../time_tables/containers/SaveTimetable.js | 12 ++++++- .../es6_browserified/time_tables/reducers/modal.js | 3 ++ 8 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js create mode 100644 app/assets/javascripts/es6_browserified/time_tables/containers/ErrorModal.js (limited to 'app/assets/javascripts') 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 0a6e7e1dc..951664129 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/assets/javascripts/es6_browserified/time_tables/actions/index.js @@ -122,6 +122,9 @@ const actions = { type : 'OPEN_CONFIRM_MODAL', callback }), + showErrorModal: () => ({ + type: 'OPEN_ERROR_MODAL' + }), closeModal : () => ({ type : 'CLOSE_MODAL' }), @@ -185,9 +188,13 @@ const actions = { return improvedCM }, - checkConfirmModal: (event, callback, stateChanged,dispatch) => { + checkConfirmModal: (event, callback, stateChanged, dispatch, metas, timetable) => { if(stateChanged === true){ - return actions.openConfirmModal(callback) + if(timetable.time_table_periods.length == 0 && _.some(metas.day_types)){ + return actions.showErrorModal() + }else{ + return actions.openConfirmModal(callback) + } }else{ dispatch(actions.fetchingApi()) return callback diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js b/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js new file mode 100644 index 000000000..31ed256ea --- /dev/null +++ b/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js @@ -0,0 +1,39 @@ +var React = require('react') +var Component = require('react').Component +var PropTypes = require('react').PropTypes + +const ErrorModal = ({dispatch, modal, onModalClose}) => ( +
+
+
+
+
+

Erreur

+
+
+
+

Un calendrier d'application ne peut pas avoir de journée(s) d'application sans période(s).

+
+
+
+ +
+
+
+
+
+) + +ErrorModal.propTypes = { + modal: PropTypes.object.isRequired, + onModalClose: PropTypes.func.isRequired +} + +module.exports = ErrorModal diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js b/app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js index 74ca36ea6..6a3690cb0 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js @@ -39,7 +39,7 @@ let Navigate = ({ dispatch, metas, timetable, pagination, status, filters}) => { value={month} onClick={e => { e.preventDefault() - dispatch(actions.checkConfirmModal(e, actions.changePage(dispatch, e.currentTarget.value), pagination.stateChanged, dispatch)) + dispatch(actions.checkConfirmModal(e, actions.changePage(dispatch, e.currentTarget.value), pagination.stateChanged, dispatch, metas, timetable)) }} > {actions.monthName(month) + ' ' + new Date(month).getFullYear()} @@ -56,7 +56,7 @@ let Navigate = ({ dispatch, metas, timetable, pagination, status, filters}) => {