mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
11.31.2019 403fb2eb98deb2e352f700b2503fdf5b27679c96
borgbutler-webapp/src/components/views/repos/RepoConfigPanel.jsx
@@ -8,6 +8,7 @@
import RepoConfigBasePanel from './RepoConfigBasePanel';
import RepoConfigPasswordPanel from './RepoConfigPasswordPanel';
import RepoConfigTestPanel from './RepoConfigTestPanel';
import ConfirmModal from '../../general/modal/ConfirmModal';
class RepoConfigPanel extends React.Component {
@@ -15,17 +16,26 @@
        super(props);
        this.state = {
            loading: false,
            repoConfig: undefined
            repoConfig: undefined,
            confirmModal: false
        };
        this.fetch = this.fetch.bind(this);
        this.setRepoValue = this.setRepoValue.bind(this);
        this.onSave = this.onSave.bind(this);
        this.onRemove = this.onRemove.bind(this);
        this.onCancel = this.onCancel.bind(this);
        this.toggleModal = this.toggleModal.bind(this);
    }
    componentDidMount = () => this.fetch();
    toggleModal() {
        this.setState({
            confirmModal: !this.state.confirmModal
        })
    }
    fetch = () => {
        this.setState({
            isFetching: true,
@@ -68,6 +78,23 @@
        })
    }
    onRemove(event) {
        const response = fetch(getRestServiceUrl('repoConfig/remove', {
            id: this.props.id
        }), {
            method: 'GET',
            headers: {
                'Accept': 'application/json'
            }
        })
            .then(response => response.text())
            .then(text => {
            })
            .catch((error) => {
                console.log("error", error);
            })
    }
    async onSave(event) {
        const response = fetch(getRestServiceUrl("repoConfig"), {
            method: 'POST',
@@ -129,6 +156,7 @@
                        <FormButton onClick={this.onCancel}
                                    hintKey="configuration.cancel.hint"><I18n name={'common.cancel'}/>
                        </FormButton>
                        <FormButton onClick={this.toggleModal} bsStyle={'outline-danger'}>Remove</FormButton>
                        <FormButton onClick={this.onSave} bsStyle="primary"
                                    hintKey="configuration.save.hint"><I18n name={'common.save'}/>
                        </FormButton>
@@ -139,7 +167,20 @@
                <LoadingOverlay active={this.state.loading}/>
            </React.Fragment>;
        }
        return <React.Fragment>{content}{repoError}</React.Fragment>;
        return <React.Fragment>
            <ConfirmModal
                onConfirm={this.onRemove}
                title={'Are you sure?'}
                toggle={this.toggleModal}
                open={this.state.confirmModal}
            >
                Do you really want to remove this repository from BorgButler?
                <br/>
                The Borg repository itself and its content will be left untouched.
            </ConfirmModal>
            {content}
            {repoError}
        </React.Fragment>;
    }
}