| 1 | <Page |
| 2 | x:Class="RblxTool.Views.GroupsPage" |
| 3 | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| 4 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| 5 | xmlns:models="using:RblxTool.Models"> |
| 6 | |
| 7 | <Grid Padding="{StaticResource PagePadding}" RowSpacing="16"> |
| 8 | <Grid.RowDefinitions> |
| 9 | <RowDefinition Height="Auto" /> |
| 10 | <RowDefinition Height="Auto" /> |
| 11 | <RowDefinition Height="Auto" /> |
| 12 | <RowDefinition Height="*" /> |
| 13 | </Grid.RowDefinitions> |
| 14 | |
| 15 | <TextBlock Style="{StaticResource SectionTitle}" Text="Ownerless Group Hunter" /> |
| 16 | |
| 17 | <Border Grid.Row="1" Style="{StaticResource CardBorder}"> |
| 18 | <StackPanel Spacing="12"> |
| 19 | <TextBlock |
| 20 | FontSize="12" |
| 21 | Opacity="0.7" |
| 22 | TextWrapping="Wrap" |
| 23 | Text="Sweeps group id ranges 100 at a time through the batch endpoint, keeps the ones with no owner, then optionally reads member count and entry policy before claiming." /> |
| 24 | <Grid ColumnSpacing="20"> |
| 25 | <Grid.ColumnDefinitions> |
| 26 | <ColumnDefinition Width="*" /> |
| 27 | <ColumnDefinition Width="*" /> |
| 28 | <ColumnDefinition Width="*" /> |
| 29 | <ColumnDefinition Width="*" /> |
| 30 | <ColumnDefinition Width="Auto" /> |
| 31 | </Grid.ColumnDefinitions> |
| 32 | <StackPanel> |
| 33 | <TextBlock Style="{StaticResource FieldLabel}" Text="Start id" /> |
| 34 | <NumberBox x:Name="StartBox" Minimum="1" Value="1" SpinButtonPlacementMode="Compact" /> |
| 35 | </StackPanel> |
| 36 | <StackPanel Grid.Column="1"> |
| 37 | <TextBlock Style="{StaticResource FieldLabel}" Text="End id" /> |
| 38 | <NumberBox x:Name="EndBox" Minimum="1" Value="200000" SpinButtonPlacementMode="Compact" /> |
| 39 | </StackPanel> |
| 40 | <StackPanel Grid.Column="2"> |
| 41 | <TextBlock Style="{StaticResource FieldLabel}" Text="Min members" /> |
| 42 | <NumberBox x:Name="MinMembersBox" Minimum="0" Value="1" SpinButtonPlacementMode="Compact" /> |
| 43 | </StackPanel> |
| 44 | <StackPanel Grid.Column="3"> |
| 45 | <TextBlock Style="{StaticResource FieldLabel}" Text="Workers" /> |
| 46 | <NumberBox x:Name="ThreadsBox" Minimum="1" Maximum="64" Value="12" SpinButtonPlacementMode="Compact" /> |
| 47 | </StackPanel> |
| 48 | <StackPanel Grid.Column="4" Orientation="Horizontal" Spacing="8" VerticalAlignment="Bottom"> |
| 49 | <Button x:Name="StartButton" Click="OnStart" Content="Start scan" Style="{StaticResource AccentButtonStyle}" /> |
| 50 | <Button x:Name="StopButton" Click="OnStop" Content="Stop" IsEnabled="False" /> |
| 51 | </StackPanel> |
| 52 | </Grid> |
| 53 | <StackPanel Orientation="Horizontal" Spacing="20"> |
| 54 | <ToggleSwitch x:Name="EnrichToggle" Header="Read member counts" IsOn="True" /> |
| 55 | <ToggleSwitch x:Name="PublicEntryToggle" Header="Open entry only" IsOn="True" /> |
| 56 | <ToggleSwitch x:Name="ClaimToggle" Header="Claim automatically" /> |
| 57 | </StackPanel> |
| 58 | </StackPanel> |
| 59 | </Border> |
| 60 | |
| 61 | <Border Grid.Row="2" Style="{StaticResource CardBorder}"> |
| 62 | <Grid ColumnSpacing="24"> |
| 63 | <Grid.ColumnDefinitions> |
| 64 | <ColumnDefinition Width="*" /> |
| 65 | <ColumnDefinition Width="*" /> |
| 66 | <ColumnDefinition Width="*" /> |
| 67 | </Grid.ColumnDefinitions> |
| 68 | <StackPanel> |
| 69 | <TextBlock Style="{StaticResource FieldLabel}" Text="Groups scanned" /> |
| 70 | <TextBlock x:Name="ScannedText" Style="{StaticResource MetricValue}" Text="0" /> |
| 71 | </StackPanel> |
| 72 | <StackPanel Grid.Column="1"> |
| 73 | <TextBlock Style="{StaticResource FieldLabel}" Text="Ownerless" /> |
| 74 | <TextBlock x:Name="OwnerlessText" Style="{StaticResource MetricValue}" Text="0" /> |
| 75 | </StackPanel> |
| 76 | <StackPanel Grid.Column="2"> |
| 77 | <TextBlock Style="{StaticResource FieldLabel}" Text="Requests" /> |
| 78 | <TextBlock x:Name="RequestsText" Style="{StaticResource MetricValue}" Text="0" /> |
| 79 | </StackPanel> |
| 80 | </Grid> |
| 81 | </Border> |
| 82 | |
| 83 | <Border Grid.Row="3" Style="{StaticResource CardBorder}"> |
| 84 | <ListView x:Name="FeedList" SelectionMode="None"> |
| 85 | <ListView.ItemContainerStyle> |
| 86 | <Style TargetType="ListViewItem"> |
| 87 | <Setter Property="MinHeight" Value="0" /> |
| 88 | <Setter Property="Padding" Value="8,2,8,2" /> |
| 89 | </Style> |
| 90 | </ListView.ItemContainerStyle> |
| 91 | <ListView.ItemTemplate> |
| 92 | <DataTemplate x:DataType="models:FeedLine"> |
| 93 | <TextBlock |
| 94 | Style="{StaticResource LogText}" |
| 95 | Foreground="{x:Bind Brush}" |
| 96 | Text="{x:Bind Text}" /> |
| 97 | </DataTemplate> |
| 98 | </ListView.ItemTemplate> |
| 99 | </ListView> |
| 100 | </Border> |
| 101 | </Grid> |
| 102 | </Page> |