mirror of
https://github.com/openziti/desktop-edge-win.git
synced 2026-10-13 00:02:50 +00:00
160 lines
5.6 KiB
C#
160 lines
5.6 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
using System.Diagnostics;
|
|
using System;
|
|
using System.Threading;
|
|
using System.Management.Automation;
|
|
using ZitiDesktopEdge.Models;
|
|
|
|
namespace ZitiDesktopEdge
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for MainMenu.xaml
|
|
/// </summary>
|
|
public partial class MainMenu : UserControl {
|
|
|
|
|
|
public delegate void AttachementChanged(bool attached);
|
|
public event AttachementChanged OnAttachmentChange;
|
|
public string menuState = "Main";
|
|
public string licenseData = "it's open source - someone motivated could track this down. we'll add this some day i'm sure";
|
|
|
|
public MainMenu() {
|
|
InitializeComponent();
|
|
LicensesItems.Text = licenseData;
|
|
}
|
|
|
|
private void HideMenu(object sender, MouseButtonEventArgs e) {
|
|
menuState = "Menu";
|
|
UpdateState();
|
|
MainMenuArea.Visibility = Visibility.Collapsed;
|
|
}
|
|
|
|
private void CloseApp(object sender, MouseButtonEventArgs e) {
|
|
Application.Current.Shutdown();
|
|
}
|
|
|
|
private void ShowAbout(object sender, MouseButtonEventArgs e) {
|
|
menuState = "About";
|
|
UpdateState();
|
|
}
|
|
|
|
private void ShowAdvanced(object sender, MouseButtonEventArgs e) {
|
|
menuState = "Advanced";
|
|
UpdateState();
|
|
}
|
|
private void ShowLicenses(object sender, MouseButtonEventArgs e) {
|
|
menuState = "Licenses";
|
|
UpdateState();
|
|
}
|
|
private void ShowConfig(object sender, MouseButtonEventArgs e) {
|
|
menuState = "Config";
|
|
UpdateState();
|
|
}
|
|
private void ShowLogs(object sender, MouseButtonEventArgs e) {
|
|
menuState = "Logs";
|
|
UpdateState();
|
|
}
|
|
private void ShowUILogs(object sender, MouseButtonEventArgs e) {
|
|
menuState = "UILogs";
|
|
UpdateState();
|
|
}
|
|
|
|
private void UpdateState() {
|
|
MainItems.Visibility = Visibility.Collapsed;
|
|
AboutItems.Visibility = Visibility.Collapsed;
|
|
MainItemsButton.Visibility = Visibility.Collapsed;
|
|
AboutItemsButton.Visibility = Visibility.Collapsed;
|
|
BackArrow.Visibility = Visibility.Collapsed;
|
|
AdvancedItems.Visibility = Visibility.Collapsed;
|
|
LicensesItems.Visibility = Visibility.Collapsed;
|
|
LogsItems.Visibility = Visibility.Collapsed;
|
|
ConfigItems.Visibility = Visibility.Collapsed;
|
|
|
|
if (menuState=="About") {
|
|
MenuTitle.Content = "About";
|
|
AboutItemsButton.Visibility = Visibility.Visible;
|
|
AboutItems.Visibility = Visibility.Visible;
|
|
BackArrow.Visibility = Visibility.Visible;
|
|
} else if (menuState=="Advanced") {
|
|
MenuTitle.Content = "Advanced Settings";
|
|
AdvancedItems.Visibility = Visibility.Visible;
|
|
BackArrow.Visibility = Visibility.Visible;
|
|
} else if (menuState=="Licenses") {
|
|
MenuTitle.Content = "Third Party Licenses";
|
|
LicensesItems.Visibility = Visibility.Visible;
|
|
BackArrow.Visibility = Visibility.Visible;
|
|
} else if (menuState=="Logs") {
|
|
ServiceClient.Client client = (ServiceClient.Client)Application.Current.Properties["ServiceClient"];
|
|
MenuTitle.Content = "Service Logs";
|
|
LogsItems.Text = client.GetLogs();
|
|
LogsItems.Visibility = Visibility.Visible;
|
|
BackArrow.Visibility = Visibility.Visible;
|
|
} else if (menuState == "UILogs") {
|
|
ServiceClient.Client client = (ServiceClient.Client)Application.Current.Properties["ServiceClient"];
|
|
MenuTitle.Content = "Application Logs";
|
|
LogsItems.Text = UILog.GetLogs();
|
|
LogsItems.Visibility = Visibility.Visible;
|
|
BackArrow.Visibility = Visibility.Visible;
|
|
} else if (menuState=="Config") {
|
|
MenuTitle.Content = "Tunnel Configuration";
|
|
ConfigItems.Visibility = Visibility.Visible;
|
|
BackArrow.Visibility = Visibility.Visible;
|
|
|
|
ConfigIp.Value = Application.Current.Properties["ip"]?.ToString();
|
|
ConfigSubnet.Value = Application.Current.Properties["subnet"]?.ToString();
|
|
ConfigMtu.Value = Application.Current.Properties["mtu"]?.ToString();
|
|
ConfigDns.Value = Application.Current.Properties["dns"]?.ToString();
|
|
} else {
|
|
MenuTitle.Content = "Main Menu";
|
|
MainItems.Visibility = Visibility.Visible;
|
|
MainItemsButton.Visibility = Visibility.Visible;
|
|
}
|
|
}
|
|
|
|
private void GoBack(object sender, MouseButtonEventArgs e) {
|
|
if (menuState=="Config"||menuState=="Logs"||menuState=="UILogs") {
|
|
menuState = "Advanced";
|
|
} else if (menuState=="Licenses") {
|
|
menuState = "About";
|
|
} else {
|
|
menuState = "Menu";
|
|
}
|
|
UpdateState();
|
|
}
|
|
private void ShowPrivacy(object sender, MouseButtonEventArgs e) {
|
|
Process.Start(new ProcessStartInfo("https://netfoundry.io/privacy") { UseShellExecute = true });
|
|
}
|
|
private void ShowTerms(object sender, MouseButtonEventArgs e) {
|
|
Process.Start(new ProcessStartInfo("https://netfoundry.io/terms") { UseShellExecute = true });
|
|
}
|
|
private void ShowFeedback(object sender, MouseButtonEventArgs e) {
|
|
Process.Start(new ProcessStartInfo("mailto:ziti-support@netfoundry.io") { UseShellExecute = true });
|
|
}
|
|
private void ShowSupport(object sender, MouseButtonEventArgs e) {
|
|
Process.Start(new ProcessStartInfo("https://openziti.discourse.group/") { UseShellExecute = true });
|
|
}
|
|
|
|
private void DetachWindow(object sender, MouseButtonEventArgs e) {
|
|
Application.Current.MainWindow.ShowInTaskbar = true;
|
|
DetachButton.Visibility = Visibility.Collapsed;
|
|
AttachButton.Visibility = Visibility.Visible;
|
|
Arrow.Visibility = Visibility.Collapsed;
|
|
if (OnAttachmentChange != null) {
|
|
OnAttachmentChange(false);
|
|
}
|
|
MainMenuArea.Visibility = Visibility.Collapsed;
|
|
}
|
|
private void RetachWindow(object sender, MouseButtonEventArgs e) {
|
|
Application.Current.MainWindow.ShowInTaskbar = false;
|
|
DetachButton.Visibility = Visibility.Visible;
|
|
AttachButton.Visibility = Visibility.Collapsed;
|
|
Arrow.Visibility = Visibility.Visible;
|
|
if (OnAttachmentChange != null) {
|
|
OnAttachmentChange(true);
|
|
}
|
|
}
|
|
}
|
|
}
|