Skip to content

Commit 8fae21d

Browse files
committed
Feature: Migrate dialogs
1 parent b4c38cb commit 8fae21d

File tree

5 files changed

+69
-54
lines changed

5 files changed

+69
-54
lines changed

Source/NETworkManager/ViewModels/WebConsoleHostViewModel.cs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Dragablz;
22
using MahApps.Metro.Controls.Dialogs;
3+
using MahApps.Metro.SimpleChildWindow;
34
using Microsoft.Web.WebView2.Core;
45
using NETworkManager.Controls;
56
using NETworkManager.Localization.Resources;
@@ -485,16 +486,15 @@ private static void OpenWebsiteAction(object url)
485486

486487
#region Methods
487488

488-
private async Task Connect()
489+
private Task Connect()
489490
{
490-
var customDialog = new CustomDialog
491-
{
492-
Title = Strings.Connect
493-
};
491+
var childWindow = new WebConsoleConnectChildWindow();
494492

495-
var connectViewModel = new WebConsoleConnectViewModel(async instance =>
493+
var childWindowViewModel = new WebConsoleConnectViewModel(instance =>
496494
{
497-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
495+
childWindow.IsOpen = false;
496+
ConfigurationManager.Current.IsChildWindowOpen = false;
497+
498498
ConfigurationManager.OnDialogClose();
499499

500500
// Create profile info
@@ -509,19 +509,23 @@ private async Task Connect()
509509
AddUrlToHistory(instance.Url);
510510

511511
Connect(info);
512-
}, async _ =>
512+
}, _ =>
513513
{
514-
await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
514+
childWindow.IsOpen = false;
515+
ConfigurationManager.Current.IsChildWindowOpen = false;
516+
515517
ConfigurationManager.OnDialogClose();
516518
});
517519

518-
customDialog.Content = new WebConsoleConnectDialog
519-
{
520-
DataContext = connectViewModel
521-
};
520+
childWindow.Title = Strings.Connect;
521+
522+
childWindow.DataContext = childWindowViewModel;
523+
524+
ConfigurationManager.Current.IsChildWindowOpen = true;
522525

523526
ConfigurationManager.OnDialogOpen();
524-
await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
527+
528+
return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
525529
}
526530

527531
private void ConnectProfile()

Source/NETworkManager/Views/WebConsoleConnectDialog.xaml renamed to Source/NETworkManager/Views/WebConsoleConnectChildWindow.xaml

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
<UserControl x:Class="NETworkManager.Views.WebConsoleConnectDialog"
2-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4-
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5-
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6-
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
7-
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
8-
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
9-
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
10-
mc:Ignorable="d" Loaded="UserControl_Loaded"
11-
d:DataContext="{d:DesignInstance viewModels:WebConsoleConnectViewModel}">
12-
<UserControl.Resources>
13-
</UserControl.Resources>
14-
<Grid Margin="0,20">
1+
<simpleChildWindow:ChildWindow x:Class="NETworkManager.Views.WebConsoleConnectChildWindow"
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6+
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
7+
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
8+
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
9+
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
10+
xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
11+
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
12+
CloseButtonCommand="{Binding Path=CancelCommand}"
13+
Style="{StaticResource DefaultChildWindow}"
14+
Loaded="ChildWindow_OnLoaded"
15+
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:WebConsoleConnectViewModel}">
16+
<Grid Margin="10">
1517
<Grid.RowDefinitions>
1618
<RowDefinition Height="Auto" />
1719
<RowDefinition Height="Auto" />
@@ -33,10 +35,10 @@
3335
</Grid.RowDefinitions>
3436
<TextBlock Grid.Column="0" Grid.Row="0" Text="{x:Static localization:Strings.URL}" />
3537
<ComboBox x:Name="ComboBoxUrl"
36-
Grid.Column="2" Grid.Row="0"
37-
ItemsSource="{Binding UrlHistoryView}"
38-
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleWebsiteUri}"
39-
Style="{StaticResource EditableComboBox}">
38+
Grid.Column="2" Grid.Row="0"
39+
ItemsSource="{Binding UrlHistoryView}"
40+
mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleWebsiteUri}"
41+
Style="{StaticResource EditableComboBox}">
4042
<ComboBox.Text>
4143
<Binding Path="Url" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
4244
<Binding.ValidationRules>
@@ -49,15 +51,15 @@
4951
</Grid>
5052
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right">
5153
<Button Content="{x:Static localization:Strings.Connect}" Command="{Binding ConnectCommand}"
52-
IsDefault="True" Margin="0,0,10,0">
54+
IsDefault="True" Margin="0,0,10,0">
5355
<Button.Style>
5456
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource HighlightedButton}">
5557
<Setter Property="IsEnabled" Value="False" />
5658
<Style.Triggers>
5759
<MultiDataTrigger>
5860
<MultiDataTrigger.Conditions>
5961
<Condition Binding="{Binding Path=(Validation.HasError), ElementName=ComboBoxUrl}"
60-
Value="False" />
62+
Value="False" />
6163
</MultiDataTrigger.Conditions>
6264
<MultiDataTrigger.Setters>
6365
<Setter Property="IsEnabled" Value="True" />
@@ -68,7 +70,7 @@
6870
</Button.Style>
6971
</Button>
7072
<Button Content="{x:Static localization:Strings.Cancel}" Command="{Binding CancelCommand}" IsCancel="True"
71-
Style="{StaticResource DefaultButton}" />
73+
Style="{StaticResource DefaultButton}" />
7274
</StackPanel>
7375
</Grid>
74-
</UserControl>
76+
</simpleChildWindow:ChildWindow>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
using System.Windows;
3+
using System.Windows.Threading;
4+
5+
namespace NETworkManager.Views;
6+
7+
public partial class WebConsoleConnectChildWindow
8+
{
9+
public WebConsoleConnectChildWindow()
10+
{
11+
InitializeComponent();
12+
}
13+
14+
private void ChildWindow_OnLoaded(object sender, RoutedEventArgs e)
15+
{
16+
Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(delegate
17+
{
18+
ComboBoxUrl.Focus();
19+
}));
20+
}
21+
}

Source/NETworkManager/Views/WebConsoleConnectDialog.xaml.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

Website/docs/changelog/next-release.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,19 @@ Release date: **xx.xx.2025**
4646

4747
- Redesign PuTTY connect dialog (migrated from dialog to child window). [#3234](https://github.com/BornToBeRoot/NETworkManager/pull/3234)
4848

49+
**Web Console**
50+
51+
- Redesign Web Console connect dialog (migrated from dialog to child window). [#3234](https://github.com/BornToBeRoot/NETworkManager/pull/3234)
52+
4953
## Bug Fixes
5054

5155
- The new profile filter popup indroduced in version `2025.10.18.0` was instantly closed when a `PuTTY`, `PowerShell` or `AWS Session Manager` session was opened and the respective application / view was selected. [#3219](https://github.com/BornToBeRoot/NETworkManager/pull/3219)
5256

5357
## Dependencies, Refactoring & Documentation
5458

5559
- Documentation updated
56-
- Code cleanup & refactoring
57-
- Introduced a new DialogHelper utility to centralize creation of `OK` and `OK/Cancel` dialogs. This reduces duplication and enforces a consistent layout. [#3231](https://github.com/BornToBeRoot/NETworkManager/pull/3231)
60+
- Code cleanup & refactoring
61+
- Introduced a new DialogHelper utility to centralize creation of `OK` and `OK/Cancel` dialogs. This reduces duplication and enforces a consistent layout. [#3231](https://github.com/BornToBeRoot/NETworkManager/pull/3231)
5862
- Migrated existing credential and profile dialogs to use DialogHelper, improving usability, accessibility and maintainability across the app. [#3231](https://github.com/BornToBeRoot/NETworkManager/pull/3231)
5963
- Language files updated via [#transifex](https://github.com/BornToBeRoot/NETworkManager/pulls?q=author%3Aapp%2Ftransifex-integration)
6064
- Dependencies updated via [#dependabot](https://github.com/BornToBeRoot/NETworkManager/pulls?q=author%3Aapp%2Fdependabot)

0 commit comments

Comments
 (0)