From 9932391e9c7dc5c4b0749c3d2b1a35e6e87ff4f9 Mon Sep 17 00:00:00 2001 From: pycook Date: Mon, 11 Aug 2025 21:53:22 +0800 Subject: [PATCH] fix(backend): recent sessions filter display --- backend/internal/sshsrv/assetlist/table.go | 30 ++++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/backend/internal/sshsrv/assetlist/table.go b/backend/internal/sshsrv/assetlist/table.go index 15a8d7e..533f1cc 100644 --- a/backend/internal/sshsrv/assetlist/table.go +++ b/backend/internal/sshsrv/assetlist/table.go @@ -430,17 +430,31 @@ func (m *Model) updateFilter() { }) } - // Update table rows - + // Update table rows - handle different formats for recent sessions vs assets rows := make([]table.Row, len(m.filteredAssets)) for i, asset := range m.filteredAssets { icon := icons.GetProtocolIcon(asset.Protocol) - rows[i] = table.Row{ - fmt.Sprintf("%s %s", icon, strings.ToUpper(asset.Protocol)), - asset.User, - asset.Host, - lo.Ternary(asset.Port != "", asset.Port, icons.GetDefaultPort(asset.Protocol)), - asset.Command, + + if m.isRecent && asset.LastLogin != nil { + // Recent sessions format with Last Login column + timeAgo := formatTimeAgo(*asset.LastLogin) + rows[i] = table.Row{ + fmt.Sprintf("%s %s", icon, strings.ToUpper(asset.Protocol)), + asset.User, + asset.Host, + lo.Ternary(asset.Port != "", asset.Port, icons.GetDefaultPort(asset.Protocol)), + timeAgo, + asset.Command, + } + } else { + // Regular assets format + rows[i] = table.Row{ + fmt.Sprintf("%s %s", icon, strings.ToUpper(asset.Protocol)), + asset.User, + asset.Host, + lo.Ternary(asset.Port != "", asset.Port, icons.GetDefaultPort(asset.Protocol)), + asset.Command, + } } } m.table.SetRows(rows)