diff --git a/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor b/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor index c14e4e2..c0a0a4e 100644 --- a/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor +++ b/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor @@ -247,6 +247,9 @@ @code { private const int MaxRows = 200; + [SupplyParameterFromQuery] public int? SiteId { get; set; } + [SupplyParameterFromQuery] public int? InstanceId { get; set; } + private List _sites = new(); private List _siteInstances = new(); private int _selectedSiteId; @@ -287,6 +290,8 @@ private DebugStreamSession? _session; private ToastNotification _toast = default!; + private string? _initError; + protected override async Task OnInitializedAsync() { try @@ -295,7 +300,7 @@ } catch (Exception ex) { - _toast.ShowError($"Failed to load sites: {ex.Message}"); + _initError = $"Failed to load sites: {ex.Message}"; } _loading = false; } @@ -304,6 +309,29 @@ { if (!firstRender) return; + if (_initError != null) + { + _toast.ShowError(_initError); + _initError = null; + } + + if (SiteId is > 0 && InstanceId is > 0) + { + _selectedSiteId = SiteId.Value; + await LoadInstancesForSite(); + if (_siteInstances.Any(i => i.Id == InstanceId.Value)) + { + _selectedInstanceId = InstanceId.Value; + await Connect(); + } + else + { + _toast.ShowError("Requested instance is not available for debug streaming."); + } + StateHasChanged(); + return; + } + var storedSiteId = await JS.InvokeAsync("localStorage.getItem", "debugView.siteId"); var storedInstanceId = await JS.InvokeAsync("localStorage.getItem", "debugView.instanceId"); diff --git a/src/ScadaLink.CentralUI/Components/Pages/Deployment/Topology.razor b/src/ScadaLink.CentralUI/Components/Pages/Deployment/Topology.razor index 5e8c0ca..1b92367 100644 --- a/src/ScadaLink.CentralUI/Components/Pages/Deployment/Topology.razor +++ b/src/ScadaLink.CentralUI/Components/Pages/Deployment/Topology.razor @@ -452,6 +452,11 @@ @onclick='() => NavigationManager.NavigateTo($"/deployment/instances/{inst.Id}/configure")'> Configure +