Clarify remote setup feedback

This commit is contained in:
Joe Julian
2026-04-06 20:35:09 -07:00
parent 400278ce0c
commit 009c4ecbf6
2 changed files with 21 additions and 4 deletions
+12 -4
View File
@@ -1537,6 +1537,7 @@ func (u *ui) advancedSyncToAction() error {
if err := u.persistSyncDialogRemoteBinding(baseURL, remotePath); err != nil { if err := u.persistSyncDialogRemoteBinding(baseURL, remotePath); err != nil {
return err return err
} }
u.showStatusMessage("Remote sync is set up for this vault.")
} }
default: default:
path := strings.TrimSpace(u.syncLocalPath.Text()) path := strings.TrimSpace(u.syncLocalPath.Text())
@@ -4736,7 +4737,7 @@ func (u *ui) securityDialogContent(gtx layout.Context) layout.Dimensions {
}, },
layout.Spacer{Height: unit.Dp(8)}.Layout, layout.Spacer{Height: unit.Dp(8)}.Layout,
func(gtx layout.Context) layout.Dimensions { func(gtx layout.Context) layout.Dimensions {
return syncDialogSummaryCard(gtx, u.theme, u.settingsDraft.Sync.SourceDefault, u.settingsDraft.Sync.DirectionDefault) return syncDialogSummaryCard(gtx, u.theme, syncDialogPurposeAdvanced, u.settingsDraft.Sync.SourceDefault, u.settingsDraft.Sync.DirectionDefault)
}, },
layout.Spacer{Height: unit.Dp(8)}.Layout, layout.Spacer{Height: unit.Dp(8)}.Layout,
func(gtx layout.Context) layout.Dimensions { func(gtx layout.Context) layout.Dimensions {
@@ -5062,7 +5063,7 @@ func (u *ui) syncDialogContent(gtx layout.Context) layout.Dimensions {
return layout.Spacer{Height: unit.Dp(12)}.Layout(gtx) return layout.Spacer{Height: unit.Dp(12)}.Layout(gtx)
}), }),
layout.Rigid(func(gtx layout.Context) layout.Dimensions { layout.Rigid(func(gtx layout.Context) layout.Dimensions {
return syncDialogSummaryCard(gtx, u.theme, u.syncSourceMode, u.syncDirection) return syncDialogSummaryCard(gtx, u.theme, u.syncDialogPurpose, u.syncSourceMode, u.syncDirection)
}), }),
layout.Rigid(layout.Spacer{Height: unit.Dp(12)}.Layout), layout.Rigid(layout.Spacer{Height: unit.Dp(12)}.Layout),
layout.Rigid(func(gtx layout.Context) layout.Dimensions { layout.Rigid(func(gtx layout.Context) layout.Dimensions {
@@ -7164,7 +7165,10 @@ func syncDialogSectionLabel(th *material.Theme, text string) layout.Widget {
} }
} }
func syncDialogSummaryCard(gtx layout.Context, th *material.Theme, source syncSourceMode, direction syncDirection) layout.Dimensions { func syncDialogSummaryText(purpose syncDialogPurpose, source syncSourceMode, direction syncDirection) string {
if purpose == syncDialogPurposeRemoteSetup {
return "Push this local vault to a WebDAV target and save that target for future sync."
}
sourceLabel := "another local vault file" sourceLabel := "another local vault file"
if source == syncSourceRemote { if source == syncSourceRemote {
sourceLabel = "another WebDAV-backed vault" sourceLabel = "another WebDAV-backed vault"
@@ -7173,6 +7177,10 @@ func syncDialogSummaryCard(gtx layout.Context, th *material.Theme, source syncSo
if direction == syncDirectionPush { if direction == syncDirectionPush {
action = "Push the current vault into" action = "Push the current vault into"
} }
return action + " " + sourceLabel + "."
}
func syncDialogSummaryCard(gtx layout.Context, th *material.Theme, purpose syncDialogPurpose, source syncSourceMode, direction syncDirection) layout.Dimensions {
return layout.Background{}.Layout(gtx, fill(color.NRGBA{R: 242, G: 245, B: 240, A: 255}), func(gtx layout.Context) layout.Dimensions { return layout.Background{}.Layout(gtx, fill(color.NRGBA{R: 242, G: 245, B: 240, A: 255}), func(gtx layout.Context) layout.Dimensions {
return layout.UniformInset(unit.Dp(10)).Layout(gtx, func(gtx layout.Context) layout.Dimensions { return layout.UniformInset(unit.Dp(10)).Layout(gtx, func(gtx layout.Context) layout.Dimensions {
return layout.Flex{Axis: layout.Vertical}.Layout(gtx, return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
@@ -7183,7 +7191,7 @@ func syncDialogSummaryCard(gtx layout.Context, th *material.Theme, source syncSo
}), }),
layout.Rigid(layout.Spacer{Height: unit.Dp(2)}.Layout), layout.Rigid(layout.Spacer{Height: unit.Dp(2)}.Layout),
layout.Rigid(func(gtx layout.Context) layout.Dimensions { layout.Rigid(func(gtx layout.Context) layout.Dimensions {
lbl := material.Label(th, unit.Sp(14), action+" "+sourceLabel+".") lbl := material.Label(th, unit.Sp(14), syncDialogSummaryText(purpose, source, direction))
lbl.Color = th.Palette.Fg lbl.Color = th.Palette.Fg
return lbl.Layout(gtx) return lbl.Layout(gtx)
}), }),
+9
View File
@@ -5958,6 +5958,9 @@ func TestUISyncDialogUsesRemoteSetupCopy(t *testing.T) {
if u.shouldShowSyncSourceChoices() { if u.shouldShowSyncSourceChoices() {
t.Fatal("shouldShowSyncSourceChoices() = true, want false for remote setup") t.Fatal("shouldShowSyncSourceChoices() = true, want false for remote setup")
} }
if got := syncDialogSummaryText(syncDialogPurposeRemoteSetup, syncSourceRemote, syncDirectionPush); got != "Push this local vault to a WebDAV target and save that target for future sync." {
t.Fatalf("syncDialogSummaryText(remote setup) = %q, want setup-specific summary", got)
}
} }
func TestUISyncDialogUsesAdvancedCopy(t *testing.T) { func TestUISyncDialogUsesAdvancedCopy(t *testing.T) {
@@ -5978,6 +5981,9 @@ func TestUISyncDialogUsesAdvancedCopy(t *testing.T) {
if !u.shouldShowSyncSourceChoices() { if !u.shouldShowSyncSourceChoices() {
t.Fatal("shouldShowSyncSourceChoices() = false, want true for advanced sync") t.Fatal("shouldShowSyncSourceChoices() = false, want true for advanced sync")
} }
if got := syncDialogSummaryText(syncDialogPurposeAdvanced, syncSourceRemote, syncDirectionPush); got != "Push the current vault into another WebDAV-backed vault." {
t.Fatalf("syncDialogSummaryText(advanced) = %q, want advanced summary", got)
}
} }
func TestUIRemoteSyncSetupPersistsBindingAfterSuccessfulPush(t *testing.T) { func TestUIRemoteSyncSetupPersistsBindingAfterSuccessfulPush(t *testing.T) {
@@ -6050,6 +6056,9 @@ func TestUIRemoteSyncSetupPersistsBindingAfterSuccessfulPush(t *testing.T) {
if got := u.recentRemotes[0].LocalVaultPath; got != currentPath { if got := u.recentRemotes[0].LocalVaultPath; got != currentPath {
t.Fatalf("recentRemotes[0].LocalVaultPath = %q, want %q", got, currentPath) t.Fatalf("recentRemotes[0].LocalVaultPath = %q, want %q", got, currentPath)
} }
if got := u.state.StatusMessage; got != "Remote sync is set up for this vault." {
t.Fatalf("StatusMessage = %q, want setup success message", got)
}
var reopened session.Manager var reopened session.Manager
if err := reopened.Open(currentPath, key); err != nil { if err := reopened.Open(currentPath, key); err != nil {