From 92bce7de43c13c26f74d9e4bdb625be9acc510c0 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Sat, 23 Nov 2024 18:03:43 +0100 Subject: [PATCH] Pass a remote branch to ConfirmDeleteRemote Since we want to select multiselections, this will make it easier to pass a slice of remote branches. It does require that for the case of the local branches panel we need to synthesize a RemoteBranch object from the selected local branch, but that's not hard. --- pkg/gui/controllers/branches_controller.go | 3 ++- pkg/gui/controllers/helpers/branches_helper.go | 10 +++++----- pkg/gui/controllers/remote_branches_controller.go | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/gui/controllers/branches_controller.go b/pkg/gui/controllers/branches_controller.go index 153fdd0af..131c7f677 100644 --- a/pkg/gui/controllers/branches_controller.go +++ b/pkg/gui/controllers/branches_controller.go @@ -525,7 +525,8 @@ func (self *BranchesController) localDelete(branch *models.Branch) error { } func (self *BranchesController) remoteDelete(branch *models.Branch) error { - return self.c.Helpers().BranchesHelper.ConfirmDeleteRemote(branch.UpstreamRemote, branch.UpstreamBranch) + remoteBranch := &models.RemoteBranch{Name: branch.UpstreamBranch, RemoteName: branch.UpstreamRemote} + return self.c.Helpers().BranchesHelper.ConfirmDeleteRemote(remoteBranch) } func (self *BranchesController) localAndRemoteDelete(branch *models.Branch) error { diff --git a/pkg/gui/controllers/helpers/branches_helper.go b/pkg/gui/controllers/helpers/branches_helper.go index fdd72e188..e2c83960c 100644 --- a/pkg/gui/controllers/helpers/branches_helper.go +++ b/pkg/gui/controllers/helpers/branches_helper.go @@ -66,18 +66,18 @@ func (self *BranchesHelper) ConfirmLocalDelete(branch *models.Branch) error { return nil } -func (self *BranchesHelper) ConfirmDeleteRemote(remoteName string, branchName string) error { +func (self *BranchesHelper) ConfirmDeleteRemote(remoteBranch *models.RemoteBranch) error { title := utils.ResolvePlaceholderString( self.c.Tr.DeleteBranchTitle, map[string]string{ - "selectedBranchName": branchName, + "selectedBranchName": remoteBranch.Name, }, ) prompt := utils.ResolvePlaceholderString( self.c.Tr.DeleteRemoteBranchPrompt, map[string]string{ - "selectedBranchName": branchName, - "upstream": remoteName, + "selectedBranchName": remoteBranch.Name, + "upstream": remoteBranch.RemoteName, }, ) self.c.Confirm(types.ConfirmOpts{ @@ -86,7 +86,7 @@ func (self *BranchesHelper) ConfirmDeleteRemote(remoteName string, branchName st HandleConfirm: func() error { return self.c.WithWaitingStatus(self.c.Tr.DeletingStatus, func(task gocui.Task) error { self.c.LogAction(self.c.Tr.Actions.DeleteRemoteBranch) - if err := self.c.Git().Remote.DeleteRemoteBranch(task, remoteName, branchName); err != nil { + if err := self.c.Git().Remote.DeleteRemoteBranch(task, remoteBranch.RemoteName, remoteBranch.Name); err != nil { return err } return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.BRANCHES, types.REMOTES}}) diff --git a/pkg/gui/controllers/remote_branches_controller.go b/pkg/gui/controllers/remote_branches_controller.go index 772baf4fa..1b590a97b 100644 --- a/pkg/gui/controllers/remote_branches_controller.go +++ b/pkg/gui/controllers/remote_branches_controller.go @@ -133,7 +133,7 @@ func (self *RemoteBranchesController) context() *context.RemoteBranchesContext { } func (self *RemoteBranchesController) delete(selectedBranch *models.RemoteBranch) error { - return self.c.Helpers().BranchesHelper.ConfirmDeleteRemote(selectedBranch.RemoteName, selectedBranch.Name) + return self.c.Helpers().BranchesHelper.ConfirmDeleteRemote(selectedBranch) } func (self *RemoteBranchesController) merge(selectedBranch *models.RemoteBranch) error {