270 lines
23 KiB
XML
270 lines
23 KiB
XML
<UserControl x:Class="Server_Dashboard.Controls.ServerModules.ServerModule"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:local="clr-namespace:Server_Dashboard.Controls.ServerModules"
|
|
xmlns:halfroundprogressbar="clr-namespace:Server_Dashboard.Controls.HalfRoundProgressBar"
|
|
xmlns:doubleroundprogressbar="clr-namespace:Server_Dashboard.Controls.DoubleRoundProgressBar" mc:Ignorable="d">
|
|
<!--Module-->
|
|
<Button>
|
|
<Button.Style>
|
|
<Style TargetType="Button">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="Button">
|
|
<Border x:Name="Border" Background="{StaticResource BackgroundSurface_02dp}" BorderThickness="2" MinHeight="300" MinWidth="400" Width="Auto" Height="Auto" Margin="10" CornerRadius="5">
|
|
<Border.Effect>
|
|
<DropShadowEffect BlurRadius="5" ShadowDepth="0" />
|
|
</Border.Effect>
|
|
<Border x:Name="BorderBackground" Background="{StaticResource BackgroundSurface_02dp}" CornerRadius="5">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="40" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<!--Top Bar-->
|
|
<Border CornerRadius="4 4 0 0" Grid.Row="0" Background="{StaticResource BackgroundSurface_08dp}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Image Grid.Column="0" Margin="7.5 0 7.5 0" Height="25" Width="25" Source="{Binding ModuleIcon}" />
|
|
<TextBlock Foreground="{StaticResource DeepPurple_A100}" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding ModuleName}" />
|
|
<Border CornerRadius="0 5 0 0" Background="{Binding StatusIndicator}" Grid.Column="3">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Margin="7 0 30 0" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="0" FontSize="24" Text="Status">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.87" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
<Border CornerRadius="0 4 0 0" Grid.Column="1" HorizontalAlignment="Right" Background="{Binding StatusIndicatorBG}" Padding="6">
|
|
<Ellipse Fill="{Binding StatusIndicator}" StrokeThickness="0" Width="25" Height="25" />
|
|
</Border>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</Border>
|
|
<Grid Grid.Row="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="Server" FontSize="20" Margin="10 5 0 5">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.87" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
<TextBlock Grid.Column="1" Text="{Binding ServerInformation.ServerName}" FontSize="20" Margin="10 5 0 5">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.87" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Grid>
|
|
<!--Main Content-->
|
|
<Grid Grid.Row="2" Margin="20" Width="Auto">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1.5*" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<!--Information panel, left-->
|
|
<Grid Margin="0 0 25 0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0">
|
|
<Border BorderThickness="0 0 0 1" Padding="0 0 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="User" FontSize="16">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="Public IP" FontSize="16">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="Private IP" FontSize="16">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="Uptime" FontSize="16">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="Creation Date" FontSize="16">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 0" Padding="0 5 0 0">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="Creator" FontSize="16">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="1">
|
|
<Border BorderThickness="0 0 0 1" Padding="0 0 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="{Binding ServerInformation.OsUserName}" FontSize="16" Padding="15 0 0 0">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="{Binding ServerInformation.PublicIpAddress}" FontSize="16" Padding="15 0 0 0">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="{Binding ServerInformation.PrivateIpAddress}" FontSize="16" Padding="15 0 0 0">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="{Binding ServerInformation.Uptime}" FontSize="16" Padding="15 0 0 0">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 1" Padding="0 5 0 5">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="{Binding CreationDate}" FontSize="16" Padding="15 0 0 0">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
<Border BorderThickness="0 1 0 0" Padding="0 5 0 0">
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="White" Opacity="0.12" />
|
|
</Border.BorderBrush>
|
|
<TextBlock Text="{Binding Creator}" FontSize="16" Padding="15 0 0 0">
|
|
<TextBlock.Foreground>
|
|
<SolidColorBrush Color="White" Opacity="0.60" />
|
|
</TextBlock.Foreground>
|
|
</TextBlock>
|
|
</Border>
|
|
</StackPanel>
|
|
</Grid>
|
|
<!--Graphical Indicators Right-->
|
|
<Grid Grid.Column="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Grid.Column="0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition />
|
|
</Grid.RowDefinitions>
|
|
<halfroundprogressbar:HalfRoundProgressBar Margin="5" Grid.Row="0" ProgressBorderBrush="{StaticResource BackgroundSurface_02dp}" BackgroundBrush="{StaticResource BackgroundSurface_08dp}" Height="100" Width="100" Value="{Binding ServerInfo.CpuUsage}" IndicatorBrush="{StaticResource Teal_A100}" />
|
|
<TextBlock Foreground="{StaticResource Teal_A100}" Grid.Row="0" Text="CPU" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" />
|
|
<halfroundprogressbar:HalfRoundProgressBar Margin="5" Grid.Row="1" ProgressBorderBrush="{StaticResource BackgroundSurface_02dp}" BackgroundBrush="{StaticResource BackgroundSurface_08dp}" Height="100" Width="100" Value="{Binding ServerInfo.GpuUsage}" IndicatorBrush="{StaticResource Teal_A100}" />
|
|
<TextBlock Foreground="{StaticResource Teal_A100}" Grid.Row="1" Text="GPU" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" />
|
|
</Grid>
|
|
<Grid Grid.Column="1">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition />
|
|
</Grid.RowDefinitions>
|
|
<doubleroundprogressbar:DoubleRoundProgressBar ValueRead="70" ValueWrite="60" ReadIndicatorBrush="{StaticResource DeepPurple_A100}" WriteIndicatorBrush="{StaticResource Teal_A100}" Margin="5" Grid.Row="0" ProgressBorderBrush="{StaticResource BackgroundSurface_02dp}" BackgroundBrush="{StaticResource BackgroundSurface_08dp}" Height="100" Width="100" />
|
|
<StackPanel Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center">
|
|
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" TextAlignment="Center" Text="Read" Foreground="{StaticResource DeepPurple_A100}" />
|
|
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" TextAlignment="Center" Text="Write" Foreground="{StaticResource Teal_A100}" />
|
|
</StackPanel>
|
|
<doubleroundprogressbar:DoubleRoundProgressBar ValueRead="70" ValueWrite="60" ReadIndicatorBrush="{StaticResource DeepPurple_A100}" WriteIndicatorBrush="{StaticResource Teal_A100}" Margin="5" Grid.Row="1" ProgressBorderBrush="{StaticResource BackgroundSurface_02dp}" BackgroundBrush="{StaticResource BackgroundSurface_08dp}" Height="100" Width="100" />
|
|
<StackPanel Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center">
|
|
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" TextAlignment="Center" Text="UP" Foreground="{StaticResource DeepPurple_A100}" />
|
|
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="18" TextAlignment="Center" Text="DOWN" Foreground="{StaticResource Teal_A100}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="Border" Property="BorderBrush">
|
|
<Setter.Value>
|
|
<SolidColorBrush Color="#B388FF" Opacity=".37" />
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
<Trigger Property="IsFocused" Value="True">
|
|
</Trigger>
|
|
<Trigger Property="IsPressed" Value="True">
|
|
<Setter TargetName="Border" Property="BorderBrush">
|
|
<Setter.Value>
|
|
<SolidColorBrush Color="#B388FF" Opacity=".87" />
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
</Button.Style>
|
|
</Button>
|
|
</UserControl> |