aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2017-04-25 09:23:58 +0200
committerThomas Haddad2017-04-25 09:23:58 +0200
commita032342dafe69d5878cb4868decf38b8139d98db (patch)
treec34f368a674dd29d888cb19df875b337182a2064
parentc6f80e2066a29c0aa3176a4d160dc12ece7f5693 (diff)
downloadchouette-core-a032342dafe69d5878cb4868decf38b8139d98db.tar.bz2
Refs #2899: Add Save component for timetables
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js52
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/containers/App.js2
-rw-r--r--app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js16
3 files changed, 70 insertions, 0 deletions
diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js
new file mode 100644
index 000000000..f8832476d
--- /dev/null
+++ b/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js
@@ -0,0 +1,52 @@
+var React = require('react')
+var Component = require('react').Component
+var PropTypes = require('react').PropTypes
+var actions = require('../actions')
+
+class SaveTimetable extends Component{
+ constructor(props){
+ super(props)
+ }
+
+ componentDidUpdate(prevProps, prevState) {
+ if(prevProps.status.isFetching == true){
+ submitMover();
+ }
+ }
+
+ render() {
+ if(this.props.status.isFetching == true) {
+ return false
+ }
+ if(this.props.status.fetchSuccess == true) {
+ return (
+ <div className='row mt-md'>
+ <div className='col-lg-12 text-right'>
+ <form className='formSubmitr ml-xs' onSubmit={e => {e.preventDefault()}}>
+ <button
+ className='btn btn-default'
+ type='button'
+ onClick={e => {
+ e.preventDefault()
+ actions.submitTimeTable(this.props.dispatch, this.props.timetable, this.props.metas)
+ }}
+ >
+ Valider
+ </button>
+ </form>
+ </div>
+ </div>
+ )
+ } else {
+ return false
+ }
+ }
+}
+
+SaveTimetable.propTypes = {
+ timetable: PropTypes.object.isRequired,
+ status: PropTypes.object.isRequired,
+ metas: PropTypes.object.isRequired
+}
+
+module.exports = SaveTimetable
diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js
index 36e3a98e0..fee169ac3 100644
--- a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js
+++ b/app/assets/javascripts/es6_browserified/time_tables/containers/App.js
@@ -6,6 +6,7 @@ var Metas = require('./Metas')
var Timetable = require('./Timetable')
var Navigate = require('./Navigate')
var PeriodForm = require('./PeriodForm')
+var SaveTimetable = require('./SaveTimetable')
class App extends Component {
componentDidMount(){
@@ -20,6 +21,7 @@ class App extends Component {
<Navigate />
<Timetable />
<PeriodForm />
+ <SaveTimetable />
</div>
</div>
)
diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js b/app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js
new file mode 100644
index 000000000..7d2684dde
--- /dev/null
+++ b/app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js
@@ -0,0 +1,16 @@
+var React = require('react')
+var connect = require('react-redux').connect
+var actions = require('../actions')
+var SaveTimetableComponent = require('../components/SaveTimetable')
+
+const mapStateToProps = (state) => {
+ return {
+ timetable: state.timetable,
+ metas: state.metas,
+ status: state.status
+ }
+}
+
+const SaveTimetable = connect(mapStateToProps)(SaveTimetableComponent)
+
+module.exports = SaveTimetable