mirror of
https://github.com/wavetermdev/backup.git
synced 2026-08-05 13:57:07 -07:00
bugfixes for screen archives
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user