mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-12 13:28:33 +00:00
Workshop library - Match browser design after all
This commit is contained in:
parent
730881b6d0
commit
318ec99ad4
@ -3,13 +3,16 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:tabs="clr-namespace:Artemis.UI.Screens.Workshop.Library.Tabs"
|
||||
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||
xmlns:workshop="clr-namespace:Artemis.WebClient.Workshop;assembly=Artemis.WebClient.Workshop"
|
||||
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||
xmlns:asyncImageLoader="clr-namespace:AsyncImageLoader;assembly=AsyncImageLoader.Avalonia"
|
||||
xmlns:converters="clr-namespace:Artemis.UI.Converters"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="650"
|
||||
x:Class="Artemis.UI.Screens.Workshop.Library.Tabs.LibrarySubmissionsView"
|
||||
x:DataType="tabs:LibrarySubmissionsViewModel">
|
||||
<UserControl.Resources>
|
||||
<controls:SymbolIconSource x:Key="GoIcon" Symbol="ChevronRight" />
|
||||
<converters:EntryIconUriConverter x:Key="EntryIconUriConverter" />
|
||||
<converters:DateTimeConverter x:Key="DateTimeConverter" />
|
||||
</UserControl.Resources>
|
||||
|
||||
<UserControl.Styles>
|
||||
@ -41,27 +44,75 @@
|
||||
<Button HorizontalAlignment="Center" Command="{CompiledBinding AddSubmission}">Submit new entry</Button>
|
||||
</StackPanel>
|
||||
|
||||
<ItemsRepeater IsVisible="{CompiledBinding Entries.Count}" ItemsSource="{CompiledBinding Entries}">
|
||||
<ItemsRepeater.ItemTemplate>
|
||||
<DataTemplate DataType="workshop:IGetSubmittedEntries_SubmittedEntries">
|
||||
<controls:SettingsExpander
|
||||
Header="{CompiledBinding Name}"
|
||||
Description="{CompiledBinding Summary}"
|
||||
IsClickEnabled="True"
|
||||
ActionIconSource="{StaticResource GoIcon}"
|
||||
Command="{Binding $parent[tabs:LibrarySubmissionsView].DataContext.NavigateToEntry}"
|
||||
CommandParameter="{CompiledBinding}">
|
||||
<controls:SettingsExpander.FooterTemplate>
|
||||
<DataTemplate x:DataType="workshop:IGetSubmittedEntries_SubmittedEntries">
|
||||
<Border Classes="badge" VerticalAlignment="Top" Margin="0 5 0 0">
|
||||
<TextBlock Text="{CompiledBinding EntryType}"></TextBlock>
|
||||
<ScrollViewer>
|
||||
<ItemsRepeater IsVisible="{CompiledBinding Entries.Count}" ItemsSource="{CompiledBinding Entries}">
|
||||
<ItemsRepeater.ItemTemplate>
|
||||
<DataTemplate DataType="workshop:IGetSubmittedEntries_SubmittedEntries">
|
||||
<Button MinHeight="80"
|
||||
MaxHeight="110"
|
||||
Padding="12 6"
|
||||
Margin="0 0 0 5"
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Stretch"
|
||||
Command="{Binding $parent[tabs:LibrarySubmissionsView].DataContext.NavigateToEntry}"
|
||||
CommandParameter="{CompiledBinding}">
|
||||
<Grid ColumnDefinitions="Auto,*,Auto">
|
||||
<!-- Icon -->
|
||||
<Border Grid.Column="0"
|
||||
CornerRadius="6"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0 0 10 0"
|
||||
Width="50"
|
||||
Height="50"
|
||||
ClipToBounds="True">
|
||||
<Image Stretch="UniformToFill" asyncImageLoader:ImageLoader.Source="{CompiledBinding Id, Converter={StaticResource EntryIconUriConverter}, Mode=OneWay}" />
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</controls:SettingsExpander.FooterTemplate>
|
||||
</controls:SettingsExpander>
|
||||
</DataTemplate>
|
||||
</ItemsRepeater.ItemTemplate>
|
||||
</ItemsRepeater>
|
||||
|
||||
<!-- Body -->
|
||||
<Grid Grid.Column="1" VerticalAlignment="Stretch" RowDefinitions="Auto,*,Auto">
|
||||
<TextBlock Grid.Row="0"
|
||||
Classes="h5 no-margin"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
Text="{CompiledBinding Name, FallbackValue=Title}"/>
|
||||
<TextBlock Grid.Row="1"
|
||||
Classes="subtitle"
|
||||
TextWrapping="Wrap"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
Text="{CompiledBinding Summary, FallbackValue=Summary}">
|
||||
</TextBlock>
|
||||
|
||||
<ItemsControl Grid.Row="2" ItemsSource="{CompiledBinding Categories}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" Spacing="8"></StackPanel>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<avalonia:MaterialIcon Kind="{CompiledBinding Icon}" Margin="0 0 3 0"></avalonia:MaterialIcon>
|
||||
<TextBlock Text="{CompiledBinding Name}" TextTrimming="CharacterEllipsis" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</Grid>
|
||||
|
||||
<!-- Info -->
|
||||
<StackPanel Grid.Column="2" Margin="0 0 4 0">
|
||||
<TextBlock TextAlignment="Right" Text="{CompiledBinding CreatedAt, FallbackValue=01-01-1337, Converter={StaticResource DateTimeConverter}}" />
|
||||
<TextBlock TextAlignment="Right">
|
||||
<avalonia:MaterialIcon Kind="Downloads" />
|
||||
<Run Classes="h5" Text="{CompiledBinding Downloads, FallbackValue=0}" />
|
||||
<Run>downloads</Run>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsRepeater.ItemTemplate>
|
||||
</ItemsRepeater>
|
||||
</ScrollViewer>
|
||||
</Panel>
|
||||
</Panel>
|
||||
|
||||
|
||||
@ -69,6 +69,7 @@ public class LibrarySubmissionsViewModel : ActivatableViewModelBase, IWorkshopVi
|
||||
private async Task ExecuteLogin(CancellationToken ct)
|
||||
{
|
||||
await _windowService.CreateContentDialog().WithViewModel(out WorkshopLoginViewModel _).WithTitle("Workshop login").ShowAsync();
|
||||
await GetEntries(ct);
|
||||
}
|
||||
|
||||
private async Task ExecuteAddSubmission(CancellationToken arg)
|
||||
|
||||
@ -6,5 +6,9 @@ query GetSubmittedEntries($filter: EntryFilterInput) {
|
||||
entryType
|
||||
downloads
|
||||
createdAt
|
||||
categories {
|
||||
name
|
||||
icon
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user