From 4762311977a2ebe26c6ac140bdcfc44d7733ff9a Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Fri, 4 Nov 2016 12:39:57 -0700 Subject: work in progress windows UI update --- windows/WinUI/APIHandler.cs | 13 ++++++++++++- windows/WinUI/NetworkInfoView.xaml | 17 +++++++++++++---- windows/WinUI/NetworkInfoView.xaml.cs | 31 +++++++++++++++++++++++++++++++ windows/WinUI/NetworkRoute.cs | 24 ++++++++++++++++++++++++ windows/WinUI/WinUI.csproj | 1 + windows/WinUI/ZeroTierNetwork.cs | 15 ++++++++++++--- 6 files changed, 93 insertions(+), 8 deletions(-) create mode 100644 windows/WinUI/NetworkRoute.cs diff --git a/windows/WinUI/APIHandler.cs b/windows/WinUI/APIHandler.cs index 92b83021..83a22c66 100644 --- a/windows/WinUI/APIHandler.cs +++ b/windows/WinUI/APIHandler.cs @@ -107,7 +107,7 @@ namespace WinUI } } - public void JoinNetwork(string nwid) + public void JoinNetwork(string nwid, bool allowManaged = false, bool allowGlobal = false, bool allowDefault = false) { var request = WebRequest.Create(url + "/network/" + nwid + "?auth=" + authtoken) as HttpWebRequest; if (request == null) @@ -116,6 +116,17 @@ namespace WinUI } request.Method = "POST"; + request.ContentType = "applicaiton/json"; + + using (var streamWriter = new StreamWriter(((HttpWebRequest)request).GetRequestStream())) + { + string json = "{\"allowManaged\":" + (allowManaged ? "true" : "false") + "," + + "\"allowGlobal\":" + (allowGlobal ? "true" : "false") + "," + + "\"allowDefault\":" + (allowDefault ? "true" : "false") + "}"; + streamWriter.Write(json); + streamWriter.Flush(); + streamWriter.Close(); + } try { diff --git a/windows/WinUI/NetworkInfoView.xaml b/windows/WinUI/NetworkInfoView.xaml index 54ff0375..1ca488b1 100644 --- a/windows/WinUI/NetworkInfoView.xaml +++ b/windows/WinUI/NetworkInfoView.xaml @@ -26,6 +26,9 @@ + + + @@ -48,8 +51,11 @@ + + + - + @@ -59,10 +65,13 @@ - - + + + + + - + diff --git a/windows/WinUI/NetworkInfoView.xaml.cs b/windows/WinUI/NetworkInfoView.xaml.cs index ccdec288..5c96b985 100644 --- a/windows/WinUI/NetworkInfoView.xaml.cs +++ b/windows/WinUI/NetworkInfoView.xaml.cs @@ -54,6 +54,10 @@ namespace WinUI } this.managedIps.Text = iplist; + + this.allowDefault.IsChecked = network.AllowDefault; + this.allowGlobal.IsChecked = network.AllowGlobal; + this.allowManaged.IsChecked = network.AllowManaged; } public bool HasNetwork(ZeroTierNetwork network) @@ -68,5 +72,32 @@ namespace WinUI { handler.LeaveNetwork(network.NetworkId); } + + private void AllowManaged_CheckStateChanged(object sender, RoutedEventArgs e) + { + CheckBox cb = sender as CheckBox; + handler.JoinNetwork(network.NetworkId, + allowManaged.IsChecked ?? false, + allowGlobal.IsChecked ?? false, + allowDefault.IsChecked ?? false); + } + + private void AllowGlobal_CheckStateChanged(object sender, RoutedEventArgs e) + { + CheckBox cb = sender as CheckBox; + handler.JoinNetwork(network.NetworkId, + allowManaged.IsChecked ?? false, + allowGlobal.IsChecked ?? false, + allowDefault.IsChecked ?? false); + } + + private void AllowDefault_CheckStateChanged(object sender, RoutedEventArgs e) + { + CheckBox cb = sender as CheckBox; + handler.JoinNetwork(network.NetworkId, + allowManaged.IsChecked ?? false, + allowGlobal.IsChecked ?? false, + allowDefault.IsChecked ?? false); + } } } diff --git a/windows/WinUI/NetworkRoute.cs b/windows/WinUI/NetworkRoute.cs new file mode 100644 index 00000000..61616f44 --- /dev/null +++ b/windows/WinUI/NetworkRoute.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +namespace WinUI +{ + public class NetworkRoute + { + [JsonProperty("target")] + public string Target { get; set; } + + [JsonProperty("via")] + public string Via { get; set; } + + [JsonProperty("flags")] + public int Flags { get; set; } + + [JsonProperty("metric")] + public int Metric { get; set; } + } +} diff --git a/windows/WinUI/WinUI.csproj b/windows/WinUI/WinUI.csproj index c3eeaba4..9e3527c9 100644 --- a/windows/WinUI/WinUI.csproj +++ b/windows/WinUI/WinUI.csproj @@ -99,6 +99,7 @@ MSBuild:Compile Designer + NetworksPage.xaml diff --git a/windows/WinUI/ZeroTierNetwork.cs b/windows/WinUI/ZeroTierNetwork.cs index cce65441..6a6f8498 100644 --- a/windows/WinUI/ZeroTierNetwork.cs +++ b/windows/WinUI/ZeroTierNetwork.cs @@ -42,13 +42,22 @@ namespace WinUI [JsonProperty("netconfRevision")] public int NetconfRevision { get; set; } - [JsonProperty("multicastSubscriptions")] - public string[] MulticastSubscriptions { get; set; } - [JsonProperty("assignedAddresses")] public string[] AssignedAddresses { get; set; } + [JsonProperty("routes")] + public NetworkRoute[] Routes { get; set; } + [JsonProperty("portDeviceName")] public string DeviceName { get; set; } + + [JsonProperty("allowManaged")] + public bool AllowManaged { get; set; } + + [JsonProperty("allowGlobal")] + public bool AllowGlobal { get; set; } + + [JsonProperty("allowDefault")] + public bool AllowDefault { get; set; } } } -- cgit v1.2.3