summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHubert Baumgartner <hubert@chilicode.com>2018-08-10 20:19:12 +0200
committerHubert Baumgartner <hubert@chilicode.com>2018-08-10 20:19:58 +0200
commitbfa47d3b91d930697d3c6318bfc29f171475b543 (patch)
tree39e1d679af215eaaafd948ab113ccf9e039a7fa6
parent48cea4e1c43d6a191062d33bf8b5cc9ecef3e528 (diff)
extenden delete branch with error message and confirmation
-rw-r--r--branches_panel.go12
1 files changed, 9 insertions, 3 deletions
diff --git a/branches_panel.go b/branches_panel.go
index 968096610..0327b576e 100644
--- a/branches_panel.go
+++ b/branches_panel.go
@@ -51,12 +51,18 @@ func handleNewBranch(g *gocui.Gui, v *gocui.View) error {
return nil
}
-func handleDeleteBranch(g *gocui.Gui, v *gocui.View) error {
- branch := getSelectedBranch(v)
- if output, err := gitDeleteBranch(branch.Name); err != nil {
+func handleDeleteBranch(g *gocui.Gui, v *gocui.View) error {
+ checkedOutBranch := state.Branches[0]
+ selectedBranch := getSelectedBranch(v)
+ if checkedOutBranch.Name == selectedBranch.Name {
+ return createErrorPanel(g, "You cannot delete the checked out branch!")
+ }
+ return createConfirmationPanel(g, v, "Delete Branch", "Are you sure you want delete the branch "+selectedBranch.Name+" ?", func(g *gocui.Gui, v *gocui.View) error {
+ if output, err := gitDeleteBranch(selectedBranch.Name); err != nil {
return createErrorPanel(g, output)
}
return refreshSidePanels(g)
+ }, nil)
}