From 2affa1a03f8f4713c6d7dad936f3d494179f7e6e Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 15 Dec 2018 19:41:50 +0000
Subject: [PATCH] ...

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java  |    7 ++++---
 borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java |    4 ++++
 borgbutler-webapp/src/components/views/repos/ArchiveView.jsx                     |    8 ++++----
 borgbutler-webapp/src/components/views/repos/RepoArchiveListView.jsx             |    5 +++--
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java     |   10 ++++++----
 5 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
index bfd1cd2..bf96c44 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -67,6 +67,8 @@
         }
         if (repository == null) {
             log.warn("Repo with name '" + repoConfig.getRepo() + "' not found.");
+        } else {
+            repoConfig.setId(repository.getId());
         }
         return repository;
     }
@@ -130,15 +132,15 @@
     }
 
     /**
-     * @param repoName
+     * @param repoIdOrName
      * @param archiveIdOrName
      * @param forceReload     If true, any cache value will be ignored. Default is false.
      * @return
      */
-    public Archive getArchive(String repoName, String archiveIdOrName, boolean forceReload) {
-        BorgRepoConfig repoConfig = ConfigurationHandler.getConfiguration().getRepoConfig(repoName);
+    public Archive getArchive(String repoIdOrName, String archiveIdOrName, boolean forceReload) {
+        BorgRepoConfig repoConfig = ConfigurationHandler.getConfiguration().getRepoConfig(repoIdOrName);
         if (repoConfig == null) {
-            log.error("Can't find configured repo '" + repoName + "'.");
+            log.error("Can't find configured repo '" + repoIdOrName + "'.");
             return null;
         }
         return getArchive(repoConfig, archiveIdOrName, forceReload);
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java
index 3212946..25b78b4 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/BorgRepoConfig.java
@@ -1,5 +1,6 @@
 package de.micromata.borgbutler.config;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -19,4 +20,7 @@
     private String passphrase;
     @Getter @Setter
     private String passwordCommand;
+    @Getter @Setter
+    @JsonIgnore
+    private String id;
 }
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
index d22c314..cc85168 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
@@ -2,6 +2,7 @@
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -24,12 +25,12 @@
         repoConfigs.add(repoConfig);
     }
 
-    public BorgRepoConfig getRepoConfig(String name) {
-        if (name == null) {
+    public BorgRepoConfig getRepoConfig(String idOrName) {
+        if (idOrName == null) {
             return null;
         }
         for (BorgRepoConfig repoConfig : repoConfigs) {
-            if (name.equals(repoConfig.getRepo())) {
+            if (StringUtils.equals(idOrName, repoConfig.getRepo()) || StringUtils.equals(idOrName, repoConfig.getId())) {
                 return repoConfig;
             }
         }
diff --git a/borgbutler-webapp/src/components/views/repos/ArchiveView.jsx b/borgbutler-webapp/src/components/views/repos/ArchiveView.jsx
index ad889b3..3ed8c4a 100644
--- a/borgbutler-webapp/src/components/views/repos/ArchiveView.jsx
+++ b/borgbutler-webapp/src/components/views/repos/ArchiveView.jsx
@@ -8,8 +8,8 @@
 class ArchiveView extends React.Component {
 
     state = {
-        repo: this.props.match.params.repoId,
-        archive: this.props.match.params.archiveId,
+        repoId: this.props.match.params.repoId,
+        archiveId: this.props.match.params.archiveId,
         isFetching: false,
         activeTab: '1',
     };
@@ -25,8 +25,8 @@
             failed: false
         });
         fetch(getRestServiceUrl('repos/archive', {
-            repo: this.state.repo,
-            archive: this.state.archive,
+            repo: this.state.repoId,
+            archive: this.state.archiveId,
             force: force
         }), {
             method: 'GET',
diff --git a/borgbutler-webapp/src/components/views/repos/RepoArchiveListView.jsx b/borgbutler-webapp/src/components/views/repos/RepoArchiveListView.jsx
index ffebf88..22eb67f 100644
--- a/borgbutler-webapp/src/components/views/repos/RepoArchiveListView.jsx
+++ b/borgbutler-webapp/src/components/views/repos/RepoArchiveListView.jsx
@@ -1,5 +1,6 @@
 import React from 'react'
 import {Nav, NavLink, TabContent, Table, TabPane} from 'reactstrap';
+import { Link } from "react-router-dom";
 import classNames from 'classnames';
 import {PageHeader} from '../../general/BootstrapComponents';
 import {getRestServiceUrl, humanFileSize} from '../../../utilities/global';
@@ -110,8 +111,8 @@
                             {repo.archives.map((archive) => {
                                 // Return the element. Also pass key
                                 return (
-                                    <tr key={archive.id} onClick={() => this.redirectToArchive(archive)}>
-                                        <td>{archive.archive}</td>
+                                    <tr key={archive.id}>
+                                        <td><Link to={`/archives/${repo.id}/${archive.id}`}>{archive.archive}</Link></td>
                                         <td>{archive.time}</td>
                                         <td>{archive.id}</td>
                                     </tr>);

--
Gitblit v1.10.0