From 403fb2eb98deb2e352f700b2503fdf5b27679c96 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 11 Feb 2019 22:31:55 +0000
Subject: [PATCH] Adding and removing repos.

---
 borgbutler-webapp/src/components/views/repos/RepoConfigPanel.jsx |   45 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/borgbutler-webapp/src/components/views/repos/RepoConfigPanel.jsx b/borgbutler-webapp/src/components/views/repos/RepoConfigPanel.jsx
index d97d0d0..88ef7e8 100644
--- a/borgbutler-webapp/src/components/views/repos/RepoConfigPanel.jsx
+++ b/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>;
     }
 }
 

--
Gitblit v1.10.0