From 539bcaa982ba2d7e7d0a53ab8dfc618868709bb1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Thu, 20 Dec 2018 01:48:44 +0000
Subject: [PATCH] Display diff state and download removed files from other archive.
---
borgbutler-webapp/src/components/views/archives/FileListEntry.jsx | 19 +++++++++++++++----
borgbutler-webapp/src/components/views/archives/FileListPanel.jsx | 2 +-
borgbutler-webapp/src/components/views/archives/FileListTable.jsx | 4 +++-
3 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/borgbutler-webapp/src/components/views/archives/FileListEntry.jsx b/borgbutler-webapp/src/components/views/archives/FileListEntry.jsx
index 9c13adb..bd8307f 100644
--- a/borgbutler-webapp/src/components/views/archives/FileListEntry.jsx
+++ b/borgbutler-webapp/src/components/views/archives/FileListEntry.jsx
@@ -33,18 +33,29 @@
});
}
-function FileListEntry({archiveId, entry, search, mode, changeCurrentDirectory}) {
+function FileListEntry({archiveId, diffArchiveId, entry, search, mode, changeCurrentDirectory}) {
+ let displayPath = entry.displayPath;
+ let downloadArchiveId = archiveId;
+ if (entry.diffStatus === 'NEW') {
+ displayPath = "New: " + displayPath;
+ } else if (entry.diffStatus === 'REMOVED') {
+ displayPath = "Rem: " + displayPath;
+ // Download removed files from other archive.
+ downloadArchiveId = diffArchiveId;
+ } else if (entry.diffStatus === 'MODIFIED') {
+ displayPath = "Mod: " + displayPath;
+ }
let path;
if (mode === 'tree' && entry.type === 'd') {
- path = <Button color={'link'} onClick={() => changeCurrentDirectory(entry.path)}><Highlight search={search}>{entry.displayPath}</Highlight></Button>;
+ path = <Button color={'link'} onClick={() => changeCurrentDirectory(entry.path)}><Highlight search={search}>{displayPath}</Highlight></Button>;
} else {
- path = <Highlight search={search}>{entry.displayPath}</Highlight>;
+ path = <Highlight search={search}>{displayPath}</Highlight>;
}
return (
<tr>
<td className={'tt'}>{path}</td>
<td className={'tt'}>
- <div className={'btn'} onClick={() => download(archiveId, entry.fileNumber)}>
+ <div className={'btn'} onClick={() => download(downloadArchiveId, entry.fileNumber)}>
<IconDownload/></div>
</td>
<td className={'tt'}>{humanFileSize(entry.size, true, true)}</td>
diff --git a/borgbutler-webapp/src/components/views/archives/FileListPanel.jsx b/borgbutler-webapp/src/components/views/archives/FileListPanel.jsx
index c78bc65..0f94f96 100644
--- a/borgbutler-webapp/src/components/views/archives/FileListPanel.jsx
+++ b/borgbutler-webapp/src/components/views/archives/FileListPanel.jsx
@@ -98,7 +98,6 @@
</React.Fragment>;
} else {
if (this.state.filter.mode === 'tree' && this.state.filter.currentDirectory.length > 0) {
- console.log(this.state.filter.currentDirectory);
let dirs = this.state.filter.currentDirectory.split('/');
let breadcrumbs = [];
for (let i = 0; i < dirs.length - 1; i++) {
@@ -135,6 +134,7 @@
{breadcrumb}
<FileListTable
archiveId={this.props.archiveId}
+ diffArchiveId={this.state.filter.diffArchiveId}
entries={this.state.fileList}
search={this.state.filter.search}
mode={this.state.filter.mode}
diff --git a/borgbutler-webapp/src/components/views/archives/FileListTable.jsx b/borgbutler-webapp/src/components/views/archives/FileListTable.jsx
index 50b95a4..8b03adc 100644
--- a/borgbutler-webapp/src/components/views/archives/FileListTable.jsx
+++ b/borgbutler-webapp/src/components/views/archives/FileListTable.jsx
@@ -3,7 +3,7 @@
import {Table} from 'reactstrap';
import FileListEntry from './FileListEntry';
-function FileListTable({archiveId, entries, search, mode, changeCurrentDirectory}) {
+function FileListTable({archiveId, diffArchiveId, entries, search, mode, changeCurrentDirectory}) {
const lowercaseSearch = search.split(' ')[0].toLowerCase();
return (
<Table striped bordered hover size={'sm'} responsive>
@@ -20,6 +20,7 @@
{entries
.map((entry, index) => <FileListEntry
archiveId={archiveId}
+ diffArchiveId={diffArchiveId}
entry={entry}
search={lowercaseSearch}
mode={mode}
@@ -33,6 +34,7 @@
FileListTable.propTypes = {
archiveId: PropTypes.string,
+ diffArchiveId: PropTypes.string,
entries: PropTypes.array,
search: PropTypes.string,
mode: PropTypes.string,
--
Gitblit v1.10.0