From 210acb7bbc4c710673efaf673d876852b575ceae Mon Sep 17 00:00:00 2001 From: Ochenstarik Date: Thu, 16 Jul 2026 19:17:12 +0700 Subject: [PATCH] Make Windows navigation functional --- .../MainPage.xaml | 20 ++++++- .../MainPage.xaml.cs | 53 +++++++++++++++++-- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/src/ServerMonitorManager.Desktop/MainPage.xaml b/src/ServerMonitorManager.Desktop/MainPage.xaml index 687b736..03b9812 100644 --- a/src/ServerMonitorManager.Desktop/MainPage.xaml +++ b/src/ServerMonitorManager.Desktop/MainPage.xaml @@ -101,6 +101,7 @@ Severity="Informational" /> - + @@ -341,6 +342,23 @@ + + + + + diff --git a/src/ServerMonitorManager.Desktop/MainPage.xaml.cs b/src/ServerMonitorManager.Desktop/MainPage.xaml.cs index 2dff0cf..c90e4e2 100644 --- a/src/ServerMonitorManager.Desktop/MainPage.xaml.cs +++ b/src/ServerMonitorManager.Desktop/MainPage.xaml.cs @@ -539,10 +539,57 @@ public sealed partial class MainPage : Page { if (args.IsSettingsSelected) { - ShowInfo( + ShowPlaceholder( "Настройки", - "Профили серверов хранятся локально; приватный SSH-ключ не покидает этот ПК.", - InfoBarSeverity.Informational); + "Профили серверов хранятся локально. Настройки ключей, интервалов обновления и подтверждений будут добавляться здесь."); + return; + } + + var tag = (args.SelectedItem as NavigationViewItem)?.Tag?.ToString() ?? "overview"; + NavigationPlaceholder.Visibility = Visibility.Collapsed; + OverviewSummary.Visibility = Visibility.Visible; + WorkspaceScroll.Visibility = Visibility.Visible; + ServerWorkspace.Visibility = tag is "overview" or "servers" ? Visibility.Visible : Visibility.Collapsed; + LinkInspector.Visibility = tag is "overview" or "links" ? Visibility.Visible : Visibility.Collapsed; + InspectorColumn.Width = tag == "overview" && ActualWidth >= 1080 + ? new GridLength(360) + : new GridLength(0); + + if (tag == "links") + { + Grid.SetRow(LinkInspector, 0); + Grid.SetColumn(LinkInspector, 0); + Grid.SetColumnSpan(LinkInspector, 2); + } + else + { + Grid.SetColumnSpan(LinkInspector, 1); + if (ActualWidth >= 1080) + { + Grid.SetRow(LinkInspector, 0); + Grid.SetColumn(LinkInspector, 1); + } + else + { + Grid.SetRow(LinkInspector, 1); + Grid.SetColumn(LinkInspector, 0); + } + } + + if (tag == "sessions") + { + ShowPlaceholder( + "SSH-сессии", + "Интерактивные терминалы будут использовать отдельную identity и не получат ключ мониторинга или права Mesh Hub."); } } + + private void ShowPlaceholder(string title, string description) + { + OverviewSummary.Visibility = Visibility.Collapsed; + WorkspaceScroll.Visibility = Visibility.Collapsed; + PlaceholderTitle.Text = title; + PlaceholderDescription.Text = description; + NavigationPlaceholder.Visibility = Visibility.Visible; + } }