diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2018-06-05 18:49:10 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2018-06-05 18:49:10 +1000 |
commit | 9c018c61388c0a37b3c8efaf5841debaba1c76fe (patch) | |
tree | 318a4e456332e56301a6b022a20146bf1149302d /files_panel.go | |
parent | d1ead5b0cf4fb400c7d89a6320621f409b999ab5 (diff) |
factoring out error panel creation
Diffstat (limited to 'files_panel.go')
-rw-r--r-- | files_panel.go | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/files_panel.go b/files_panel.go index 2c09f38bb..674cae387 100644 --- a/files_panel.go +++ b/files_panel.go @@ -91,7 +91,7 @@ func handleIgnoreFile(g *gocui.Gui, v *gocui.View) error { } func handleFileSelect(g *gocui.Gui, v *gocui.View) error { - baseString := "tab: switch to branches, space: toggle staged, c: commit changes, o: open, s: open in sublime, i: ignore" + baseString := "tab: next panel, S: stash files, space: toggle staged, c: commit changes, o: open, s: open in sublime, i: ignore" item, err := getSelectedFile(v) if err != nil { if err != ErrNoFiles { @@ -103,15 +103,33 @@ func handleFileSelect(g *gocui.Gui, v *gocui.View) error { } var optionsString string if item.Tracked { - optionsString = baseString + ", r: checkout" + optionsString = baseString + ", d: checkout" } else { - optionsString = baseString + ", r: delete" + optionsString = baseString + ", d: delete" } renderString(g, "options", optionsString) diff := getDiff(item) return renderString(g, "main", diff) } +func handleCommitPress(g *gocui.Gui, filesView *gocui.View) error { + if len(stagedFiles(state.GitFiles)) == 0 { + return createErrorPanel(g, "There are no staged files to commit") + } + createPromptPanel(g, filesView, "Commit message", func(g *gocui.Gui, v *gocui.View) error { + message := trimmedContent(v) + if message == "" { + return createErrorPanel(g, "You cannot commit without a commit message") + } + if err := gitCommit(message); err != nil { + panic(err) + } + refreshFiles(g) + return refreshCommits(g) + }) + return nil +} + func genericFileOpen(g *gocui.Gui, v *gocui.View, open func(string) (string, error)) error { file, err := getSelectedFile(v) if err != nil { @@ -155,7 +173,9 @@ func refreshFiles(g *gocui.Gui) error { } } correctCursor(filesView) - handleFileSelect(g, filesView) + if filesView == g.CurrentView() { + handleFileSelect(g, filesView) + } return nil } @@ -164,7 +184,7 @@ func pullFiles(g *gocui.Gui, v *gocui.View) error { createSimpleConfirmationPanel(g, v, "", "Pulling...") go func() { if output, err := gitPull(); err != nil { - createSimpleConfirmationPanel(g, v, "Error", output) + createErrorPanel(g, output) } else { closeConfirmationPrompt(g) refreshCommits(g) @@ -181,7 +201,7 @@ func pushFiles(g *gocui.Gui, v *gocui.View) error { createSimpleConfirmationPanel(g, v, "", "Pushing...") go func() { if output, err := gitPush(); err != nil { - createSimpleConfirmationPanel(g, v, "Error", output) + createErrorPanel(g, output) } else { closeConfirmationPrompt(g) refreshCommits(g) |