From 7fc9d4934a309fad05e0163457ebd164f29b610f Mon Sep 17 00:00:00 2001
From: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Date: Mon, 4 Nov 2024 03:42:42 +0100
Subject: [PATCH 1/4] Feature: Profile description and tooltip
---
.../Resources/StaticStrings.Designer.cs | 18 +++++-----
.../Resources/StaticStrings.resx | 2 +-
.../Resources/Strings.Designer.cs | 9 +++++
.../Resources/Strings.resx | 3 ++
Source/NETworkManager.Profiles/ProfileInfo.cs | 8 ++++-
Source/NETworkManager/ProfileDialogManager.cs | 13 +++----
.../ViewModels/ProfileViewModel.cs | 23 ++++++++++--
.../Views/PingMonitorHostView.xaml | 20 ++++++++++-
.../NETworkManager/Views/ProfileDialog.xaml | 36 +++++++++++++------
.../Views/RemoteDesktopConnectDialog.xaml | 2 +-
10 files changed, 101 insertions(+), 33 deletions(-)
diff --git a/Source/NETworkManager.Localization/Resources/StaticStrings.Designer.cs b/Source/NETworkManager.Localization/Resources/StaticStrings.Designer.cs
index d324a9d6a5..1b56f8da1b 100644
--- a/Source/NETworkManager.Localization/Resources/StaticStrings.Designer.cs
+++ b/Source/NETworkManager.Localization/Resources/StaticStrings.Designer.cs
@@ -500,6 +500,15 @@ public static string ExamplePowerShellPath {
}
}
+ ///
+ /// Looks up a localized string similar to Webserver.
+ ///
+ public static string ExampleProfileName {
+ get {
+ return ResourceManager.GetString("ExampleProfileName", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to https://api.ipify.org.
///
@@ -536,15 +545,6 @@ public static string ExamplePuTTYProfile {
}
}
- ///
- /// Looks up a localized string similar to Webserver.
- ///
- public static string ExampleRemoteDesktopProfileName {
- get {
- return ResourceManager.GetString("ExampleRemoteDesktopProfileName", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to COM5.
///
diff --git a/Source/NETworkManager.Localization/Resources/StaticStrings.resx b/Source/NETworkManager.Localization/Resources/StaticStrings.resx
index d68e3c6c73..27db44d31a 100644
--- a/Source/NETworkManager.Localization/Resources/StaticStrings.resx
+++ b/Source/NETworkManager.Localization/Resources/StaticStrings.resx
@@ -227,7 +227,7 @@
22; 80; 443; 500 - 999; 8080
-
+
Webserver
diff --git a/Source/NETworkManager.Localization/Resources/Strings.Designer.cs b/Source/NETworkManager.Localization/Resources/Strings.Designer.cs
index fb8e687fb6..d3e62418b0 100644
--- a/Source/NETworkManager.Localization/Resources/Strings.Designer.cs
+++ b/Source/NETworkManager.Localization/Resources/Strings.Designer.cs
@@ -3653,6 +3653,15 @@ public static string Everything {
}
}
+ ///
+ /// Looks up a localized string similar to Ubuntu Server running Docker with Nextcloud and Traefik....
+ ///
+ public static string ExampleProfileDescription {
+ get {
+ return ResourceManager.GetString("ExampleProfileDescription", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Customer 1.
///
diff --git a/Source/NETworkManager.Localization/Resources/Strings.resx b/Source/NETworkManager.Localization/Resources/Strings.resx
index eda46ad637..e6d8037ada 100644
--- a/Source/NETworkManager.Localization/Resources/Strings.resx
+++ b/Source/NETworkManager.Localization/Resources/Strings.resx
@@ -3851,4 +3851,7 @@ Right-click for more options.
Set default
+
+ Ubuntu Server running Docker with Nextcloud and Traefik...
+
\ No newline at end of file
diff --git a/Source/NETworkManager.Profiles/ProfileInfo.cs b/Source/NETworkManager.Profiles/ProfileInfo.cs
index 79b46254ad..30d92c342e 100644
--- a/Source/NETworkManager.Profiles/ProfileInfo.cs
+++ b/Source/NETworkManager.Profiles/ProfileInfo.cs
@@ -31,6 +31,7 @@ public ProfileInfo(ProfileInfo profile)
{
Name = profile.Name;
Host = profile.Host;
+ Description = profile.Description;
Group = profile.Group;
Tags = profile.Tags;
@@ -248,11 +249,16 @@ public ProfileInfo(ProfileInfo profile)
///
public string Host { get; set; }
+ ///
+ /// Description of the profile.
+ ///
+ public string Description { get; set; }
+
///
/// Name of the group. Profiles are grouped based on the name.
///
public string Group { get; set; }
-
+
///
/// Tags to classify the profiles and to filter by it.
///
diff --git a/Source/NETworkManager/ProfileDialogManager.cs b/Source/NETworkManager/ProfileDialogManager.cs
index cf3961742d..9d3610f7f9 100644
--- a/Source/NETworkManager/ProfileDialogManager.cs
+++ b/Source/NETworkManager/ProfileDialogManager.cs
@@ -1,9 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Security;
-using System.Threading.Tasks;
-using System.Windows;
-using MahApps.Metro.Controls.Dialogs;
+using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
using NETworkManager.Models.Network;
@@ -12,6 +7,11 @@
using NETworkManager.Profiles;
using NETworkManager.ViewModels;
using NETworkManager.Views;
+using System;
+using System.Collections.Generic;
+using System.Security;
+using System.Threading.Tasks;
+using System.Windows;
namespace NETworkManager;
@@ -31,6 +31,7 @@ private static ProfileInfo ParseProfileInfo(ProfileViewModel instance)
{
Name = instance.Name.Trim(),
Host = instance.Host.Trim(),
+ Description = instance.Description?.Trim(),
Group = instance.Group.Trim(),
Tags = instance.Tags?.Trim(),
diff --git a/Source/NETworkManager/ViewModels/ProfileViewModel.cs b/Source/NETworkManager/ViewModels/ProfileViewModel.cs
index fabe509da4..eee492d6d6 100644
--- a/Source/NETworkManager/ViewModels/ProfileViewModel.cs
+++ b/Source/NETworkManager/ViewModels/ProfileViewModel.cs
@@ -43,16 +43,18 @@ public ProfileViewModel(Action saveCommand, Action 0 ? groups.OrderBy(x => x).First() : Strings.Default
: profileInfo.Group);
-
- Tags = profileInfo.Tags;
-
+
Groups = CollectionViewSource.GetDefaultView(groups);
Groups.SortDescriptions.Add(new SortDescription());
+ Tags = profileInfo.Tags;
+
// Network Interface
NetworkInterface_Enabled = editMode == ProfileEditMode.Add
? applicationName == ApplicationName.NetworkInterface
@@ -449,6 +451,21 @@ public bool ShowCouldNotResolveHostnameWarning
OnPropertyChanged();
}
}
+
+ private string _description;
+
+ public string Description
+ {
+ get => _description;
+ set
+ {
+ if (value == _description)
+ return;
+
+ _description = value;
+ OnPropertyChanged();
+ }
+ }
private string _group;
diff --git a/Source/NETworkManager/Views/PingMonitorHostView.xaml b/Source/NETworkManager/Views/PingMonitorHostView.xaml
index 32c6070176..9ebc581bd9 100644
--- a/Source/NETworkManager/Views/PingMonitorHostView.xaml
+++ b/Source/NETworkManager/Views/PingMonitorHostView.xaml
@@ -370,7 +370,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/ProfileDialog.xaml b/Source/NETworkManager/Views/ProfileDialog.xaml
index ae62f3507c..bb77099dc0 100644
--- a/Source/NETworkManager/Views/ProfileDialog.xaml
+++ b/Source/NETworkManager/Views/ProfileDialog.xaml
@@ -1286,6 +1286,8 @@
+
+
@@ -1296,7 +1298,7 @@
+ mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleProfileName}">
@@ -1364,8 +1366,20 @@
-
-
+
+
+
@@ -1377,22 +1391,22 @@
-
-
+
+
+ ToolTip="{x:Static Member=localization:Strings.HelpMessage_Tags}"
+ Style="{StaticResource ResourceKey=HelpImageRectangle}" Margin="10,0,0,0">
-
+
-
+
From fdee27b2c493284439e273b36e629c4073687702 Mon Sep 17 00:00:00 2001
From: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Date: Mon, 4 Nov 2024 04:03:57 +0100
Subject: [PATCH 2/4] Feature: Profile & group description
---
.../Resources/Strings.Designer.cs | 9 +
.../Resources/Strings.resx | 3 +
Source/NETworkManager.Profiles/GroupInfo.cs | 11 +-
Source/NETworkManager/ProfileDialogManager.cs | 3 +-
.../ViewModels/GroupViewModel.cs | 418 +++++++++---------
.../ViewModels/ProfileViewModel.cs | 3 +
Source/NETworkManager/Views/GroupDialog.xaml | 14 +
.../NETworkManager/Views/ProfileDialog.xaml | 2 +-
Website/docs/changelog/next-release.md | 2 +
9 files changed, 265 insertions(+), 200 deletions(-)
diff --git a/Source/NETworkManager.Localization/Resources/Strings.Designer.cs b/Source/NETworkManager.Localization/Resources/Strings.Designer.cs
index d3e62418b0..03fdce5b41 100644
--- a/Source/NETworkManager.Localization/Resources/Strings.Designer.cs
+++ b/Source/NETworkManager.Localization/Resources/Strings.Designer.cs
@@ -3653,6 +3653,15 @@ public static string Everything {
}
}
+ ///
+ /// Looks up a localized string similar to Linux servers running in AWS....
+ ///
+ public static string ExampleGroupDescription {
+ get {
+ return ResourceManager.GetString("ExampleGroupDescription", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Ubuntu Server running Docker with Nextcloud and Traefik....
///
diff --git a/Source/NETworkManager.Localization/Resources/Strings.resx b/Source/NETworkManager.Localization/Resources/Strings.resx
index e6d8037ada..43c3115acb 100644
--- a/Source/NETworkManager.Localization/Resources/Strings.resx
+++ b/Source/NETworkManager.Localization/Resources/Strings.resx
@@ -3854,4 +3854,7 @@ Right-click for more options.
Ubuntu Server running Docker with Nextcloud and Traefik...
+
+ Linux servers running in AWS...
+
\ No newline at end of file
diff --git a/Source/NETworkManager.Profiles/GroupInfo.cs b/Source/NETworkManager.Profiles/GroupInfo.cs
index 9c7cfb4de7..1a5bafca31 100644
--- a/Source/NETworkManager.Profiles/GroupInfo.cs
+++ b/Source/NETworkManager.Profiles/GroupInfo.cs
@@ -19,7 +19,7 @@ public class GroupInfo
///
public GroupInfo()
{
- Profiles = new List();
+ Profiles = [];
}
///
@@ -35,6 +35,10 @@ public GroupInfo(string name) : this()
///
public GroupInfo(GroupInfo group) : this(group.Name)
{
+ // General
+ Description = group.Description;
+
+ // Profiles
Profiles = group.Profiles;
// Remote Desktop
@@ -164,6 +168,11 @@ public GroupInfo(GroupInfo group) : this(group.Name)
/// Name of the group.
///
public string Name { get; set; }
+
+ ///
+ /// Description of the group.
+ ///
+ public string Description { get; set; }
[XmlIgnore] public bool IsDynamic { get; set; }
diff --git a/Source/NETworkManager/ProfileDialogManager.cs b/Source/NETworkManager/ProfileDialogManager.cs
index 9d3610f7f9..f7666e03c8 100644
--- a/Source/NETworkManager/ProfileDialogManager.cs
+++ b/Source/NETworkManager/ProfileDialogManager.cs
@@ -305,7 +305,8 @@ private static GroupInfo ParseGroupInfo(GroupViewModel instance)
return new GroupInfo
{
Name = name,
-
+ Description = instance.Description?.Trim(),
+
Profiles = profiles,
// Remote Desktop
diff --git a/Source/NETworkManager/ViewModels/GroupViewModel.cs b/Source/NETworkManager/ViewModels/GroupViewModel.cs
index 6c7d289164..9b7abb62ee 100644
--- a/Source/NETworkManager/ViewModels/GroupViewModel.cs
+++ b/Source/NETworkManager/ViewModels/GroupViewModel.cs
@@ -18,159 +18,9 @@ namespace NETworkManager.ViewModels;
public class GroupViewModel : ViewModelBase
{
- private readonly bool _isLoading = true;
-
- public GroupViewModel(Action saveCommand, Action cancelHandler,
- IReadOnlyCollection groups, GroupEditMode editMode = GroupEditMode.Add, GroupInfo group = null)
- {
- // Load the view
- GroupViews = new CollectionViewSource { Source = GroupViewManager.List }.View;
- GroupViews.SortDescriptions.Add(new SortDescription(nameof(GroupViewInfo.Name), ListSortDirection.Ascending));
-
- SaveCommand = new RelayCommand(_ => saveCommand(this));
- CancelCommand = new RelayCommand(_ => cancelHandler(this));
-
- var groupInfo = group ?? new GroupInfo();
+ #region Variables
- Group = groupInfo;
- _groups = groups;
-
- // General
- Name = groupInfo.Name;
-
- // Remote Desktop
- RemoteDesktop_UseCredentials = groupInfo.RemoteDesktop_UseCredentials;
- RemoteDesktop_Username = groupInfo.RemoteDesktop_Username;
- RemoteDesktop_Domain = groupInfo.RemoteDesktop_Domain;
- RemoteDesktop_Password = groupInfo.RemoteDesktop_Password;
- RemoteDesktop_OverrideDisplay = groupInfo.RemoteDesktop_OverrideDisplay;
- RemoteDesktop_AdjustScreenAutomatically = groupInfo.RemoteDesktop_AdjustScreenAutomatically;
- RemoteDesktop_UseCurrentViewSize = groupInfo.RemoteDesktop_UseCurrentViewSize;
- RemoteDesktop_UseFixedScreenSize = groupInfo.RemoteDesktop_UseFixedScreenSize;
- RemoteDesktop_SelectedScreenResolution = RemoteDesktop_ScreenResolutions.FirstOrDefault(x =>
- x == $"{groupInfo.RemoteDesktop_ScreenWidth}x{groupInfo.RemoteDesktop_ScreenHeight}");
- RemoteDesktop_UseCustomScreenSize = groupInfo.RemoteDesktop_UseCustomScreenSize;
- RemoteDesktop_CustomScreenWidth = groupInfo.RemoteDesktop_CustomScreenWidth.ToString();
- RemoteDesktop_CustomScreenHeight = groupInfo.RemoteDesktop_CustomScreenHeight.ToString();
- RemoteDesktop_OverrideColorDepth = groupInfo.RemoteDesktop_OverrideColorDepth;
- RemoteDesktop_SelectedColorDepth =
- RemoteDesktop_ColorDepths.FirstOrDefault(x => x == groupInfo.RemoteDesktop_ColorDepth);
- RemoteDesktop_OverridePort = groupInfo.RemoteDesktop_OverridePort;
- RemoteDesktop_Port = groupInfo.RemoteDesktop_Port;
- RemoteDesktop_OverrideCredSspSupport = groupInfo.RemoteDesktop_OverrideCredSspSupport;
- RemoteDesktop_EnableCredSspSupport = groupInfo.RemoteDesktop_EnableCredSspSupport;
- RemoteDesktop_OverrideAuthenticationLevel = groupInfo.RemoteDesktop_OverrideAuthenticationLevel;
- RemoteDesktop_AuthenticationLevel = groupInfo.RemoteDesktop_AuthenticationLevel;
- RemoteDesktop_OverrideGatewayServer = groupInfo.RemoteDesktop_OverrideGatewayServer;
- RemoteDesktop_EnableGatewayServer = groupInfo.RemoteDesktop_EnableGatewayServer;
- RemoteDesktop_GatewayServerHostname = groupInfo.RemoteDesktop_GatewayServerHostname;
- RemoteDesktop_GatewayServerBypassLocalAddresses = groupInfo.RemoteDesktop_GatewayServerBypassLocalAddresses;
- RemoteDesktop_GatewayServerLogonMethod = groupInfo.RemoteDesktop_GatewayServerLogonMethod;
- RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer =
- groupInfo.RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer;
- RemoteDesktop_UseGatewayServerCredentials = groupInfo.RemoteDesktop_UseGatewayServerCredentials;
- RemoteDesktop_GatewayServerUsername = groupInfo.RemoteDesktop_GatewayServerUsername;
- RemoteDesktop_GatewayServerDomain = groupInfo.RemoteDesktop_GatewayServerDomain;
- RemoteDesktop_GatewayServerPassword = groupInfo.RemoteDesktop_GatewayServerPassword;
- RemoteDesktop_OverrideAudioRedirectionMode = groupInfo.RemoteDesktop_OverrideAudioRedirectionMode;
- RemoteDesktop_AudioRedirectionMode =
- RemoteDesktop_AudioRedirectionModes.FirstOrDefault(x => x == groupInfo.RemoteDesktop_AudioRedirectionMode);
- RemoteDesktop_OverrideAudioCaptureRedirectionMode = groupInfo.RemoteDesktop_OverrideAudioCaptureRedirectionMode;
- RemoteDesktop_AudioCaptureRedirectionMode =
- RemoteDesktop_AudioCaptureRedirectionModes.FirstOrDefault(x =>
- x == groupInfo.RemoteDesktop_AudioCaptureRedirectionMode);
- RemoteDesktop_OverrideApplyWindowsKeyCombinations = groupInfo.RemoteDesktop_OverrideApplyWindowsKeyCombinations;
- RemoteDesktop_KeyboardHookMode =
- RemoteDesktop_KeyboardHookModes.FirstOrDefault(x => x == groupInfo.RemoteDesktop_KeyboardHookMode);
- RemoteDesktop_OverrideRedirectClipboard = groupInfo.RemoteDesktop_OverrideRedirectClipboard;
- RemoteDesktop_RedirectClipboard = groupInfo.RemoteDesktop_RedirectClipboard;
- RemoteDesktop_OverrideRedirectDevices = groupInfo.RemoteDesktop_OverrideRedirectDevices;
- RemoteDesktop_RedirectDevices = groupInfo.RemoteDesktop_RedirectDevices;
- RemoteDesktop_OverrideRedirectDrives = groupInfo.RemoteDesktop_OverrideRedirectDrives;
- RemoteDesktop_RedirectDrives = groupInfo.RemoteDesktop_RedirectDrives;
- RemoteDesktop_OverrideRedirectPorts = groupInfo.RemoteDesktop_OverrideRedirectPorts;
- RemoteDesktop_RedirectPorts = groupInfo.RemoteDesktop_RedirectPorts;
- RemoteDesktop_OverrideRedirectSmartcards = groupInfo.RemoteDesktop_OverrideRedirectSmartcards;
- RemoteDesktop_RedirectSmartCards = groupInfo.RemoteDesktop_RedirectSmartCards;
- RemoteDesktop_OverrideRedirectPrinters = groupInfo.RemoteDesktop_OverrideRedirectPrinters;
- RemoteDesktop_RedirectPrinters = groupInfo.RemoteDesktop_RedirectPrinters;
- RemoteDesktop_OverridePersistentBitmapCaching = groupInfo.RemoteDesktop_OverridePersistentBitmapCaching;
- RemoteDesktop_PersistentBitmapCaching = groupInfo.RemoteDesktop_PersistentBitmapCaching;
- RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped =
- groupInfo.RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped;
- RemoteDesktop_ReconnectIfTheConnectionIsDropped = groupInfo.RemoteDesktop_ReconnectIfTheConnectionIsDropped;
- RemoteDesktop_NetworkConnectionType =
- RemoteDesktop_NetworkConnectionTypes.FirstOrDefault(x =>
- x == groupInfo.RemoteDesktop_NetworkConnectionType);
- RemoteDesktop_DesktopBackground = groupInfo.RemoteDesktop_DesktopBackground;
- RemoteDesktop_FontSmoothing = groupInfo.RemoteDesktop_FontSmoothing;
- RemoteDesktop_DesktopComposition = groupInfo.RemoteDesktop_DesktopComposition;
- RemoteDesktop_ShowWindowContentsWhileDragging = groupInfo.RemoteDesktop_ShowWindowContentsWhileDragging;
- RemoteDesktop_MenuAndWindowAnimation = groupInfo.RemoteDesktop_MenuAndWindowAnimation;
- RemoteDesktop_VisualStyles = groupInfo.RemoteDesktop_VisualStyles;
-
- // PowerShell
- PowerShell_OverrideCommand = groupInfo.PowerShell_OverrideCommand;
- PowerShell_Command = groupInfo.PowerShell_Command;
- PowerShell_OverrideAdditionalCommandLine = groupInfo.PowerShell_OverrideAdditionalCommandLine;
- PowerShell_AdditionalCommandLine = groupInfo.PowerShell_AdditionalCommandLine;
- PowerShell_OverrideExecutionPolicy = groupInfo.PowerShell_OverrideExecutionPolicy;
- PowerShell_ExecutionPolicies = Enum.GetValues(typeof(ExecutionPolicy)).Cast().ToList();
- PowerShell_ExecutionPolicy =
- PowerShell_ExecutionPolicies.FirstOrDefault(x => x == groupInfo.PowerShell_ExecutionPolicy);
-
- // PuTTY
- PuTTY_OverrideUsername = groupInfo.PuTTY_OverrideUsername;
- PuTTY_Username = groupInfo.PuTTY_Username;
- PuTTY_OverridePrivateKeyFile = groupInfo.PuTTY_OverridePrivateKeyFile;
- PuTTY_PrivateKeyFile = groupInfo.PuTTY_PrivateKeyFile;
- PuTTY_OverrideProfile = groupInfo.PuTTY_OverrideProfile;
- PuTTY_Profile = groupInfo.PuTTY_Profile;
- PuTTY_OverrideEnableLog = groupInfo.PuTTY_OverrideEnableLog;
- PuTTY_EnableLog = groupInfo.PuTTY_EnableLog;
- PuTTY_OverrideLogMode = groupInfo.PuTTY_OverrideLogMode;
- PuTTY_LogMode = PuTTY_LogModes.FirstOrDefault(x => x == groupInfo.PuTTY_LogMode);
- PuTTY_OverrideLogPath = groupInfo.PuTTY_OverrideLogPath;
- PuTTY_LogPath = groupInfo.PuTTY_LogPath;
- PuTTY_OverrideLogFileName = groupInfo.PuTTY_OverrideLogFileName;
- PuTTY_LogFileName = groupInfo.PuTTY_LogFileName;
- PuTTY_OverrideAdditionalCommandLine = groupInfo.PuTTY_OverrideAdditionalCommandLine;
- PuTTY_AdditionalCommandLine = groupInfo.PuTTY_AdditionalCommandLine;
-
- // AWS Session Manager
- AWSSessionManager_OverrideProfile = groupInfo.AWSSessionManager_OverrideProfile;
- AWSSessionManager_Profile = groupInfo.AWSSessionManager_Profile;
- AWSSessionManager_OverrideRegion = groupInfo.AWSSessionManager_OverrideRegion;
- AWSSessionManager_Region = groupInfo.AWSSessionManager_Region;
-
- // TigerVNC
- TigerVNC_OverridePort = groupInfo.TigerVNC_OverridePort;
- TigerVNC_Port = groupInfo.TigerVNC_Port;
-
- // SNMP
- SNMP_OverrideOIDAndMode = groupInfo.SNMP_OverrideOIDAndMode;
- SNMP_OID = groupInfo.SNMP_OID;
- SNMP_Modes = new List { SNMPMode.Get, SNMPMode.Walk, SNMPMode.Set };
- SNMP_Mode = SNMP_Modes.FirstOrDefault(x => x == groupInfo.SNMP_Mode);
- SNMP_OverrideVersionAndAuth = groupInfo.SNMP_OverrideVersionAndAuth;
- SNMP_Versions = Enum.GetValues(typeof(SNMPVersion)).Cast().ToList();
- SNMP_Version = SNMP_Versions.FirstOrDefault(x => x == groupInfo.SNMP_Version);
- SNMP_Community = groupInfo.SNMP_Community;
- SNMP_Securities = new List
- { SNMPV3Security.NoAuthNoPriv, SNMPV3Security.AuthNoPriv, SNMPV3Security.AuthPriv };
- SNMP_Security = SNMP_Securities.FirstOrDefault(x => x == groupInfo.SNMP_Security);
- SNMP_Username = groupInfo.SNMP_Username;
- SNMP_AuthenticationProviders = Enum.GetValues(typeof(SNMPV3AuthenticationProvider))
- .Cast().ToList();
- SNMP_AuthenticationProvider =
- SNMP_AuthenticationProviders.FirstOrDefault(x => x == groupInfo.SNMP_AuthenticationProvider);
- SNMP_Auth = groupInfo.SNMP_Auth;
- SNMP_PrivacyProviders = Enum.GetValues(typeof(SNMPV3PrivacyProvider)).Cast().ToList();
- SNMP_PrivacyProvider = SNMP_PrivacyProviders.FirstOrDefault(x => x == groupInfo.SNMP_PrivacyProvider);
- SNMP_Priv = groupInfo.SNMP_Priv;
-
- _isLoading = false;
- }
+ private readonly bool _isLoading = true;
public bool IsProfileFileEncrypted => ProfileManager.LoadedProfileFile.IsEncrypted;
@@ -179,51 +29,6 @@ public GroupViewModel(Action saveCommand, Action
private IReadOnlyCollection _groups { get; }
- #region Methods
-
- private void ChangeNetworkConnectionTypeSettings(NetworkConnectionType connectionSpeed)
- {
- switch (connectionSpeed)
- {
- case NetworkConnectionType.Modem:
- RemoteDesktop_DesktopBackground = false;
- RemoteDesktop_FontSmoothing = false;
- RemoteDesktop_DesktopComposition = false;
- RemoteDesktop_ShowWindowContentsWhileDragging = false;
- RemoteDesktop_MenuAndWindowAnimation = false;
- RemoteDesktop_VisualStyles = false;
- break;
- case NetworkConnectionType.BroadbandLow:
- RemoteDesktop_DesktopBackground = false;
- RemoteDesktop_FontSmoothing = false;
- RemoteDesktop_DesktopComposition = false;
- RemoteDesktop_ShowWindowContentsWhileDragging = false;
- RemoteDesktop_MenuAndWindowAnimation = false;
- RemoteDesktop_VisualStyles = true;
- break;
- case NetworkConnectionType.Satellite:
- case NetworkConnectionType.BroadbandHigh:
- RemoteDesktop_DesktopBackground = false;
- RemoteDesktop_FontSmoothing = false;
- RemoteDesktop_DesktopComposition = true;
- RemoteDesktop_ShowWindowContentsWhileDragging = false;
- RemoteDesktop_MenuAndWindowAnimation = false;
- RemoteDesktop_VisualStyles = true;
- break;
- case NetworkConnectionType.WAN:
- case NetworkConnectionType.LAN:
- RemoteDesktop_DesktopBackground = true;
- RemoteDesktop_FontSmoothing = true;
- RemoteDesktop_DesktopComposition = true;
- RemoteDesktop_ShowWindowContentsWhileDragging = true;
- RemoteDesktop_MenuAndWindowAnimation = true;
- RemoteDesktop_VisualStyles = true;
- break;
- }
- }
-
- #endregion
-
#region General
private bool _nameIsValid = true;
@@ -263,6 +68,21 @@ public string Name
}
}
+ private string _description;
+
+ public string Description
+ {
+ get => _description;
+ set
+ {
+ if (value == _description)
+ return;
+
+ _description = value;
+ OnPropertyChanged();
+ }
+ }
+
#endregion
#region Remote Desktop
@@ -1945,6 +1765,210 @@ public SecureString SNMP_Priv
#endregion
+ #endregion
+
+ #region Constructor
+
+ public GroupViewModel(Action saveCommand, Action cancelHandler,
+ IReadOnlyCollection groups, GroupEditMode editMode = GroupEditMode.Add, GroupInfo group = null)
+ {
+ // Load the view
+ GroupViews = new CollectionViewSource { Source = GroupViewManager.List }.View;
+ GroupViews.SortDescriptions.Add(new SortDescription(nameof(GroupViewInfo.Name), ListSortDirection.Ascending));
+
+ SaveCommand = new RelayCommand(_ => saveCommand(this));
+ CancelCommand = new RelayCommand(_ => cancelHandler(this));
+
+ var groupInfo = group ?? new GroupInfo();
+
+ Group = groupInfo;
+ _groups = groups;
+
+ // General
+ Name = groupInfo.Name;
+ Description = groupInfo.Description;
+
+ // Remote Desktop
+ RemoteDesktop_UseCredentials = groupInfo.RemoteDesktop_UseCredentials;
+ RemoteDesktop_Username = groupInfo.RemoteDesktop_Username;
+ RemoteDesktop_Domain = groupInfo.RemoteDesktop_Domain;
+ RemoteDesktop_Password = groupInfo.RemoteDesktop_Password;
+ RemoteDesktop_OverrideDisplay = groupInfo.RemoteDesktop_OverrideDisplay;
+ RemoteDesktop_AdjustScreenAutomatically = groupInfo.RemoteDesktop_AdjustScreenAutomatically;
+ RemoteDesktop_UseCurrentViewSize = groupInfo.RemoteDesktop_UseCurrentViewSize;
+ RemoteDesktop_UseFixedScreenSize = groupInfo.RemoteDesktop_UseFixedScreenSize;
+ RemoteDesktop_SelectedScreenResolution = RemoteDesktop_ScreenResolutions.FirstOrDefault(x =>
+ x == $"{groupInfo.RemoteDesktop_ScreenWidth}x{groupInfo.RemoteDesktop_ScreenHeight}");
+ RemoteDesktop_UseCustomScreenSize = groupInfo.RemoteDesktop_UseCustomScreenSize;
+ RemoteDesktop_CustomScreenWidth = groupInfo.RemoteDesktop_CustomScreenWidth.ToString();
+ RemoteDesktop_CustomScreenHeight = groupInfo.RemoteDesktop_CustomScreenHeight.ToString();
+ RemoteDesktop_OverrideColorDepth = groupInfo.RemoteDesktop_OverrideColorDepth;
+ RemoteDesktop_SelectedColorDepth =
+ RemoteDesktop_ColorDepths.FirstOrDefault(x => x == groupInfo.RemoteDesktop_ColorDepth);
+ RemoteDesktop_OverridePort = groupInfo.RemoteDesktop_OverridePort;
+ RemoteDesktop_Port = groupInfo.RemoteDesktop_Port;
+ RemoteDesktop_OverrideCredSspSupport = groupInfo.RemoteDesktop_OverrideCredSspSupport;
+ RemoteDesktop_EnableCredSspSupport = groupInfo.RemoteDesktop_EnableCredSspSupport;
+ RemoteDesktop_OverrideAuthenticationLevel = groupInfo.RemoteDesktop_OverrideAuthenticationLevel;
+ RemoteDesktop_AuthenticationLevel = groupInfo.RemoteDesktop_AuthenticationLevel;
+ RemoteDesktop_OverrideGatewayServer = groupInfo.RemoteDesktop_OverrideGatewayServer;
+ RemoteDesktop_EnableGatewayServer = groupInfo.RemoteDesktop_EnableGatewayServer;
+ RemoteDesktop_GatewayServerHostname = groupInfo.RemoteDesktop_GatewayServerHostname;
+ RemoteDesktop_GatewayServerBypassLocalAddresses = groupInfo.RemoteDesktop_GatewayServerBypassLocalAddresses;
+ RemoteDesktop_GatewayServerLogonMethod = groupInfo.RemoteDesktop_GatewayServerLogonMethod;
+ RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer =
+ groupInfo.RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer;
+ RemoteDesktop_UseGatewayServerCredentials = groupInfo.RemoteDesktop_UseGatewayServerCredentials;
+ RemoteDesktop_GatewayServerUsername = groupInfo.RemoteDesktop_GatewayServerUsername;
+ RemoteDesktop_GatewayServerDomain = groupInfo.RemoteDesktop_GatewayServerDomain;
+ RemoteDesktop_GatewayServerPassword = groupInfo.RemoteDesktop_GatewayServerPassword;
+ RemoteDesktop_OverrideAudioRedirectionMode = groupInfo.RemoteDesktop_OverrideAudioRedirectionMode;
+ RemoteDesktop_AudioRedirectionMode =
+ RemoteDesktop_AudioRedirectionModes.FirstOrDefault(x => x == groupInfo.RemoteDesktop_AudioRedirectionMode);
+ RemoteDesktop_OverrideAudioCaptureRedirectionMode = groupInfo.RemoteDesktop_OverrideAudioCaptureRedirectionMode;
+ RemoteDesktop_AudioCaptureRedirectionMode =
+ RemoteDesktop_AudioCaptureRedirectionModes.FirstOrDefault(x =>
+ x == groupInfo.RemoteDesktop_AudioCaptureRedirectionMode);
+ RemoteDesktop_OverrideApplyWindowsKeyCombinations = groupInfo.RemoteDesktop_OverrideApplyWindowsKeyCombinations;
+ RemoteDesktop_KeyboardHookMode =
+ RemoteDesktop_KeyboardHookModes.FirstOrDefault(x => x == groupInfo.RemoteDesktop_KeyboardHookMode);
+ RemoteDesktop_OverrideRedirectClipboard = groupInfo.RemoteDesktop_OverrideRedirectClipboard;
+ RemoteDesktop_RedirectClipboard = groupInfo.RemoteDesktop_RedirectClipboard;
+ RemoteDesktop_OverrideRedirectDevices = groupInfo.RemoteDesktop_OverrideRedirectDevices;
+ RemoteDesktop_RedirectDevices = groupInfo.RemoteDesktop_RedirectDevices;
+ RemoteDesktop_OverrideRedirectDrives = groupInfo.RemoteDesktop_OverrideRedirectDrives;
+ RemoteDesktop_RedirectDrives = groupInfo.RemoteDesktop_RedirectDrives;
+ RemoteDesktop_OverrideRedirectPorts = groupInfo.RemoteDesktop_OverrideRedirectPorts;
+ RemoteDesktop_RedirectPorts = groupInfo.RemoteDesktop_RedirectPorts;
+ RemoteDesktop_OverrideRedirectSmartcards = groupInfo.RemoteDesktop_OverrideRedirectSmartcards;
+ RemoteDesktop_RedirectSmartCards = groupInfo.RemoteDesktop_RedirectSmartCards;
+ RemoteDesktop_OverrideRedirectPrinters = groupInfo.RemoteDesktop_OverrideRedirectPrinters;
+ RemoteDesktop_RedirectPrinters = groupInfo.RemoteDesktop_RedirectPrinters;
+ RemoteDesktop_OverridePersistentBitmapCaching = groupInfo.RemoteDesktop_OverridePersistentBitmapCaching;
+ RemoteDesktop_PersistentBitmapCaching = groupInfo.RemoteDesktop_PersistentBitmapCaching;
+ RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped =
+ groupInfo.RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped;
+ RemoteDesktop_ReconnectIfTheConnectionIsDropped = groupInfo.RemoteDesktop_ReconnectIfTheConnectionIsDropped;
+ RemoteDesktop_NetworkConnectionType =
+ RemoteDesktop_NetworkConnectionTypes.FirstOrDefault(x =>
+ x == groupInfo.RemoteDesktop_NetworkConnectionType);
+ RemoteDesktop_DesktopBackground = groupInfo.RemoteDesktop_DesktopBackground;
+ RemoteDesktop_FontSmoothing = groupInfo.RemoteDesktop_FontSmoothing;
+ RemoteDesktop_DesktopComposition = groupInfo.RemoteDesktop_DesktopComposition;
+ RemoteDesktop_ShowWindowContentsWhileDragging = groupInfo.RemoteDesktop_ShowWindowContentsWhileDragging;
+ RemoteDesktop_MenuAndWindowAnimation = groupInfo.RemoteDesktop_MenuAndWindowAnimation;
+ RemoteDesktop_VisualStyles = groupInfo.RemoteDesktop_VisualStyles;
+
+ // PowerShell
+ PowerShell_OverrideCommand = groupInfo.PowerShell_OverrideCommand;
+ PowerShell_Command = groupInfo.PowerShell_Command;
+ PowerShell_OverrideAdditionalCommandLine = groupInfo.PowerShell_OverrideAdditionalCommandLine;
+ PowerShell_AdditionalCommandLine = groupInfo.PowerShell_AdditionalCommandLine;
+ PowerShell_OverrideExecutionPolicy = groupInfo.PowerShell_OverrideExecutionPolicy;
+ PowerShell_ExecutionPolicies = Enum.GetValues(typeof(ExecutionPolicy)).Cast().ToList();
+ PowerShell_ExecutionPolicy =
+ PowerShell_ExecutionPolicies.FirstOrDefault(x => x == groupInfo.PowerShell_ExecutionPolicy);
+
+ // PuTTY
+ PuTTY_OverrideUsername = groupInfo.PuTTY_OverrideUsername;
+ PuTTY_Username = groupInfo.PuTTY_Username;
+ PuTTY_OverridePrivateKeyFile = groupInfo.PuTTY_OverridePrivateKeyFile;
+ PuTTY_PrivateKeyFile = groupInfo.PuTTY_PrivateKeyFile;
+ PuTTY_OverrideProfile = groupInfo.PuTTY_OverrideProfile;
+ PuTTY_Profile = groupInfo.PuTTY_Profile;
+ PuTTY_OverrideEnableLog = groupInfo.PuTTY_OverrideEnableLog;
+ PuTTY_EnableLog = groupInfo.PuTTY_EnableLog;
+ PuTTY_OverrideLogMode = groupInfo.PuTTY_OverrideLogMode;
+ PuTTY_LogMode = PuTTY_LogModes.FirstOrDefault(x => x == groupInfo.PuTTY_LogMode);
+ PuTTY_OverrideLogPath = groupInfo.PuTTY_OverrideLogPath;
+ PuTTY_LogPath = groupInfo.PuTTY_LogPath;
+ PuTTY_OverrideLogFileName = groupInfo.PuTTY_OverrideLogFileName;
+ PuTTY_LogFileName = groupInfo.PuTTY_LogFileName;
+ PuTTY_OverrideAdditionalCommandLine = groupInfo.PuTTY_OverrideAdditionalCommandLine;
+ PuTTY_AdditionalCommandLine = groupInfo.PuTTY_AdditionalCommandLine;
+
+ // AWS Session Manager
+ AWSSessionManager_OverrideProfile = groupInfo.AWSSessionManager_OverrideProfile;
+ AWSSessionManager_Profile = groupInfo.AWSSessionManager_Profile;
+ AWSSessionManager_OverrideRegion = groupInfo.AWSSessionManager_OverrideRegion;
+ AWSSessionManager_Region = groupInfo.AWSSessionManager_Region;
+
+ // TigerVNC
+ TigerVNC_OverridePort = groupInfo.TigerVNC_OverridePort;
+ TigerVNC_Port = groupInfo.TigerVNC_Port;
+
+ // SNMP
+ SNMP_OverrideOIDAndMode = groupInfo.SNMP_OverrideOIDAndMode;
+ SNMP_OID = groupInfo.SNMP_OID;
+ SNMP_Modes = new List { SNMPMode.Get, SNMPMode.Walk, SNMPMode.Set };
+ SNMP_Mode = SNMP_Modes.FirstOrDefault(x => x == groupInfo.SNMP_Mode);
+ SNMP_OverrideVersionAndAuth = groupInfo.SNMP_OverrideVersionAndAuth;
+ SNMP_Versions = Enum.GetValues(typeof(SNMPVersion)).Cast().ToList();
+ SNMP_Version = SNMP_Versions.FirstOrDefault(x => x == groupInfo.SNMP_Version);
+ SNMP_Community = groupInfo.SNMP_Community;
+ SNMP_Securities = new List
+ { SNMPV3Security.NoAuthNoPriv, SNMPV3Security.AuthNoPriv, SNMPV3Security.AuthPriv };
+ SNMP_Security = SNMP_Securities.FirstOrDefault(x => x == groupInfo.SNMP_Security);
+ SNMP_Username = groupInfo.SNMP_Username;
+ SNMP_AuthenticationProviders = Enum.GetValues(typeof(SNMPV3AuthenticationProvider))
+ .Cast().ToList();
+ SNMP_AuthenticationProvider =
+ SNMP_AuthenticationProviders.FirstOrDefault(x => x == groupInfo.SNMP_AuthenticationProvider);
+ SNMP_Auth = groupInfo.SNMP_Auth;
+ SNMP_PrivacyProviders = Enum.GetValues(typeof(SNMPV3PrivacyProvider)).Cast().ToList();
+ SNMP_PrivacyProvider = SNMP_PrivacyProviders.FirstOrDefault(x => x == groupInfo.SNMP_PrivacyProvider);
+ SNMP_Priv = groupInfo.SNMP_Priv;
+
+ _isLoading = false;
+ }
+
+ #endregion
+
+ #region Methods
+
+ private void ChangeNetworkConnectionTypeSettings(NetworkConnectionType connectionSpeed)
+ {
+ switch (connectionSpeed)
+ {
+ case NetworkConnectionType.Modem:
+ RemoteDesktop_DesktopBackground = false;
+ RemoteDesktop_FontSmoothing = false;
+ RemoteDesktop_DesktopComposition = false;
+ RemoteDesktop_ShowWindowContentsWhileDragging = false;
+ RemoteDesktop_MenuAndWindowAnimation = false;
+ RemoteDesktop_VisualStyles = false;
+ break;
+ case NetworkConnectionType.BroadbandLow:
+ RemoteDesktop_DesktopBackground = false;
+ RemoteDesktop_FontSmoothing = false;
+ RemoteDesktop_DesktopComposition = false;
+ RemoteDesktop_ShowWindowContentsWhileDragging = false;
+ RemoteDesktop_MenuAndWindowAnimation = false;
+ RemoteDesktop_VisualStyles = true;
+ break;
+ case NetworkConnectionType.Satellite:
+ case NetworkConnectionType.BroadbandHigh:
+ RemoteDesktop_DesktopBackground = false;
+ RemoteDesktop_FontSmoothing = false;
+ RemoteDesktop_DesktopComposition = true;
+ RemoteDesktop_ShowWindowContentsWhileDragging = false;
+ RemoteDesktop_MenuAndWindowAnimation = false;
+ RemoteDesktop_VisualStyles = true;
+ break;
+ case NetworkConnectionType.WAN:
+ case NetworkConnectionType.LAN:
+ RemoteDesktop_DesktopBackground = true;
+ RemoteDesktop_FontSmoothing = true;
+ RemoteDesktop_DesktopComposition = true;
+ RemoteDesktop_ShowWindowContentsWhileDragging = true;
+ RemoteDesktop_MenuAndWindowAnimation = true;
+ RemoteDesktop_VisualStyles = true;
+ break;
+ }
+ }
+
+ #endregion
+
#region ICommand & Actions
public ICommand SaveCommand { get; }
diff --git a/Source/NETworkManager/ViewModels/ProfileViewModel.cs b/Source/NETworkManager/ViewModels/ProfileViewModel.cs
index eee492d6d6..8e4aae5344 100644
--- a/Source/NETworkManager/ViewModels/ProfileViewModel.cs
+++ b/Source/NETworkManager/ViewModels/ProfileViewModel.cs
@@ -22,6 +22,7 @@ namespace NETworkManager.ViewModels;
public class ProfileViewModel : ViewModelBase
{
+ #region Constructor
public ProfileViewModel(Action saveCommand, Action cancelHandler,
IReadOnlyCollection groups, string group = null, ProfileEditMode editMode = ProfileEditMode.Add,
ProfileInfo profile = null, ApplicationName applicationName = ApplicationName.None)
@@ -333,6 +334,8 @@ public ProfileViewModel(Action saveCommand, Action
+
+
@@ -645,6 +647,18 @@
+
+
diff --git a/Source/NETworkManager/Views/ProfileDialog.xaml b/Source/NETworkManager/Views/ProfileDialog.xaml
index bb77099dc0..575d49cb28 100644
--- a/Source/NETworkManager/Views/ProfileDialog.xaml
+++ b/Source/NETworkManager/Views/ProfileDialog.xaml
@@ -1377,7 +1377,7 @@
VerticalContentAlignment="Top"
Height="150"
Text="{Binding Path=Description, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- mah:TextBoxHelper.Watermark="{x:Static Member=localization:Strings.ExampleDescription}" />
+ mah:TextBoxHelper.Watermark="{x:Static Member=localization:Strings.ExampleProfileDescription}" />
General > Applications`. [#2781](https://github.com/BornToBeRoot/NETworkManager/pull/2781)
+- Profiles now have a field for a description, which is displayed together with the host name/IP address in a tooltip in the profile sidebar. [#2877](https://github.com/BornToBeRoot/NETworkManager/pull/2877)
## Improvements
@@ -31,6 +32,7 @@ Release date: **xx.xx.2024**
## Bugfixes
- **Ping Monitor**
+
- A problem has been fixed where the ping does not start if the DNS server is not configured. This can occur if the network interface via which the Windows DNS server was configured is deactivated/disconnected. [#2876](https://github.com/BornToBeRoot/NETworkManager/pull/2876)
- TextBox content not centered because of ScrollViewer issue. [#2763](https://github.com/BornToBeRoot/NETworkManager/pull/2763)
From 44c8f491b29e9b75e8f2a710d5ed259b5b55079c Mon Sep 17 00:00:00 2001
From: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Date: Mon, 4 Nov 2024 04:07:58 +0100
Subject: [PATCH 3/4] Feature: Add group description
---
Website/docs/changelog/next-release.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/Website/docs/changelog/next-release.md b/Website/docs/changelog/next-release.md
index 57592b28bd..307d0dc7c2 100644
--- a/Website/docs/changelog/next-release.md
+++ b/Website/docs/changelog/next-release.md
@@ -28,6 +28,7 @@ Release date: **xx.xx.2024**
- `Set default` added (Set the startup application - available if not set)
- `Show` added (Shows the application in the main window - available if hidden)
- `Hide` added (Hides the application from the main window - available if shown)
+- Groups now have a field for a description [#2877](https://github.com/BornToBeRoot/NETworkManager/pull/2877)
## Bugfixes
From 2d5bb186bc7c7dc79e44eb14ae899da0fc1110df Mon Sep 17 00:00:00 2001
From: BornToBeRoot <16019165+BornToBeRoot@users.noreply.github.com>
Date: Mon, 4 Nov 2024 04:40:11 +0100
Subject: [PATCH 4/4] Feature: Profile & group description
---
.../Views/AWSSessionManagerHostView.xaml | 21 ++++++++++-
.../Views/DNSLookupHostView.xaml | 21 ++++++++++-
.../Views/IPGeolocationHostView.xaml | 21 ++++++++++-
.../Views/IPScannerHostView.xaml | 20 ++++++++++-
.../Views/NetworkInterfaceView.xaml | 21 ++++++++++-
.../Views/PingMonitorHostView.xaml | 3 +-
.../Views/PortScannerHostView.xaml | 28 ++++++++++++++-
.../Views/PowerShellHostView.xaml | 21 ++++++++++-
.../NETworkManager/Views/PuTTYHostView.xaml | 21 ++++++++++-
.../Views/RemoteDesktopHostView.xaml | 21 ++++++++++-
Source/NETworkManager/Views/SNMPHostView.xaml | 21 ++++++++++-
.../Views/TigerVNCHostView.xaml | 21 ++++++++++-
.../Views/TracerouteHostView.xaml | 21 ++++++++++-
.../NETworkManager/Views/WakeOnLANView.xaml | 35 +++++++++++++++----
.../Views/WebConsoleHostView.xaml | 21 ++++++++++-
.../NETworkManager/Views/WhoisHostView.xaml | 21 ++++++++++-
16 files changed, 316 insertions(+), 22 deletions(-)
diff --git a/Source/NETworkManager/Views/AWSSessionManagerHostView.xaml b/Source/NETworkManager/Views/AWSSessionManagerHostView.xaml
index 294c9b34f7..40f9b19ada 100644
--- a/Source/NETworkManager/Views/AWSSessionManagerHostView.xaml
+++ b/Source/NETworkManager/Views/AWSSessionManagerHostView.xaml
@@ -15,6 +15,7 @@
xmlns:interactivity="http://schemas.microsoft.com/xaml/behaviors"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:controls="clr-namespace:NETworkManager.Controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:AWSSessionManagerHostViewModel}">
@@ -387,7 +388,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/DNSLookupHostView.xaml b/Source/NETworkManager/Views/DNSLookupHostView.xaml
index a7e45fba9a..01ae728e6c 100644
--- a/Source/NETworkManager/Views/DNSLookupHostView.xaml
+++ b/Source/NETworkManager/Views/DNSLookupHostView.xaml
@@ -12,6 +12,7 @@
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:DNSLookupHostViewModel}">
@@ -213,7 +214,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/IPGeolocationHostView.xaml b/Source/NETworkManager/Views/IPGeolocationHostView.xaml
index 3859932f6e..aacd7279d8 100644
--- a/Source/NETworkManager/Views/IPGeolocationHostView.xaml
+++ b/Source/NETworkManager/Views/IPGeolocationHostView.xaml
@@ -12,6 +12,7 @@
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:IPGeolocationHostViewModel}">
@@ -216,7 +217,7 @@
@@ -337,8 +338,26 @@
BasedOn="{StaticResource MahApps.Styles.ListBoxItem}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/IPScannerHostView.xaml b/Source/NETworkManager/Views/IPScannerHostView.xaml
index 963bfd717a..a58d214bd2 100644
--- a/Source/NETworkManager/Views/IPScannerHostView.xaml
+++ b/Source/NETworkManager/Views/IPScannerHostView.xaml
@@ -12,6 +12,7 @@
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:IPScannerHostViewModel}">
@@ -215,7 +216,6 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/NetworkInterfaceView.xaml b/Source/NETworkManager/Views/NetworkInterfaceView.xaml
index 79dee8fcc2..51feecc174 100644
--- a/Source/NETworkManager/Views/NetworkInterfaceView.xaml
+++ b/Source/NETworkManager/Views/NetworkInterfaceView.xaml
@@ -15,6 +15,7 @@
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:controls="clr-namespace:NETworkManager.Controls"
xmlns:liveChart="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialog:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:NetworkInterfaceViewModel}">
@@ -1252,7 +1253,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/PingMonitorHostView.xaml b/Source/NETworkManager/Views/PingMonitorHostView.xaml
index 9ebc581bd9..da72b8ec1d 100644
--- a/Source/NETworkManager/Views/PingMonitorHostView.xaml
+++ b/Source/NETworkManager/Views/PingMonitorHostView.xaml
@@ -12,6 +12,7 @@
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PingMonitorHostViewModel}">
@@ -507,7 +508,7 @@
-
+
diff --git a/Source/NETworkManager/Views/PortScannerHostView.xaml b/Source/NETworkManager/Views/PortScannerHostView.xaml
index 02aa9f4ef2..202e01f6ba 100644
--- a/Source/NETworkManager/Views/PortScannerHostView.xaml
+++ b/Source/NETworkManager/Views/PortScannerHostView.xaml
@@ -12,6 +12,7 @@
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PortScannerHostViewModel}">
@@ -215,7 +216,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/PowerShellHostView.xaml b/Source/NETworkManager/Views/PowerShellHostView.xaml
index 3339a0606f..6efb2518a5 100644
--- a/Source/NETworkManager/Views/PowerShellHostView.xaml
+++ b/Source/NETworkManager/Views/PowerShellHostView.xaml
@@ -15,6 +15,7 @@
xmlns:interactivity="http://schemas.microsoft.com/xaml/behaviors"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:controls="clr-namespace:NETworkManager.Controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PowerShellHostViewModel}">
@@ -344,7 +345,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/PuTTYHostView.xaml b/Source/NETworkManager/Views/PuTTYHostView.xaml
index a31dbf8018..9e62bfef72 100644
--- a/Source/NETworkManager/Views/PuTTYHostView.xaml
+++ b/Source/NETworkManager/Views/PuTTYHostView.xaml
@@ -15,6 +15,7 @@
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:interactivity="http://schemas.microsoft.com/xaml/behaviors"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PuTTYHostViewModel}">
@@ -357,7 +358,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/RemoteDesktopHostView.xaml b/Source/NETworkManager/Views/RemoteDesktopHostView.xaml
index 354f3f88a4..c0c251a39e 100644
--- a/Source/NETworkManager/Views/RemoteDesktopHostView.xaml
+++ b/Source/NETworkManager/Views/RemoteDesktopHostView.xaml
@@ -14,6 +14,7 @@
xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:controls="clr-namespace:NETworkManager.Controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:RemoteDesktopHostViewModel}">
@@ -359,7 +360,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/SNMPHostView.xaml b/Source/NETworkManager/Views/SNMPHostView.xaml
index 5250f39f6c..a0570a5886 100644
--- a/Source/NETworkManager/Views/SNMPHostView.xaml
+++ b/Source/NETworkManager/Views/SNMPHostView.xaml
@@ -12,6 +12,7 @@
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:SNMPHostViewModel}">
@@ -214,7 +215,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/TigerVNCHostView.xaml b/Source/NETworkManager/Views/TigerVNCHostView.xaml
index 0636c65f67..7534efe5f5 100644
--- a/Source/NETworkManager/Views/TigerVNCHostView.xaml
+++ b/Source/NETworkManager/Views/TigerVNCHostView.xaml
@@ -14,6 +14,7 @@
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:controls="clr-namespace:NETworkManager.Controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:TigerVNCHostViewModel}">
@@ -318,7 +319,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/TracerouteHostView.xaml b/Source/NETworkManager/Views/TracerouteHostView.xaml
index 6a56c52d41..9253699360 100644
--- a/Source/NETworkManager/Views/TracerouteHostView.xaml
+++ b/Source/NETworkManager/Views/TracerouteHostView.xaml
@@ -12,6 +12,7 @@
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:TracerouteHostViewModel}">
@@ -214,7 +215,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/WakeOnLANView.xaml b/Source/NETworkManager/Views/WakeOnLANView.xaml
index 21057ac441..dfa7d10d46 100644
--- a/Source/NETworkManager/Views/WakeOnLANView.xaml
+++ b/Source/NETworkManager/Views/WakeOnLANView.xaml
@@ -12,6 +12,7 @@
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:WakeOnLANViewModel}">
@@ -229,10 +230,10 @@
-
+
-
@@ -304,7 +301,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/WebConsoleHostView.xaml b/Source/NETworkManager/Views/WebConsoleHostView.xaml
index a71f7a2351..6e8550a1b8 100644
--- a/Source/NETworkManager/Views/WebConsoleHostView.xaml
+++ b/Source/NETworkManager/Views/WebConsoleHostView.xaml
@@ -15,6 +15,7 @@
xmlns:resources="clr-namespace:NETworkManager.Properties"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:controls="clr-namespace:NETworkManager.Controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:WebConsoleHostViewModel}">
@@ -318,7 +319,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/NETworkManager/Views/WhoisHostView.xaml b/Source/NETworkManager/Views/WhoisHostView.xaml
index 747027c83b..c05e8e80a7 100644
--- a/Source/NETworkManager/Views/WhoisHostView.xaml
+++ b/Source/NETworkManager/Views/WhoisHostView.xaml
@@ -12,6 +12,7 @@
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:WhoisHostViewModel}">
@@ -215,7 +216,7 @@
@@ -336,8 +337,26 @@
BasedOn="{StaticResource MahApps.Styles.ListBoxItem}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+