diff --git a/cmd/formatter/shortcut.go b/cmd/formatter/shortcut.go index 0c78d3e8eb..5ce3769d07 100644 --- a/cmd/formatter/shortcut.go +++ b/cmd/formatter/shortcut.go @@ -197,14 +197,17 @@ func (lk *LogKeyboard) navigationMenu() string { } var openDDUI string + var openDDWatchDocs string if openDDInfo != "" { openDDUI = navColor(" ") + openDDWatchDocs = navColor(" ") } if lk.IsDDComposeUIActive { openDDUI = openDDUI + shortcutKeyColor("o") + navColor(" View Config") + openDDWatchDocs = openDDWatchDocs + shortcutKeyColor("i") + navColor(" Watch Docs") } var watchInfo string - if openDDInfo != "" || openDDUI != "" { + if openDDInfo != "" || openDDUI != "" || openDDWatchDocs != "" { watchInfo = navColor(" ") } var isEnabled = " Enable" @@ -212,7 +215,7 @@ func (lk *LogKeyboard) navigationMenu() string { isEnabled = " Disable" } watchInfo = watchInfo + shortcutKeyColor("w") + navColor(isEnabled+" Watch") - return openDDInfo + openDDUI + watchInfo + return openDDInfo + openDDUI + watchInfo + openDDWatchDocs } func (lk *LogKeyboard) clearNavigationMenu() { @@ -261,6 +264,22 @@ func (lk *LogKeyboard) openDDComposeUI(ctx context.Context, project *types.Proje }), ) } +func (lk *LogKeyboard) openDDWatchDocs(ctx context.Context, project *types.Project) { + if !lk.IsDDComposeUIActive { + return + } + eg.Go(tracing.EventWrapFuncForErrGroup(ctx, "menu/gui/watch", tracing.SpanOptions{}, + func(ctx context.Context) error { + link := fmt.Sprintf("docker-desktop://dashboard/docker-compose/%s/watch", project.Name) + err := open.Run(link) + if err != nil { + err = fmt.Errorf("Could not open Docker Desktop Compose UI") + lk.keyboardError("Watch Docs", err) + } + return err + }), + ) +} func (lk *LogKeyboard) keyboardError(prefix string, err error) { lk.kError.addError(prefix, err) @@ -314,6 +333,8 @@ func (lk *LogKeyboard) HandleKeyEvents(event keyboard.KeyEvent, ctx context.Cont lk.StartWatch(ctx, doneCh, project, options) case 'o': lk.openDDComposeUI(ctx, project) + case 'i': + lk.openDDWatchDocs(ctx, project) } switch key := event.Key; key { case keyboard.KeyCtrlC: