1
0

113 lines
7.3 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:u="https://irihi.tech/ursa"
xmlns:vm="using:Flawless.Client.ViewModels"
x:DataType="vm:SettingViewModel"
mc:Ignorable="d" d:DesignWidth="1280" d:DesignHeight="768"
x:Class="Flawless.Client.Views.SettingView">
<DockPanel Margin="50">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Spacing="20">
<u:IconButton Height="4" Icon="{StaticResource SemiIconArrowLeft}" Content="Back"
Command="{Binding GoBackCommand}"/>
<Label FontWeight="400" FontSize="28" Content="Settings"/>
</StackPanel>
<TabControl TabStripPlacement="Left" Margin="0 20">
<TabItem Header="Account">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch" LabelPosition="Top">
<Label IsVisible="{Binding LoginUser.IsAdmin}" Content="You are a server manager!"/>
<TextBox u:FormItem.Label="Username" IsReadOnly="True"
Text="{Binding LoginUser.Username, Mode=OneWay}"/>
<TextBox u:FormItem.Label="Nickname" Text="{Binding Nickname}"/>
<TextBox u:FormItem.Label="Email" Text="{Binding Email}"/>
<TextBox u:FormItem.Label="Phone Number" Text="{Binding PhoneNumber}"/>
<u:EnumSelector u:FormItem.Label="Gender" SelectedValue="{Binding Gender}"/>
<TextBox u:FormItem.Label="Bio" Classes="TextArea" Text="{Binding Bio}"/>
<StackPanel Orientation="Horizontal" Spacing="4">
<u:IconButton Content="Save" Command="{Binding SaveAccountChangesCommand}"/>
<u:IconButton Content="Change Password" Command="{Binding ChangePasswordCommand}"/>
<u:IconButton Classes="Danger" Content="Delete" Command="{Binding DeleteSelfAccountCommand}"/>
</StackPanel>
</u:Form>
</ScrollViewer>
</TabItem>
<TabItem Header="Preference">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<u:FormItem Label="Default Storage Location">
<u:PathPicker/>
</u:FormItem>
<u:FormGroup Header="Workspace Refresh">
<StackPanel Spacing="4">
<CheckBox Theme="{StaticResource CardCheckBox}" Content="Open Workspace"
IsChecked="{Binding SettingModel.RefreshWorkspaceOnOpen}"/>
<CheckBox Theme="{StaticResource CardCheckBox}" Content="Filesystem Changed"
IsChecked="{Binding SettingModel.RefreshWorkspaceOnFilesystemChanges}"/>
</StackPanel>
</u:FormGroup>
<u:FormGroup Header="Extern Tools">
<u:PathPicker u:FormItem.Label="Open Folder"/>
<u:PathPicker u:FormItem.Label="Diff Tool"/>
</u:FormGroup>
<StackPanel Orientation="Horizontal" Spacing="4">
<u:IconButton Content="Save" Command="{Binding SaveClientPreferenceCommand}"/>
<u:IconButton Classes="Danger" Content="Reset" Command="{Binding ResetClientPreferenceCommand}"/>
</StackPanel>
</u:Form>
</ScrollViewer>
</TabItem>
<TabItem IsVisible="{Binding LoginUser.IsAdmin}" Header="Server">
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<!-- <TextBox u:FormItem.Label="Server Public Name"/> -->
<!-- <ToggleSwitch u:FormItem.Label="Allow Public Register"/> -->
<u:FormGroup>
<TextBox u:FormItem.Label="IP Whitelist" Classes="TextArea" AcceptsReturn="True"
Text="{Binding ServerWhitelist}"/>
<TextBox u:FormItem.Label="IP Blacklist" Classes="TextArea" AcceptsReturn="True"
Text="{Binding ServerBlacklist}"/>
</u:FormGroup>
<StackPanel Orientation="Horizontal" Spacing="4">
<u:IconButton Content="Save" Command="{Binding SaveServerPreferenceCommand}"/>
<u:IconButton Classes="Danger" Content="Reset"
Command="{Binding ResetServerPreferenceCommand}"/>
</StackPanel>
</u:Form>
</ScrollViewer>
</TabItem>
<TabItem IsVisible="{Binding LoginUser.IsAdmin}" Header="Users">
</TabItem>
<TabItem IsVisible="{Binding LoginUser.IsAdmin}" Header="Logfile">
<StackPanel Spacing="8" Orientation="Vertical" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<StackPanel Orientation="Horizontal" Spacing="4">
<DatePicker SelectedDate="{Binding LogSearchFrom}"/>
<DatePicker SelectedDate="{Binding LogSearchTo}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Spacing="4">
<u:EnumSelector SelectedValue="{Binding Loglevel}"/>
<NumericUpDown Value="{Binding PageSize}" Minimum="10" Maximum="100"/>
<NumericUpDown Value="{Binding Page}" Minimum="1"/>
<u:IconButton Icon="{StaticResource SemiIconSearch}"
Command="{Binding DownloadServerLogCommand}"/>
</StackPanel>
<ListBox ItemsSource="{Binding Logs}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid RowDefinitions="Auto, *" ColumnDefinitions="Auto,*,Auto">
<Label Grid.Row="0" Grid.Column="0" FontSize="16" Content="{Binding Level}"/>
<Label Grid.Row="0" Grid.Column="2" FontSize="16" Content="{Binding Time}"/>
<Label Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Content="{Binding Message}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</TabItem>
</TabControl>
</DockPanel>
</UserControl>