PE 125 new tab flow (#43)

* please sync

* can select connection. now need add conection

* latest for discussion

* solved "autoselect connection" issue

* ready for PR

* pair programming, fix some issues with new tab flow

* final updates for new connection flow.  integrate add new connection with error messages.  add an option to cr to not create the line/history (non-interactive use)

---------

Co-authored-by: sawka
This commit is contained in:
anandamarsh
2023-10-23 23:22:18 -07:00
committed by GitHub
co-authored by sawka
parent 4000baa6c5
commit 6016302814
14 changed files with 342 additions and 113 deletions
+15 -3
View File
@@ -21,6 +21,7 @@ import (
"time"
"unicode"
"github.com/google/uuid"
"github.com/wavetermdev/waveterm/waveshell/pkg/base"
"github.com/wavetermdev/waveterm/waveshell/pkg/packet"
"github.com/wavetermdev/waveterm/waveshell/pkg/shexec"
@@ -33,7 +34,6 @@ import (
"github.com/wavetermdev/waveterm/wavesrv/pkg/scpacket"
"github.com/wavetermdev/waveterm/wavesrv/pkg/sstore"
"github.com/wavetermdev/waveterm/wavesrv/pkg/utilfn"
"github.com/google/uuid"
)
const (
@@ -1116,7 +1116,7 @@ func RemoteNewCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (ss
}
editArgs, err := parseRemoteEditArgs(true, pk, false)
if err != nil {
return makeRemoteEditErrorReturn_new(visualEdit, fmt.Errorf("/remote:new %v", err))
return nil, fmt.Errorf("/remote:new %v", err)
}
r := &sstore.RemoteType{
RemoteId: scbase.GenPromptUUID(),
@@ -1134,7 +1134,7 @@ func RemoteNewCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (ss
}
err = remote.AddRemote(ctx, r, true)
if err != nil {
return makeRemoteEditErrorReturn_new(visualEdit, fmt.Errorf("cannot create remote %q: %v", r.RemoteCanonicalName, err))
return nil, fmt.Errorf("cannot create remote %q: %v", r.RemoteCanonicalName, err)
}
// SUCCESS
return &sstore.ModelUpdate{
@@ -1580,6 +1580,18 @@ func CrCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.Up
if err != nil {
return nil, fmt.Errorf("/%s error: cannot update curremote: %w", GetCmdStr(pk), err)
}
noHist := resolveBool(pk.Kwargs["nohist"], false)
if noHist {
screen, err := sstore.GetScreenById(ctx, ids.ScreenId)
if err != nil {
return nil, fmt.Errorf("/% error: cannot resolve screen for update: %w", err)
}
update := &sstore.ModelUpdate{
Screens: []*sstore.ScreenType{screen},
Interactive: pk.Interactive,
}
return update, nil
}
outputStr := fmt.Sprintf("connected to %s", GetFullRemoteDisplayName(rptr, rstate))
cmd, err := makeStaticCmd(ctx, GetCmdStr(pk), ids, pk.GetRawStr(), []byte(outputStr))
if err != nil {