import React from 'react'; import PropTypes from 'prop-types'; import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, InputGroupAddon, InputGroup } from 'reactstrap'; import { gettext } from '../../../utils/constants'; import { seafileAPI } from '../../../utils/seafile-api'; import { Utils } from '../../../utils/utils'; import toaster from '../../toast'; const propTypes = { toggle: PropTypes.func.isRequired, groupID: PropTypes.number.isRequired, onSetQuota: PropTypes.func.isRequired, }; class SetGroupQuotaDialog extends React.Component { constructor(props) { super(props); this.state = { quota: '', errMessage: '', }; } setGroupQuota = () => { const numberReg = /^[1-9]\d*$/im; let quota = this.state.quota; if ((quota.length && numberReg.test(quota)) || quota == -2) { this.setState({ errMessage: '' }); let newQuota = this.state.quota == -2 ? this.state.quota : this.state.quota * 1000000; seafileAPI.sysAdminUpdateDepartmentQuota(this.props.groupID, newQuota).then((res) => { this.props.toggle(); this.props.onSetQuota(res.data); }).catch(error => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); } else { const err = gettext('Quota is invalid.'); this.setState({ errMessage: err }); } } handleChange = (e) => { const quota = e.target.value.trim(); this.setState({ quota: quota }); } handleKeyPress = (e) => { if (e.key === 'Enter') { this.setGroupQuota(); e.preventDefault(); } } render() { return ( {gettext('Set Quota')} {'MB'}


{gettext('An integer that is greater than 0 or equal to -2.')}
{gettext('Tip: -2 means no limit.')}

{this.state.errMessage &&

{this.state.errMessage}

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