add open/close in bug view

Luke Adams created

Change summary

termui/show_bug.go | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)

Detailed changes

termui/show_bug.go 🔗

@@ -94,7 +94,7 @@ func (sb *showBug) layout(g *gocui.Gui) error {
 	}
 
 	v.Clear()
-	fmt.Fprintf(v, "[q] Save and return [←↓↑→,hjkl] Navigation ")
+	fmt.Fprintf(v, "[q] Save and return [←↓↑→,hjkl] Navigation [o] Toggle open/close ")
 
 	if sb.isOnSide {
 		fmt.Fprint(v, "[a] Add label [r] Remove label")
@@ -171,6 +171,12 @@ func (sb *showBug) keybindings(g *gocui.Gui) error {
 		return err
 	}
 
+	// Open/close
+	if err := g.SetKeybinding(showBugView, 'o', gocui.ModNone,
+		sb.toggleOpenClose); err != nil {
+		return err
+	}
+
 	// Title
 	if err := g.SetKeybinding(showBugView, 't', gocui.ModNone,
 		sb.setTitle); err != nil {
@@ -603,6 +609,14 @@ func (sb *showBug) setTitle(g *gocui.Gui, v *gocui.View) error {
 	return setTitleWithEditor(sb.bug)
 }
 
+func (sb *showBug) toggleOpenClose(g *gocui.Gui, v *gocui.View) error {
+	if sb.bug.Snapshot().Status.String() == "open" {
+		return sb.bug.Close()
+	} else {
+	return sb.bug.Open()		
+	}
+}
+
 func (sb *showBug) addLabel(g *gocui.Gui, v *gocui.View) error {
 	c := ui.inputPopup.Activate("Add labels")