Skip to content

Commit 9767461

Browse files
authored
Merge pull request #135 from markusressel/feature/file-specific-history
Feature/file specific history
2 parents d191842 + b42be69 commit 9767461

19 files changed

Lines changed: 1395 additions & 172 deletions

internal/ui/dataset_info/dataset_info.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
)
1616

1717
type DatasetInfoComponent struct {
18+
path string
1819
application *tview.Application
1920
dataset *zfs.Dataset
2021
textView *tview.TextView
@@ -56,6 +57,7 @@ func NewDatasetInfo(application *tview.Application) *DatasetInfoComponent {
5657
}
5758

5859
func (datasetInfo *DatasetInfoComponent) SetPath(path string) {
60+
datasetInfo.path = path
5961
if datasetInfo.dataset != nil && datasetInfo.dataset.Path == path {
6062
return
6163
}
@@ -71,6 +73,13 @@ func (datasetInfo *DatasetInfoComponent) SetPath(path string) {
7173
}
7274
}
7375

76+
func (datasetInfo *DatasetInfoComponent) Refresh() {
77+
loadFunc := func(ctx context.Context) (*zfs.Dataset, error) {
78+
return zfs.FindHostDataset(datasetInfo.path)
79+
}
80+
datasetInfo.loader.Load(loadFunc)
81+
}
82+
7483
func (datasetInfo *DatasetInfoComponent) SetDataset(dataset *zfs.Dataset) {
7584
datasetInfo.dataset = dataset
7685
datasetInfo.container.SetIsLoading(false)

internal/ui/dialog/file_action_dialog.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const (
1919
FileDialogRestoreRecursiveDialogActionId
2020
FileDialogDeleteDialogActionId
2121
FileDialogCreateSnapshotDialogActionId
22+
FileDialogShowHistoryActionId
2223
)
2324

2425
func NewFileActionDialog(
@@ -75,6 +76,10 @@ func buildFileDialogOptions(file *data.FileBrowserEntry, diffBinAvailable bool)
7576
Name: "🔍 Show diff",
7677
})
7778
}
79+
dialogOptions = slices.Insert(dialogOptions, 0, &DialogOption{
80+
Id: FileDialogShowHistoryActionId,
81+
Name: "📜 Browse history / versions",
82+
})
7883
dialogOptions = slices.Insert(dialogOptions, 1, &DialogOption{
7984
Id: FileDialogRestoreFileActionId,
8085
Name: "♻️ Restore file",

internal/ui/dialog/file_action_dialog_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ func TestBuildFileDialogOptions_FileWithSnapshotAndDiff(t *testing.T) {
2424
assert.Equal(t,
2525
[]DialogActionId{
2626
FileDialogCreateSnapshotDialogActionId,
27-
FileDialogShowDiffActionId,
27+
FileDialogShowHistoryActionId,
2828
FileDialogRestoreFileActionId,
29+
FileDialogShowDiffActionId,
2930
FileDialogDeleteDialogActionId,
3031
DialogCloseActionId,
3132
},
@@ -49,8 +50,9 @@ func TestBuildFileDialogOptions_FileWithoutDiffBinary(t *testing.T) {
4950
assert.Equal(t,
5051
[]DialogActionId{
5152
FileDialogCreateSnapshotDialogActionId,
52-
FileDialogDeleteDialogActionId,
53+
FileDialogShowHistoryActionId,
5354
FileDialogRestoreFileActionId,
55+
FileDialogDeleteDialogActionId,
5456
DialogCloseActionId,
5557
},
5658
optionIds(options),
@@ -115,6 +117,7 @@ func TestBuildFileDialogOptions_DeletedFile_AlwaysHasCloseLast(t *testing.T) {
115117
assert.Equal(t,
116118
[]DialogActionId{
117119
FileDialogCreateSnapshotDialogActionId,
120+
FileDialogShowHistoryActionId,
118121
FileDialogRestoreFileActionId,
119122
DialogCloseActionId,
120123
},

0 commit comments

Comments
 (0)