diff --git a/docs/keybindings/Keybindings_de.md b/docs/keybindings/Keybindings_de.md index 2ec26c14..ea89147d 100644 --- a/docs/keybindings/Keybindings_de.md +++ b/docs/keybindings/Keybindings_de.md @@ -42,6 +42,7 @@ R: zeige Neustartoptionen c: führe vordefinierten benutzerdefinierten Befehl aus b: view bulk commands + w: open in browser (first port is http) enter: fokussieren aufs Hauptpanel diff --git a/docs/keybindings/Keybindings_en.md b/docs/keybindings/Keybindings_en.md index ac16e92e..85e67026 100644 --- a/docs/keybindings/Keybindings_en.md +++ b/docs/keybindings/Keybindings_en.md @@ -42,6 +42,7 @@ R: view restart options c: run predefined custom command b: view bulk commands + w: open in browser (first port is http) enter: focus main panel diff --git a/docs/keybindings/Keybindings_nl.md b/docs/keybindings/Keybindings_nl.md index 10f7d524..f0f50dbc 100644 --- a/docs/keybindings/Keybindings_nl.md +++ b/docs/keybindings/Keybindings_nl.md @@ -42,6 +42,7 @@ R: bekijk herstart opties c: draai een vooraf bedacht aangepaste opdracht b: view bulk commands + w: open in browser (first port is http) enter: focus hoofdpaneel diff --git a/docs/keybindings/Keybindings_pl.md b/docs/keybindings/Keybindings_pl.md index af32ec47..a902386f 100644 --- a/docs/keybindings/Keybindings_pl.md +++ b/docs/keybindings/Keybindings_pl.md @@ -42,6 +42,7 @@ R: pokaż opcje restartu c: wykonaj predefiniowaną własną komende b: view bulk commands + w: open in browser (first port is http) enter: skup na głównym panelu diff --git a/docs/keybindings/Keybindings_tr.md b/docs/keybindings/Keybindings_tr.md index a7079d42..85b43165 100644 --- a/docs/keybindings/Keybindings_tr.md +++ b/docs/keybindings/Keybindings_tr.md @@ -42,6 +42,7 @@ R: yeniden başlatma seçeneklerini görüntüle c: önceden tanımlanmış özel komutu çalıştır b: view bulk commands + w: open in browser (first port is http) enter: ana panele odaklan diff --git a/pkg/gui/containers_panel.go b/pkg/gui/containers_panel.go index 8aabc66f..7b8a172e 100644 --- a/pkg/gui/containers_panel.go +++ b/pkg/gui/containers_panel.go @@ -597,6 +597,11 @@ func (gui *Gui) handleContainersOpenInBrowserCommand(g *gocui.Gui, v *gocui.View if err != nil { return nil } + + return gui.openContainerInBrowser(container) +} + +func (gui *Gui) openContainerInBrowser(container *commands.Container) error { // skip if no any ports if len(container.Container.Ports) == 0 { return nil diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index d7784a41..cfb9c42f 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -346,6 +346,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.handleServicesBulkCommand, Description: gui.Tr.ViewBulkCommands, }, + { + ViewName: "services", + Key: 'w', + Modifier: gocui.ModNone, + Handler: gui.handleServicesOpenInBrowserCommand, + Description: gui.Tr.OpenInBrowser, + }, { ViewName: "images", Key: '[', diff --git a/pkg/gui/services_panel.go b/pkg/gui/services_panel.go index 460a3a07..fd2bdd45 100644 --- a/pkg/gui/services_panel.go +++ b/pkg/gui/services_panel.go @@ -409,3 +409,17 @@ func (gui *Gui) handleServicesBulkCommand(g *gocui.Gui, v *gocui.View) error { return gui.createBulkCommandMenu(bulkCommands, commandObject) } + +func (gui *Gui) handleServicesOpenInBrowserCommand(g *gocui.Gui, v *gocui.View) error { + service, err := gui.getSelectedService() + if err != nil { + return nil + } + + container := service.Container + if container == nil { + return gui.createErrorPanel(gui.g, gui.Tr.NoContainers) + } + + return gui.openContainerInBrowser(container) +}