mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-02-23 02:51:26 +01:00
bug fixes for screen primary
This commit is contained in:
parent
1059a10727
commit
49e56f91cd
@ -206,8 +206,7 @@ func HandleGetScreenLines(w http.ResponseWriter, r *http.Request) {
|
||||
WriteJsonError(w, err)
|
||||
return
|
||||
}
|
||||
update := &sstore.ModelUpdate{ScreenLines: screenLines}
|
||||
WriteJsonSuccess(w, update)
|
||||
WriteJsonSuccess(w, screenLines)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -151,10 +151,7 @@ func init() {
|
||||
registerCmdFn("remote:installcancel", RemoteInstallCancelCommand)
|
||||
registerCmdFn("remote:reset", RemoteResetCommand)
|
||||
|
||||
registerCmdFn("sw:resize", SwResizeCommand)
|
||||
|
||||
// sw:resize
|
||||
registerCmdFn("window:resize", SwResizeCommand)
|
||||
registerCmdFn("screen:resize", ScreenResizeCommand)
|
||||
|
||||
registerCmdFn("line", LineCommand)
|
||||
registerCmdFn("line:show", LineShowCommand)
|
||||
@ -556,6 +553,7 @@ func ScreenSetCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (ss
|
||||
if ritem == nil {
|
||||
return nil, fmt.Errorf("/screen:set could not resolve line %q", pk.Kwargs["line"])
|
||||
}
|
||||
varsUpdated = append(varsUpdated, "line")
|
||||
setNonAnchor = true
|
||||
updateMap[sstore.ScreenField_SelectedLine] = ritem.Num
|
||||
}
|
||||
@ -565,6 +563,7 @@ func ScreenSetCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (ss
|
||||
return nil, fmt.Errorf("/screen:set invalid anchor argument (must be [line] or [line]:[offset])")
|
||||
}
|
||||
anchorLine, _ := strconv.Atoi(m[1])
|
||||
varsUpdated = append(varsUpdated, "anchor")
|
||||
updateMap[sstore.ScreenField_AnchorLine] = anchorLine
|
||||
if m[2] != "" {
|
||||
anchorOffset, _ := strconv.Atoi(m[2])
|
||||
@ -970,7 +969,7 @@ func RemoteShowAllCommand(ctx context.Context, pk *scpacket.FeCommandPacketType)
|
||||
|
||||
func ScreenShowAllCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.UpdatePacket, error) {
|
||||
ids, err := resolveUiIds(ctx, pk, R_Session)
|
||||
screenArr, err := sstore.GetBareSessionScreens(ctx, ids.SessionId)
|
||||
screenArr, err := sstore.GetSessionScreens(ctx, ids.SessionId)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("/screen:showall error getting screen list: %v", err)
|
||||
}
|
||||
@ -1991,7 +1990,7 @@ func resizeRunningCommand(ctx context.Context, cmd *sstore.CmdType, newCols int)
|
||||
return nil
|
||||
}
|
||||
|
||||
func SwResizeCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.UpdatePacket, error) {
|
||||
func ScreenResizeCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.UpdatePacket, error) {
|
||||
ids, err := resolveUiIds(ctx, pk, R_Session|R_Screen|R_Window)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -291,7 +291,7 @@ func resolveUiIds(ctx context.Context, pk *scpacket.FeCommandPacketType, rtype i
|
||||
}
|
||||
|
||||
func resolveSessionScreen(ctx context.Context, sessionId string, screenArg string, curScreenArg string) (*ResolveItem, error) {
|
||||
screens, err := sstore.GetBareSessionScreens(ctx, sessionId)
|
||||
screens, err := sstore.GetSessionScreens(ctx, sessionId)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not retreive screens for session=%s: %v", sessionId, err)
|
||||
}
|
||||
|
@ -406,6 +406,9 @@ func GetAllSessions(ctx context.Context) (*ModelUpdate, error) {
|
||||
}
|
||||
query = `SELECT * FROM screen ORDER BY archived, screenidx, archivedts`
|
||||
update.Screens = SelectMapsGen[*ScreenType](tx, query)
|
||||
for _, screen := range update.Screens {
|
||||
screen.Full = true
|
||||
}
|
||||
query = `SELECT * FROM remote_instance`
|
||||
riArr := SelectMapsGen[*RemoteInstance](tx, query)
|
||||
for _, ri := range riArr {
|
||||
@ -436,14 +439,15 @@ func GetScreenLinesById(ctx context.Context, screenId string) (*ScreenLinesType,
|
||||
}
|
||||
|
||||
// includes archived screens (does not include screen windows)
|
||||
func GetBareSessionScreens(ctx context.Context, sessionId string) ([]*ScreenType, error) {
|
||||
var rtn []*ScreenType
|
||||
txErr := WithTx(ctx, func(tx *TxWrap) error {
|
||||
func GetSessionScreens(ctx context.Context, sessionId string) ([]*ScreenType, error) {
|
||||
return WithTxRtn(ctx, func(tx *TxWrap) ([]*ScreenType, error) {
|
||||
query := `SELECT * FROM screen WHERE sessionid = ? ORDER BY archived, screenidx, archivedts`
|
||||
tx.Select(&rtn, query, sessionId)
|
||||
return nil
|
||||
rtn := SelectMapsGen[*ScreenType](tx, query, sessionId)
|
||||
for _, screen := range rtn {
|
||||
screen.Full = true
|
||||
}
|
||||
return rtn, nil
|
||||
})
|
||||
return rtn, txErr
|
||||
}
|
||||
|
||||
func GetSessionById(ctx context.Context, id string) (*SessionType, error) {
|
||||
@ -678,6 +682,7 @@ func GetScreenById(ctx context.Context, screenId string) (*ScreenType, error) {
|
||||
return WithTxRtn(ctx, func(tx *TxWrap) (*ScreenType, error) {
|
||||
query := `SELECT * FROM screen WHERE screenid = ?`
|
||||
screen := GetMapGen[*ScreenType](tx, query, screenId)
|
||||
screen.Full = true
|
||||
return screen, nil
|
||||
})
|
||||
}
|
||||
|
@ -414,6 +414,7 @@ type ScreenType struct {
|
||||
ArchivedTs int64 `json:"archivedts,omitempty"`
|
||||
|
||||
// only for updates
|
||||
Full bool `json:"full,omitempty"`
|
||||
Remove bool `json:"remove,omitempty"`
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user