admin page presentation
This commit is contained in:
parent
1faa80c884
commit
12f8b52173
3 changed files with 47 additions and 16 deletions
|
|
@ -68,6 +68,19 @@ public class HomePageProviderFlowTests
|
||||||
Assert.Equal("alice", vm.FilteredUsers[0].UserName);
|
Assert.Equal("alice", vm.FilteredUsers[0].UserName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Administration_page_tracks_selected_user()
|
||||||
|
{
|
||||||
|
var vm = new AdministrationPageViewModel();
|
||||||
|
var user = new Yavsc.Abstract.Identity.UserInfo { UserId = "1", UserName = "alice", FullName = "Alice Example", Email = "alice@example.com", DedicatedGoogleCalendar = "calendar-123" };
|
||||||
|
|
||||||
|
vm.Users.Add(user);
|
||||||
|
vm.SelectedUser = user;
|
||||||
|
|
||||||
|
Assert.Same(user, vm.SelectedUser);
|
||||||
|
Assert.Equal("alice", vm.SelectedUser?.UserName);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void UserProfilePage_exposes_full_name_and_address_fields()
|
public void UserProfilePage_exposes_full_name_and_address_fields()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,9 @@ public partial class AdministrationPageViewModel : ViewModelBase
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
public partial string StatusMessage { get; set; } = "Chargement…";
|
public partial string StatusMessage { get; set; } = "Chargement…";
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
public partial UserInfo? SelectedUser { get; set; }
|
||||||
|
|
||||||
public IReadOnlyList<UserInfo> FilteredUsers =>
|
public IReadOnlyList<UserInfo> FilteredUsers =>
|
||||||
string.IsNullOrWhiteSpace(SearchText)
|
string.IsNullOrWhiteSpace(SearchText)
|
||||||
? Users.ToList()
|
? Users.ToList()
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,9 @@
|
||||||
TextWrapping="Wrap"/>
|
TextWrapping="Wrap"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<ListBox Grid.Row="3"
|
<Grid Grid.Row="3" ColumnDefinitions="1.3*,0.7*" ColumnSpacing="12">
|
||||||
ItemsSource="{Binding FilteredUsers}">
|
<ListBox ItemsSource="{Binding FilteredUsers}"
|
||||||
|
SelectedItem="{Binding SelectedUser, Mode=TwoWay}">
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<Border Padding="8" BorderBrush="#D0D7DE" BorderThickness="1" CornerRadius="6">
|
<Border Padding="8" BorderBrush="#D0D7DE" BorderThickness="1" CornerRadius="6">
|
||||||
|
|
@ -40,5 +41,19 @@
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListBox.ItemTemplate>
|
</ListBox.ItemTemplate>
|
||||||
</ListBox>
|
</ListBox>
|
||||||
|
|
||||||
|
<Border Grid.Column="1" Padding="12" BorderBrush="#D0D7DE" BorderThickness="1" CornerRadius="6" Background="#F6F8FA">
|
||||||
|
<StackPanel Spacing="8">
|
||||||
|
<TextBlock Text="Détails" FontWeight="SemiBold" FontSize="18"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.UserName, StringFormat='Nom d’utilisateur : {0}'}" TextWrapping="Wrap"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.FullName, StringFormat='Nom complet : {0}'}" TextWrapping="Wrap"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.Email, StringFormat='Email : {0}'}" TextWrapping="Wrap"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.Address, StringFormat='Adresse : {0}'}" TextWrapping="Wrap"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.DedicatedGoogleCalendar, StringFormat='Calendrier : {0}'}" TextWrapping="Wrap"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.BankInfoSummary, StringFormat='Banque : {0}'}" TextWrapping="Wrap"/>
|
||||||
|
<TextBlock Text="{Binding SelectedUser.UserId, StringFormat='ID : {0}'}" Foreground="#4B5563" TextWrapping="Wrap"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue