From e4302e28ee27fe03342efeaeb006946660aa5fd2 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 09 Dec 2018 23:15:59 +0000
Subject: [PATCH] ...

---
 borgbutler-webapp/src/components/general/Menu.jsx               |    5 -
 borgbutler-webapp/src/components/views/repos/RepoCard.jsx       |    4 
 borgbutler-webapp/src/containers/WebApp.jsx                     |    8 +-
 borgbutler-webapp/src/components/views/develop/RestServices.jsx |   65 ---------------------
 borgbutler-webapp/src/components/views/repos/RepoListView.jsx   |   56 ++++++------------
 5 files changed, 27 insertions(+), 111 deletions(-)

diff --git a/borgbutler-webapp/src/components/general/Menu.jsx b/borgbutler-webapp/src/components/general/Menu.jsx
index a9d2d51..6eed8f9 100644
--- a/borgbutler-webapp/src/components/general/Menu.jsx
+++ b/borgbutler-webapp/src/components/general/Menu.jsx
@@ -1,11 +1,8 @@
 import React from 'react';
 import {NavLink as ReactRouterNavLink} from 'react-router-dom';
-import {Collapse, Nav, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink, UncontrolledTooltip} from 'reactstrap';
-import {getResponseHeaderFilename, getRestServiceUrl} from '../../utilities/global';
-import fileDownload from 'js-file-download';
+import {Collapse, Nav, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink} from 'reactstrap';
 import LoadingOverlay from './loading/LoadingOverlay';
 import FailedOverlay from './loading/failed/Overlay';
-import I18n from "./translation/I18n";
 
 class Menu extends React.Component {
     getNavElement = (route, index) => {
diff --git a/borgbutler-webapp/src/components/views/develop/RestServices.jsx b/borgbutler-webapp/src/components/views/develop/RestServices.jsx
index 76e4fde..85cb313 100644
--- a/borgbutler-webapp/src/components/views/develop/RestServices.jsx
+++ b/borgbutler-webapp/src/components/views/develop/RestServices.jsx
@@ -1,7 +1,6 @@
 import React from 'react';
 import {PageHeader} from '../../general/BootstrapComponents';
-import {getRestServiceUrl, getResponseHeaderFilename} from "../../../utilities/global";
-import fileDownload from 'js-file-download';
+import {getRestServiceUrl} from "../../../utilities/global";
 
 class RestUrlLink extends React.Component {
     render() {
@@ -24,68 +23,6 @@
 }
 
 class RestServices extends React.Component {
-    constructor(props) {
-        super(props);
-        this.state = {
-            templateDefinitionId: '',
-            templatePrimaryKey: '',
-        }
-        this.onRun = this.onRun.bind(this);
-    }
-
-    componentDidMount() {
-        fetch(getRestServiceUrl("templates/example-definitions"), {
-            method: "GET",
-            dataType: "JSON",
-            headers: {
-                "Content-Type": "text/plain; charset=utf-8",
-            }
-        })
-            .then((resp) => {
-                return resp.json()
-            })
-            .then((data) => {
-                    this.setState({
-                        templateDefinitionId: data.templateDefinitionId,
-                        templatePrimaryKey: data.templatePrimaryKey
-                    });
-                }
-            )
-            .catch((error) => {
-                    console.log(error, "Oups, what's happened?")
-                }
-            )
-    }
-
-    onRun() {
-        let filename;
-        fetch(getRestServiceUrl('templates/example-run-data'), {
-            method: "GET",
-            dataType: "JSON",
-            headers: {
-                "Content-Type": "text/plain; charset=utf-8"
-            }
-        })
-            .then((resp) => {
-                return resp.json()
-            })
-            .then((data) => {
-                fetch(getRestServiceUrl("templates/run"), {
-                    method: 'POST',
-                    body: JSON.stringify(data)
-                })
-                    .then(response => {
-                        filename = getResponseHeaderFilename(response.headers.get("Content-Disposition"));
-                        //this.setState({downloadFilename: filename});
-                        return response.blob();
-                    })
-                    .then(blob => fileDownload(blob, filename));
-            })
-            .catch((error) => {
-                console.log(error, "Oups, what's happened?")
-            })
-    }
-
     render() {
         return (
             <React.Fragment>
diff --git a/borgbutler-webapp/src/components/views/repos/RepoCard.jsx b/borgbutler-webapp/src/components/views/repos/RepoCard.jsx
index e82a8e0..43b74f0 100644
--- a/borgbutler-webapp/src/components/views/repos/RepoCard.jsx
+++ b/borgbutler-webapp/src/components/views/repos/RepoCard.jsx
@@ -16,7 +16,7 @@
     render = () => {
         const repo = this.props.repo;
         let repoId = repo.id ? repo.id : repo.name;
-        let content = [[Name, repo.name, 'name']];
+        let content = [['Name', repo.name, 'name']];
         let repoText = this.buildItem(null, content);
 
         return <React.Fragment>
@@ -40,4 +40,4 @@
     }
 }
 
-export default repoCard;
+export default RepoCard;
diff --git a/borgbutler-webapp/src/components/views/repos/RepoListView.jsx b/borgbutler-webapp/src/components/views/repos/RepoListView.jsx
index 301f1c8..ea02920 100644
--- a/borgbutler-webapp/src/components/views/repos/RepoListView.jsx
+++ b/borgbutler-webapp/src/components/views/repos/RepoListView.jsx
@@ -4,9 +4,8 @@
 import {PageHeader} from '../../general/BootstrapComponents';
 import {getRestServiceUrl} from '../../../utilities/global';
 import ErrorAlert from '../../general/ErrorAlert';
-import TemplateCard from './TemplateCard';
+import RepoCard from './RepoCard';
 import {IconRefresh} from "../../general/IconComponents";
-import I18n from "../../general/translation/I18n";
 
 class RepoListView extends React.Component {
 
@@ -17,15 +16,14 @@
     };
 
     componentDidMount = () => {
-        this.fetchTemplates();
+        this.fetchRepos();
     };
 
-    fetchTemplates = () => {
+    fetchRepos = () => {
         this.setState({
             isFetching: true,
             failed: false,
-            definitions: undefined,
-            templates: undefined
+            repos: undefined
         });
         fetch(`${this.path}/list`, {
             method: 'GET',
@@ -35,31 +33,18 @@
         })
             .then(response => response.json())
             .then(json => {
-                const definitions = json.templateDefinitions.reduce((accumulator, current) => ({
-                    ...accumulator,
-                    [current.refId]: current
-                }), {});
 
-                const templates = json.templates.map(template => {
-                    if (typeof template.templateDefinition === 'object') {
-                        //console.log('refId: ' + template.templateDefinition.refId + ', templateDefinition: ' + JSON.stringify(template.templateDefinition))
-                        definitions[template.templateDefinition.refId] = template.templateDefinition;
-                        template.templateDefinition = template.templateDefinition.refId;
-                    }
-
+                const repos = json.repos.map(repo => {
                     return {
-                        id: template.id,
-                        primaryKey: template.fileDescriptor.primaryKey,
-                        filename: template.fileDescriptor.filename,
-                        lastModified: template.fileDescriptor.lastModified,
-                        templateDefinitionId: template.templateDefinitionId,
-                        templateDefinition: template.templateDefinition
+                        id: repo.id,
+                        name: repo.name,
+                        lastModified: repo.last_modified
                     };
                 });
 
                 this.setState({
                     isFetching: false,
-                    definitions, templates
+                    repos
                 })
             })
             .catch(() => this.setState({isFetching: false, failed: true}));
@@ -75,31 +60,28 @@
         } else if (this.state.failed) {
 
             content = <ErrorAlert
-                title={'Cannot load Templates'}
+                title={'Cannot load Repositories'}
                 description={'Something went wrong during contacting the rest api.'}
                 action={{
-                    handleClick: this.fetchTemplates,
+                    handleClick: this.fetchRepos,
                     title: 'Try again'
                 }}
             />;
 
-        } else if (this.state.templates) {
+        } else if (this.state.repos) {
 
             content = <React.Fragment>
                 <div
                     className={'btn btn-outline-primary refresh-button-right'}
-                    onClick={this.fetchTemplates}
+                    onClick={this.fetchRepos}
                 >
                     <IconRefresh/>
                 </div>
                 <CardDeck>
-                {this.state.templates.map(template => {
-                    const definition = this.state.definitions[template.templateDefinition];
-
-                    return <TemplateCard
-                        key={template.primaryKey}
-                        template={template}
-                        definition={definition}
+                {this.state.repos.map(repo => {
+                    return <RepoCard
+                        key={repo.id}
+                        repo={repo}
                     />;
                 })}
                 </CardDeck>
@@ -109,7 +91,7 @@
 
         return <React.Fragment>
             <PageHeader>
-                <I18n name={'templates'}/>
+                Repositories
             </PageHeader>
             {content}
         </React.Fragment>;
@@ -118,7 +100,7 @@
     constructor(props) {
         super(props);
 
-        this.fetchTemplates = this.fetchTemplates.bind(this);
+        this.fetchRepos = this.fetchRepos.bind(this);
     }
 }
 
diff --git a/borgbutler-webapp/src/containers/WebApp.jsx b/borgbutler-webapp/src/containers/WebApp.jsx
index e7a9bf6..f947221 100644
--- a/borgbutler-webapp/src/containers/WebApp.jsx
+++ b/borgbutler-webapp/src/containers/WebApp.jsx
@@ -2,10 +2,10 @@
 import createBrowserHistory from 'history/createBrowserHistory';
 import {Route, Router, Switch} from 'react-router';
 import {connect} from 'react-redux';
-import {Badge} from 'reactstrap';
 
 import Menu from '../components/general/Menu';
 import Start from '../components/views/Start';
+import RepoListView from '../components/views/repos/RepoListView';
 import ConfigurationPage from '../components/views/config/ConfigurationPage';
 import RestServices from '../components/views/develop/RestServices';
 import {isDevelopmentMode} from '../utilities/global';
@@ -13,7 +13,6 @@
 import Footer from '../components/views/footer/Footer';
 import {loadVersion} from '../actions';
 import {getTranslation} from '../utilities/i18n';
-import I18n from "../components/general/translation/I18n";
 
 class WebApp extends React.Component {
 
@@ -26,8 +25,9 @@
     render() {
         let routes = [
             ['Start', '/', Start],
-            ['Log viewer', '/logging', LogPage],
-            ['Configuration', '/config', ConfigurationPage]
+            ['Repositories', '/repos', RepoListView],
+            [getTranslation('logviewer'), '/logging', LogPage],
+            [getTranslation('configuration'), '/config', ConfigurationPage]
         ];
 
         if (isDevelopmentMode()) {

--
Gitblit v1.10.0