diff options
author | Luke Adams <lukeclydeadams@gmail.com> | 2018-10-04 10:31:46 -0600 |
---|---|---|
committer | Luke Adams <lukeclydeadams@gmail.com> | 2018-10-04 10:51:19 -0600 |
commit | c96015e634724a4ab02ab8dbf9c3994156e8bea7 (patch) | |
tree | 1862884f89b4e9f5362c408bca2c510c71f8f593 /termui/show_bug.go | |
parent | e47c07681c6ddb458028a553ec3cb306b2e97e37 (diff) | |
download | git-bug-c96015e634724a4ab02ab8dbf9c3994156e8bea7.tar.gz |
Enable editing comments in the term ui
Diffstat (limited to 'termui/show_bug.go')
-rw-r--r-- | termui/show_bug.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/termui/show_bug.go b/termui/show_bug.go index aa52c8a3..6df744bd 100644 --- a/termui/show_bug.go +++ b/termui/show_bug.go @@ -184,6 +184,12 @@ func (sb *showBug) keybindings(g *gocui.Gui) error { return err } + // Edit + if err := g.SetKeybinding(showBugView, 'e', gocui.ModNone, + sb.edit); err != nil { + return err + } + // Labels if err := g.SetKeybinding(showBugView, 'a', gocui.ModNone, sb.addLabel); err != nil { @@ -621,6 +627,32 @@ func (sb *showBug) toggleOpenClose(g *gocui.Gui, v *gocui.View) error { } } +func (sb *showBug) edit(g *gocui.Gui, v *gocui.View) error { + if sb.isOnSide { + ui.msgPopup.Activate(msgPopupErrorTitle, "Selected field is not editable.") + return nil + } + + snap := sb.bug.Snapshot() + + op, err := snap.SearchTimelineItem(git.Hash(sb.selected)) + if err != nil { + return err + } + + switch op.(type) { + case *bug.AddCommentTimelineItem: + message := op.(*bug.AddCommentTimelineItem).Message + return editCommentWithEditor(sb.bug, op.Hash(), message) + case *bug.CreateTimelineItem: + preMessage := op.(*bug.CreateTimelineItem).Message + return editCommentWithEditor(sb.bug, op.Hash(), preMessage) + } + + ui.msgPopup.Activate(msgPopupErrorTitle, "Selected field is not editable.") + return nil +} + func (sb *showBug) addLabel(g *gocui.Gui, v *gocui.View) error { c := ui.inputPopup.Activate("Add labels") |