bug fixes for screen primary

This commit is contained in:
sawka
2023-03-13 12:10:23 -07:00
parent 1059a10727
commit 49e56f91cd
5 changed files with 19 additions and 15 deletions
+1 -2
View File
@@ -206,8 +206,7 @@ func HandleGetScreenLines(w http.ResponseWriter, r *http.Request) {
WriteJsonError(w, err) WriteJsonError(w, err)
return return
} }
update := &sstore.ModelUpdate{ScreenLines: screenLines} WriteJsonSuccess(w, screenLines)
WriteJsonSuccess(w, update)
return return
} }
+5 -6
View File
@@ -151,10 +151,7 @@ func init() {
registerCmdFn("remote:installcancel", RemoteInstallCancelCommand) registerCmdFn("remote:installcancel", RemoteInstallCancelCommand)
registerCmdFn("remote:reset", RemoteResetCommand) registerCmdFn("remote:reset", RemoteResetCommand)
registerCmdFn("sw:resize", SwResizeCommand) registerCmdFn("screen:resize", ScreenResizeCommand)
// sw:resize
registerCmdFn("window:resize", SwResizeCommand)
registerCmdFn("line", LineCommand) registerCmdFn("line", LineCommand)
registerCmdFn("line:show", LineShowCommand) registerCmdFn("line:show", LineShowCommand)
@@ -556,6 +553,7 @@ func ScreenSetCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (ss
if ritem == nil { if ritem == nil {
return nil, fmt.Errorf("/screen:set could not resolve line %q", pk.Kwargs["line"]) return nil, fmt.Errorf("/screen:set could not resolve line %q", pk.Kwargs["line"])
} }
varsUpdated = append(varsUpdated, "line")
setNonAnchor = true setNonAnchor = true
updateMap[sstore.ScreenField_SelectedLine] = ritem.Num 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])") return nil, fmt.Errorf("/screen:set invalid anchor argument (must be [line] or [line]:[offset])")
} }
anchorLine, _ := strconv.Atoi(m[1]) anchorLine, _ := strconv.Atoi(m[1])
varsUpdated = append(varsUpdated, "anchor")
updateMap[sstore.ScreenField_AnchorLine] = anchorLine updateMap[sstore.ScreenField_AnchorLine] = anchorLine
if m[2] != "" { if m[2] != "" {
anchorOffset, _ := strconv.Atoi(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) { func ScreenShowAllCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sstore.UpdatePacket, error) {
ids, err := resolveUiIds(ctx, pk, R_Session) ids, err := resolveUiIds(ctx, pk, R_Session)
screenArr, err := sstore.GetBareSessionScreens(ctx, ids.SessionId) screenArr, err := sstore.GetSessionScreens(ctx, ids.SessionId)
if err != nil { if err != nil {
return nil, fmt.Errorf("/screen:showall error getting screen list: %v", err) 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 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) ids, err := resolveUiIds(ctx, pk, R_Session|R_Screen|R_Window)
if err != nil { if err != nil {
return nil, err return nil, err
+1 -1
View File
@@ -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) { 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 { if err != nil {
return nil, fmt.Errorf("could not retreive screens for session=%s: %v", sessionId, err) return nil, fmt.Errorf("could not retreive screens for session=%s: %v", sessionId, err)
} }
+11 -6
View File
@@ -406,6 +406,9 @@ func GetAllSessions(ctx context.Context) (*ModelUpdate, error) {
} }
query = `SELECT * FROM screen ORDER BY archived, screenidx, archivedts` query = `SELECT * FROM screen ORDER BY archived, screenidx, archivedts`
update.Screens = SelectMapsGen[*ScreenType](tx, query) update.Screens = SelectMapsGen[*ScreenType](tx, query)
for _, screen := range update.Screens {
screen.Full = true
}
query = `SELECT * FROM remote_instance` query = `SELECT * FROM remote_instance`
riArr := SelectMapsGen[*RemoteInstance](tx, query) riArr := SelectMapsGen[*RemoteInstance](tx, query)
for _, ri := range riArr { for _, ri := range riArr {
@@ -436,14 +439,15 @@ func GetScreenLinesById(ctx context.Context, screenId string) (*ScreenLinesType,
} }
// includes archived screens (does not include screen windows) // includes archived screens (does not include screen windows)
func GetBareSessionScreens(ctx context.Context, sessionId string) ([]*ScreenType, error) { func GetSessionScreens(ctx context.Context, sessionId string) ([]*ScreenType, error) {
var rtn []*ScreenType return WithTxRtn(ctx, func(tx *TxWrap) ([]*ScreenType, error) {
txErr := WithTx(ctx, func(tx *TxWrap) error {
query := `SELECT * FROM screen WHERE sessionid = ? ORDER BY archived, screenidx, archivedts` query := `SELECT * FROM screen WHERE sessionid = ? ORDER BY archived, screenidx, archivedts`
tx.Select(&rtn, query, sessionId) rtn := SelectMapsGen[*ScreenType](tx, query, sessionId)
return nil for _, screen := range rtn {
screen.Full = true
}
return rtn, nil
}) })
return rtn, txErr
} }
func GetSessionById(ctx context.Context, id string) (*SessionType, error) { 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) { return WithTxRtn(ctx, func(tx *TxWrap) (*ScreenType, error) {
query := `SELECT * FROM screen WHERE screenid = ?` query := `SELECT * FROM screen WHERE screenid = ?`
screen := GetMapGen[*ScreenType](tx, query, screenId) screen := GetMapGen[*ScreenType](tx, query, screenId)
screen.Full = true
return screen, nil return screen, nil
}) })
} }
+1
View File
@@ -414,6 +414,7 @@ type ScreenType struct {
ArchivedTs int64 `json:"archivedts,omitempty"` ArchivedTs int64 `json:"archivedts,omitempty"`
// only for updates // only for updates
Full bool `json:"full,omitempty"`
Remove bool `json:"remove,omitempty"` Remove bool `json:"remove,omitempty"`
} }