From 63e9950a942c4a6f57cc0b3af4671824ace2b94f Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Thu, 20 Dec 2018 01:32:07 +0000
Subject: [PATCH] Diff view works now also for tree view.
---
borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java | 10 ++++++++++
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ArchivesRest.java | 2 +-
2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
index ddbff84..cd971c3 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
@@ -3,6 +3,8 @@
import de.micromata.borgbutler.json.borg.BorgFilesystemItem;
import lombok.Getter;
import lombok.Setter;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -102,6 +104,14 @@
*/
public List<BorgFilesystemItem> reduce(List<BorgFilesystemItem> list) {
if (mode == FileSystemFilter.Mode.TREE) {
+ if (MapUtils.isEmpty(subDirectories)) {
+ // If matches was not called before, do this now for getting all subdirectories.
+ subDirectories = new HashMap<>();
+ for (BorgFilesystemItem item : list) {
+ // Needed for building subdirectories...
+ this.matches(item);
+ }
+ }
Set<String> set = new HashSet<>();
List<BorgFilesystemItem> list2 = list;
list = new ArrayList<>();
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ArchivesRest.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ArchivesRest.java
index 14e2a20..2d75037 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ArchivesRest.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ArchivesRest.java
@@ -95,7 +95,7 @@
items = DiffTool.extractDifferences(items, diffItems);
filter.setMaxResultSize(maxSize)
.setMode(mode);
- filter.reduce(items);
+ items = filter.reduce(items);
}
return JsonUtils.toJson(items, prettyPrinter);
}
--
Gitblit v1.10.0