diff --git a/Server/Components/Devices/DeviceCard.razor b/Server/Components/Devices/DeviceCard.razor index 5687ef10..3cc31196 100644 --- a/Server/Components/Devices/DeviceCard.razor +++ b/Server/Components/Devices/DeviceCard.razor @@ -10,9 +10,21 @@
- - + @if (Device.IsOnline) + { + if (IsOutdated) + { + + } + else + { + + } + } + else + { + + }
diff --git a/Server/Components/Devices/DeviceCard.razor.cs b/Server/Components/Devices/DeviceCard.razor.cs index 17196b87..bcd2fabe 100644 --- a/Server/Components/Devices/DeviceCard.razor.cs +++ b/Server/Components/Devices/DeviceCard.razor.cs @@ -52,6 +52,10 @@ namespace Remotely.Server.Components.Devices private bool IsSelected => AppState.DevicesFrameSelectedDevices.Contains(Device.ID); + private bool IsOutdated => + Version.TryParse(Device.AgentVersion, out var result) && + result < ParentFrame.HighestVersion; + [Inject] private IJsInterop JsInterop { get; set; } diff --git a/Server/Components/Devices/DevicesFrame.razor.cs b/Server/Components/Devices/DevicesFrame.razor.cs index 02256d0a..7e07f8e0 100644 --- a/Server/Components/Devices/DevicesFrame.razor.cs +++ b/Server/Components/Devices/DevicesFrame.razor.cs @@ -42,6 +42,8 @@ namespace Remotely.Server.Components.Devices private string _selectedSortProperty = "DeviceName"; private ListSortDirection _sortDirection; + public Version HighestVersion { get; private set; } + [Inject] private IClientAppState AppState { get; set; } @@ -222,6 +224,8 @@ namespace Remotely.Server.Components.Devices _allDevices.AddRange(devices); + HighestVersion = _allDevices.Max(x => Version.TryParse(x.AgentVersion, out var result) ? result : default); + FilterDevices(); }