+
deleteTerm(id)}
@@ -101,6 +124,15 @@ class SisIntegration extends Component {
/>
+ this.setState({ openEdit: null })}
+ onSubmit={data =>
+ editTerm(this.state.openEdit, data).then(() =>
+ this.setState({ openEdit: null })
+ )}
+ />
}
/>
}
@@ -122,6 +154,7 @@ SisIntegration.propTypes = {
fetchStatus: PropTypes.string,
createNewTerm: PropTypes.func,
deleteTerm: PropTypes.func,
+ editTerm: PropTypes.func,
sisTerms: PropTypes.array.isRequired
};
@@ -138,7 +171,16 @@ const mapDispatchToProps = (dispatch, { params }) => ({
loadAsync: (userId, isSuperAdmin) =>
SisIntegration.loadAsync(params, dispatch, userId, isSuperAdmin),
createNewTerm: data => dispatch(create(data)),
- deleteTerm: id => dispatch(deleteTerm(id))
+ deleteTerm: id => dispatch(deleteTerm(id)),
+ editTerm: (id, data) => {
+ // convert deadline times to timestamps
+ const processedData = Object.assign({}, data, {
+ beginning: moment(data.beginning).unix(),
+ end: moment(data.end).unix(),
+ advertiseUntil: moment(data.advertiseUntil).unix()
+ });
+ return dispatch(editTerm(id, processedData));
+ }
});
export default connect(mapStateToProps, mapDispatchToProps)(SisIntegration);