120 lines
8.2 KiB
XML
120 lines
8.2 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"
|
|
xmlns:lvc="using:LiveChartsCore.SkiaSharpView.Avalonia"
|
|
xmlns:views="clr-namespace:Flawless.Client.Views"
|
|
x:DataType="vm:RepositoryViewModel"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
x:Class="Flawless.Client.Views.RepositoryPage.RepoSettingPageView">
|
|
<TabControl TabStripPlacement="Left">
|
|
<TabItem Header="Members">
|
|
<StackPanel Width="600" Orientation="Vertical" HorizontalAlignment="Left" Margin="6">
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Spacing="8">
|
|
<u:IconButton Icon="{StaticResource SemiIconPlus}" Content="Add User"
|
|
IsVisible="{Binding Repository.OwnByCurrentUser}"
|
|
Command="{Binding AddMemberFromServerAsyncCommand}"/>
|
|
<u:IconButton Icon="{StaticResource SemiIconRefresh}" Content="Refresh"
|
|
Command="{Binding RefreshRepositoryRoleInfoAsyncCommand}" />
|
|
</StackPanel>
|
|
<ScrollViewer HorizontalAlignment="Stretch">
|
|
<ItemsControl ItemsSource="{Binding Repository.Members}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid ColumnDefinitions="Auto, *, Auto" Margin="0 16" VerticalAlignment="Center">
|
|
<StackPanel Grid.Column="0" Spacing="6" Orientation="Horizontal">
|
|
<Label FontSize="16" VerticalContentAlignment="Center" Content="{Binding Username}"/>
|
|
<Label VerticalContentAlignment="Center" Classes="Blue"
|
|
Theme="{StaticResource TagLabel}" Content="{Binding Role}"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Spacing="8" IsVisible="{Binding CanEdit}" Orientation="Horizontal">
|
|
<u:IconButton Icon="{StaticResource SemiIconEdit}"
|
|
Command="{Binding $parent[ItemsControl].((vm:RepositoryViewModel)DataContext).ModifyMemberFromServerAsyncCommand}"
|
|
CommandParameter="{Binding .}"/>
|
|
<u:IconButton Classes="Danger" Icon="{StaticResource SemiIconExit}"
|
|
Command="{Binding $parent[ItemsControl].((vm:RepositoryViewModel)DataContext).DeleteMemberFromServerAsyncCommand}"
|
|
CommandParameter="{Binding .}"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
</StackPanel>
|
|
</TabItem>
|
|
<TabItem Header="Admin Area" IsVisible="{Binding IsOwnerRole}">
|
|
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
|
|
<u:Form HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
|
<u:FormItem Label="Repository Description">
|
|
<TextBox Classes="TextArea" HorizontalAlignment="Stretch">
|
|
<TextBox.KeyBindings>
|
|
<KeyBinding Gesture="Enter"></KeyBinding>
|
|
</TextBox.KeyBindings>
|
|
</TextBox>
|
|
</u:FormItem>
|
|
<u:FormItem Label="Delete Repository">
|
|
<Button HorizontalAlignment="Stretch" Classes="Danger" Content="Yes I Want to Delete this Repository"
|
|
Command="{Binding DeleteRepositoryBothServerAndLocalCommand}"/>
|
|
</u:FormItem>
|
|
<u:FormItem Label="Webhook" IsVisible="{Binding ShowWebHook}">
|
|
<StackPanel>
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
<u:IconButton Content="Refresh" Icon="{StaticResource SemiIconRefresh}"
|
|
Command="{Binding RefreshWebhooksCommand}"/>
|
|
<u:IconButton Content="Add" Icon="{StaticResource SemiIconPlus}"
|
|
Command="{Binding AddWebhookCommand}"
|
|
IsVisible="{Binding IsOwnerRole}"/>
|
|
</StackPanel>
|
|
|
|
<DataGrid ItemsSource="{Binding Repository.Webhooks}"
|
|
IsReadOnly="True"
|
|
AutoGenerateColumns="False">
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="URL" Binding="{Binding TargetUrl}"/>
|
|
<DataGridCheckBoxColumn Header="Active" Binding="{Binding Active}"/>
|
|
<DataGridTextColumn Header="Type" Binding="{Binding EventType}"/>
|
|
<DataGridTemplateColumn IsVisible="{Binding IsOwnerRole}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Button Content="Toggle Activate"
|
|
Command="{Binding $parent[views:RepositoryView].((vm:RepositoryViewModel)DataContext).ToggleWebhookCommand}"
|
|
CommandParameter="{Binding}"/>
|
|
<Button Content="Toggle Activate"
|
|
Command="{Binding $parent[views:RepositoryView].((vm:RepositoryViewModel)DataContext).DeleteWebhookCommand}"
|
|
CommandParameter="{Binding}"/>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</StackPanel>
|
|
</u:FormItem>
|
|
</u:Form>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
<TabItem Header="Statics" IsVisible="{Binding IsOwnerRole}">
|
|
<ScrollViewer Width="600" HorizontalAlignment="Left" Margin="6">
|
|
<StackPanel Spacing="16" HorizontalAlignment="Stretch">
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
<u:IconButton Content="Refresh" Icon="{StaticResource SemiIconRefresh}"
|
|
Command="{Binding RefreshStatisticDataCommand}"/>
|
|
</StackPanel>
|
|
<StackPanel HorizontalAlignment="Stretch" Orientation="Vertical">
|
|
<Label>Every Day Commits</Label>
|
|
<lvc:CartesianChart Series="{Binding ByDay, Mode=TwoWay}" XAxes="{Binding XAxesByDay, Mode=TwoWay}">
|
|
</lvc:CartesianChart>
|
|
</StackPanel>
|
|
<StackPanel HorizontalAlignment="Stretch" Orientation="Vertical">
|
|
<Label>Depot Sizes</Label>
|
|
<TreeDataGrid Source="{Binding Depots}"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
</TabControl>
|
|
</UserControl>
|