Enable hyperlinks.

Sanitize hyperlinks.
This commit is contained in:
Brant Martin
2019-03-02 12:14:32 -05:00
parent dc7a27a5e3
commit 263a8229fa
2 changed files with 25 additions and 3 deletions

View File

@@ -275,7 +275,7 @@
<Compile Include="Views\ModListControl.xaml.cs"> <Compile Include="Views\ModListControl.xaml.cs">
<DependentUpon>ModListControl.xaml</DependentUpon> <DependentUpon>ModListControl.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\PluginBrowser.xaml.cs"> <Compile Include="Views\PluginBrowser\PluginBrowser.xaml.cs">
<DependentUpon>PluginBrowser.xaml</DependentUpon> <DependentUpon>PluginBrowser.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\ThemeControl.xaml.cs"> <Compile Include="Views\ThemeControl.xaml.cs">
@@ -442,7 +442,7 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Views\PluginBrowser.xaml"> <Page Include="Views\PluginBrowser\PluginBrowser.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>

View File

@@ -48,14 +48,36 @@ namespace Torch.Server.Views
public PluginBrowser() public PluginBrowser()
{ {
InitializeComponent(); InitializeComponent();
Task.Run(async () => Task.Run(async () =>
{ {
var res = await PluginQuery.Instance.QueryAll(); var res = await PluginQuery.Instance.QueryAll();
if (res == null) if (res == null)
return; return;
foreach(var item in res.Plugins) foreach (var item in res.Plugins)
Plugins.Add(item); Plugins.Add(item);
PluginsList.Dispatcher.Invoke(() => PluginsList.SelectedIndex = 0);
}); });
MarkdownFlow.CommandBindings.Add(new CommandBinding(NavigationCommands.GoToPage, (sender, e) => OpenUri((string)e.Parameter)));
}
public static bool IsValidUri(string uri)
{
if (!Uri.IsWellFormedUriString(uri, UriKind.Absolute))
return false;
Uri tmp;
if (!Uri.TryCreate(uri, UriKind.Absolute, out tmp))
return false;
return tmp.Scheme == Uri.UriSchemeHttp || tmp.Scheme == Uri.UriSchemeHttps;
}
public static bool OpenUri(string uri)
{
if (!IsValidUri(uri))
return false;
System.Diagnostics.Process.Start(uri);
return true;
} }
private void PluginsList_SelectionChanged(object sender, SelectionChangedEventArgs e) private void PluginsList_SelectionChanged(object sender, SelectionChangedEventArgs e)