summaryrefslogtreecommitdiffstats
path: root/pkg/gui
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-10-01 09:04:09 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-10-02 08:09:42 +1000
commit86dd9d87dd046e09580f0f0caad109c97aa70546 (patch)
tree90f0a4b933545316056d00038d599771f884f422 /pkg/gui
parentda3e00823f733743c2bd8076d13955dbed9fcbae (diff)
allow updating submodule
Diffstat (limited to 'pkg/gui')
-rw-r--r--pkg/gui/keybindings.go17
-rw-r--r--pkg/gui/submodules_panel.go30
2 files changed, 37 insertions, 10 deletions
diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go
index 992f32313..5cd794dcc 100644
--- a/pkg/gui/keybindings.go
+++ b/pkg/gui/keybindings.go
@@ -1587,19 +1587,18 @@ func (gui *Gui) GetInitialKeybindings() []*Binding {
Description: gui.Tr.SLocalize("enterSubmodule"),
},
{
- ViewName: "files",
- Contexts: []string{SUBMODULES_CONTEXT_KEY},
- Key: gui.getKey("universal.remove"),
-
- Handler: gui.forSubmodule(gui.handleRemoveSubmodule),
- Description: gui.Tr.SLocalize("removeSubmodule"),
+ ViewName: "files",
+ Contexts: []string{SUBMODULES_CONTEXT_KEY},
+ Key: gui.getKey("universal.remove"),
+ Handler: gui.forSubmodule(gui.handleResetRemoveSubmodule),
+ Description: gui.Tr.SLocalize("viewResetAndRemoveOptions"),
},
{
ViewName: "files",
Contexts: []string{SUBMODULES_CONTEXT_KEY},
- Key: gui.getKey("u"),
- Handler: gui.forSubmodule(gui.handleResetSubmodule),
- Description: gui.Tr.SLocalize("submoduleStashAndReset"),
+ Key: gui.getKey("submodules.update"),
+ Handler: gui.forSubmodule(gui.handleUpdateSubmodule),
+ Description: gui.Tr.SLocalize("submoduleUpdate"),
},
{
ViewName: "files",
diff --git a/pkg/gui/submodules_panel.go b/pkg/gui/submodules_panel.go
index d9951f2f0..c620efbbe 100644
--- a/pkg/gui/submodules_panel.go
+++ b/pkg/gui/submodules_panel.go
@@ -77,7 +77,7 @@ func (gui *Gui) enterSubmodule(submodule *models.SubmoduleConfig) error {
return gui.dispatchSwitchToRepo(submodule.Path)
}
-func (gui *Gui) handleRemoveSubmodule(submodule *models.SubmoduleConfig) error {
+func (gui *Gui) removeSubmodule(submodule *models.SubmoduleConfig) error {
return gui.ask(askOpts{
title: gui.Tr.SLocalize("RemoveSubmodule"),
prompt: gui.Tr.SLocalizef("RemoveSubmodulePrompt", submodule.Name),
@@ -174,3 +174,31 @@ func (gui *Gui) forSubmodule(callback func(*models.SubmoduleConfig) error) func(
},
)
}
+
+func (gui *Gui) handleResetRemoveSubmodule(submodule *models.SubmoduleConfig) error {
+ menuItems := []*menuItem{
+ {
+ displayString: gui.Tr.SLocalize("submoduleStashAndReset"),
+ onPress: func() error {
+ return gui.resetSubmodule(submodule)
+ },
+ },
+ {
+ displayString: gui.Tr.SLocalize("removeSubmodule"),
+ onPress: func() error {
+ return gui.removeSubmodule(submodule)
+ },
+ },
+ }
+
+ return gui.createMenu(submodule.Name, menuItems, createMenuOptions{showCancel: true})
+}
+
+func (gui *Gui) handleUpdateSubmodule(submodule *models.SubmoduleConfig) error {
+ return gui.WithWaitingStatus(gui.Tr.SLocalize("updatingSubmoduleStatus"), func() error {
+ err := gui.GitCommand.SubmoduleUpdate(submodule.Path)
+ gui.handleCredentialsPopup(err)
+
+ return gui.refreshSidePanels(refreshOptions{scope: []int{SUBMODULES}})
+ })
+}