import React from 'react'; import PropTypes from 'prop-types'; import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap'; import { gettext, orgID } from '../../../utils/constants'; import { seafileAPI } from '../../../utils/seafile-api'; const propTypes = { groupID: PropTypes.string, parentGroupID: PropTypes.string, toggle: PropTypes.func.isRequired, onAddNewDepartment: PropTypes.func.isRequired }; class AddDepartDialog extends React.Component { constructor(props) { super(props); this.state = { departName: '', errMessage: '', }; } handleSubmit = () => { let isValid = this.validateName(); if (isValid) { let parentGroup = -1; if (this.props.parentGroupID) { parentGroup = this.props.parentGroupID; } seafileAPI.sysAdminAddNewDepartment(parentGroup, this.state.departName.trim()).then((res) => { this.props.toggle(); this.props.onAddNewDepartment(res.data); }).catch(error => { let errorMsg = gettext(error.response.data.error_msg); this.setState({ errMessage: errorMsg }); }); } } validateName = () => { let errMessage = ''; const name = this.state.departName.trim(); if (!name.length) { errMessage = gettext('Name is required'); this.setState({ errMessage: errMessage }); return false; } return true; } handleChange = (e) => { this.setState({ departName: e.target.value, }); } handleKeyPress = (e) => { if (e.key === 'Enter') { this.handleSubmit(); e.preventDefault(); } } render() { let header = this.props.parentGroupID ? gettext('New Sub-department') : gettext('New Department'); return ( {header}
{this.state.errMessage &&

{this.state.errMessage}

}
); } } AddDepartDialog.propTypes = propTypes; export default AddDepartDialog;