Merge pull request #57 from adamslc/openclose

Michael Muré created

termui: add the ability to open/close in bug view

Change summary

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

Detailed changes

termui/show_bug.go 🔗

@@ -99,7 +99,7 @@ func (sb *showBug) layout(g *gocui.Gui) error {
 	if sb.isOnSide {
 		fmt.Fprint(v, "[a] Add label [r] Remove label")
 	} else {
-		fmt.Fprint(v, "[c] Comment [t] Change title")
+		fmt.Fprint(v, "[o] Toggle open/close [c] Comment [t] Change title")
 	}
 
 	_, err = g.SetViewOnTop(showBugInstructionView)
@@ -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,17 @@ 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 {
+	switch sb.bug.Snapshot().Status {
+	case bug.OpenStatus:
+		return sb.bug.Close()
+	case bug.ClosedStatus:
+		return sb.bug.Open()
+	default:
+		return nil
+	}
+}
+
 func (sb *showBug) addLabel(g *gocui.Gui, v *gocui.View) error {
 	c := ui.inputPopup.Activate("Add labels")