import React from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap'; import { gettext } from '../../utils/constants'; import { seafileAPI } from '../../utils/seafile-api'; import { Utils } from '../../utils/utils'; const propTypes = { orgID: PropTypes.string.isRequired, email: PropTypes.string.isRequired, quotaTotal: PropTypes.string.isRequired, updateQuota: PropTypes.func.isRequired, toggleDialog: PropTypes.func.isRequired }; class SetOrgUserQuota extends React.Component { constructor(props) { super(props); const initialQuota = this.props.quotaTotal < 0 ? '' : this.props.quotaTotal / (1000 * 1000); this.state = { inputValue: initialQuota, submitBtnDisabled: false }; } handleInputChange = (e) => { this.setState({ inputValue: e.target.value }); } formSubmit = () => { const { orgID, email } = this.props; const quota = this.state.inputValue.trim(); if (!quota) { this.setState({ formErrorMsg: gettext('It is required.') }); return false; } this.setState({ submitBtnDisabled: true }); seafileAPI.orgAdminSetOrgUserQuota(orgID, email, quota).then((res) => { this.props.updateQuota(res.data.quota_total); this.props.toggleDialog(); }).catch((error) => { let errorMsg = Utils.getErrorMsg(error); this.setState({ formErrorMsg: errorMsg, submitBtnDisabled: false }); }); } render() { const { inputValue, formErrorMsg, submitBtnDisabled } = this.state; return ( {gettext('Set user quota')} MB

{gettext('Tip: 0 means default limit')}

{formErrorMsg &&

{formErrorMsg}

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