bugfixes for screen archives

This commit is contained in:
sawka
2022-12-26 12:38:47 -08:00
parent 6bc948af5d
commit a485294f0b
3 changed files with 10 additions and 7 deletions
+1 -1
View File
@@ -949,7 +949,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.GetSessionScreens(ctx, ids.SessionId)
screenArr, err := sstore.GetBareSessionScreens(ctx, ids.SessionId)
if err != nil {
return nil, fmt.Errorf("/screen:showall error getting screen list: %v", err)
}
+3 -3
View File
@@ -280,7 +280,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.GetSessionScreens(ctx, sessionId)
screens, err := sstore.GetBareSessionScreens(ctx, sessionId)
if err != nil {
return nil, fmt.Errorf("could not retreive screens for session=%s: %v", sessionId, err)
}
@@ -349,11 +349,11 @@ func genericResolve(arg string, curArg string, items []ResolveItem, isNumeric bo
if (isUuid && item.Id == arg) || (tryPuid && strings.HasPrefix(item.Id, arg)) {
return &item, nil
}
if !item.Hidden && item.Name != "" {
if item.Name != "" {
if item.Name == arg {
return &item, nil
}
if strings.HasPrefix(item.Name, arg) {
if !item.Hidden && strings.HasPrefix(item.Name, arg) {
prefixMatches = append(prefixMatches, item)
}
}
+6 -3
View File
@@ -354,8 +354,8 @@ func GetWindowById(ctx context.Context, sessionId string, windowId string) (*Win
return rtnWindow, err
}
// includes archived screens
func GetSessionScreens(ctx context.Context, sessionId string) ([]*ScreenType, error) {
// 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 {
query := `SELECT * FROM screen WHERE sessionid = ? ORDER BY archived, screenidx, archivedts`
@@ -907,7 +907,10 @@ func ArchiveScreen(ctx context.Context, sessionId string, screenId string) (Upda
}
update, session := MakeSingleSessionUpdate(sessionId)
session.ActiveScreenId = newActiveScreenId
session.Screens = append(session.Screens, &ScreenType{SessionId: sessionId, ScreenId: screenId, Remove: true})
newScreen, _ := GetScreenById(ctx, sessionId, screenId)
if newScreen != nil {
session.Screens = append(session.Screens, newScreen)
}
return update, nil
}