import React from 'react';
import PropTypes from 'prop-types';
import { Button, ModalBody, ModalFooter, Form, FormGroup, Label, Input, Alert } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import { seafileAPI } from '../../../utils/seafile-api';
import { Utils } from '../../../utils/utils';
import toaster from '../../toast';
const propTypes = {
toggleDialog: PropTypes.func.isRequired,
repoID: PropTypes.string.isRequired,
};
class LibOldFilesAutoDelSetting extends React.Component {
constructor(props) {
super(props);
this.state = {
autoDelDays: 0,
isAutoDel: false,
errorInfo: '',
};
}
componentDidMount() {
seafileAPI.getRepoOldFilesAutoDelDays(this.props.repoID).then(res => {
this.setState({
autoDelDays: res.data.auto_delete_days,
isAutoDel: res.data.auto_delete_days > 0,
});
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
}
submit = () => {
let daysNeedTobeSet;
if (this.state.isAutoDel) {
daysNeedTobeSet = this.state.autoDelDays;
let reg = /^-?\d+$/;
let isvalid_days = reg.test(daysNeedTobeSet);
if (!isvalid_days || daysNeedTobeSet <= 0) {
this.setState({
errorInfo: gettext('Please enter a positive integer'),
});
return;
}
} else {
daysNeedTobeSet = 0; // if no auto del, give 0 to server
}
let repoID = this.props.repoID;
seafileAPI.setRepoOldFilesAutoDelDays(repoID, daysNeedTobeSet).then(res => {
this.props.toggleDialog();
toaster.success(gettext('Successfully set it.'));
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
};
handleKeyDown = (e) => {
if (e.key === 'Enter') {
this.submit();
e.preventDefault();
}
};
onChange = (e) => {
let days = e.target.value;
this.setState({
autoDelDays: days,
});
};
updateRadioCheck = (type) => {
if (type === 'noAutoDel') {
this.setState({
isAutoDel: false,
});
} else if (type === 'autoDel') {
this.setState({
isAutoDel: true,
});
}
};
render() {
return (
<>
>
);
}
}
LibOldFilesAutoDelSetting.propTypes = propTypes;
export default LibOldFilesAutoDelSetting;