Fixed Maschine Categories

This commit is contained in:
TheJoKlLa 2022-07-18 23:46:53 +02:00
parent a3bf515fb4
commit 4a4b237374
7 changed files with 40 additions and 8 deletions

View File

@ -30,7 +30,15 @@
</Button.IsVisible>
</Button>
<ListView ItemsSource="{Binding MachineListItemViewModel_List}" SelectionMode="None" SeparatorColor="Transparent" IsGroupingEnabled="True" GroupDisplayBinding="{Binding Category}">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Margin="0, 10, 0, 0">
<Label Text="{Binding Category}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>

View File

@ -36,6 +36,8 @@ namespace Borepin.PageModel
private async Task _CreateMachineList(List<Machine> machine_list)
{
List<Task> tasks = new List<Task>();
List<MachineViewModelListGroup> viewmodel_group_list = new List<MachineViewModelListGroup>();
MachineViewModelListGroup viewmodel_group_inusebyme = new MachineViewModelListGroup()
{
@ -54,7 +56,7 @@ namespace Borepin.PageModel
{
IsInUseByMe = true,
};
await new_viewmodel.LoadInstance(machine).ConfigureAwait(false);
tasks.Add(new_viewmodel.LoadInstance(machine));
new_viewmodel.Machine.Category = Resources.Text.TextResource.InUseByMe;
@ -63,14 +65,14 @@ namespace Borepin.PageModel
else if (machine.Category == null)
{
MachineListItemViewModel new_viewmodel = new MachineListItemViewModel(_NavigationService, _PageDialogService);
await new_viewmodel.LoadInstance(machine).ConfigureAwait(false);
tasks.Add(new_viewmodel.LoadInstance(machine));
viewmodel_group_inusebyme.Add(new_viewmodel);
}
else
{
MachineListItemViewModel new_viewmodel = new MachineListItemViewModel(_NavigationService, _PageDialogService);
await new_viewmodel.LoadInstance(machine).ConfigureAwait(false);
tasks.Add(new_viewmodel.LoadInstance(machine));
MachineViewModelListGroup viewmodel_group = viewmodel_group_list.Find(x => string.Equals(x.Category, machine.Category, StringComparison.Ordinal));
if (viewmodel_group != null)
@ -89,6 +91,8 @@ namespace Borepin.PageModel
}
}
await Task.WhenAll(tasks).ConfigureAwait(false);
viewmodel_group_inusebyme.Sort_Machines();
viewmodel_group_uncategorised.Sort_Machines();
foreach(MachineViewModelListGroup viewmodel_group in viewmodel_group_list)
@ -96,6 +100,7 @@ namespace Borepin.PageModel
viewmodel_group.Sort_Machines();
}
viewmodel_group_uncategorised.Category = Resources.Text.TextResource.Uncategorised;
List<MachineViewModelListGroup> viewmodel_group_list_sorted = new List<MachineViewModelListGroup>();
if(viewmodel_group_inusebyme.Count != 0)
{

View File

@ -33,6 +33,8 @@ namespace Borepin.PageModel
#region LoadData
public override async Task LoadInstance(object instance)
{
List<Task> tasks = new List<Task>();
IList<ConnectionData> list = await _LoginStorageService.GetList().ConfigureAwait(false);
if (_API.IsConnected)
{
@ -52,10 +54,11 @@ namespace Borepin.PageModel
foreach (ConnectionData connectionData in list)
{
ServerListItemViewModel serverListItemViewModel = new ServerListItemViewModel(_NavigationService, _PageDialogService);
await serverListItemViewModel.LoadInstance(connectionData).ConfigureAwait(false);
tasks.Add(serverListItemViewModel.LoadInstance(connectionData));
serverListItemViewModel_List.Add(serverListItemViewModel);
}
await Task.WhenAll(tasks).ConfigureAwait(false);
ServerListItemViewModel_List = serverListItemViewModel_List;
IsBusy = false;

View File

@ -28,16 +28,20 @@ namespace Borepin.PageModel
#region Data
public override async Task LoadAPIData()
{
List<Task> tasks = new List<Task>();
IReadOnlyList<User> user_list = await _API.Session.UserSystem.Manage.GetUserList().ConfigureAwait(false);
List<UserListItemViewModel> viewmodel_list= new List<UserListItemViewModel>();
foreach (User user in user_list)
{
UserListItemViewModel new_viewmodel = new UserListItemViewModel(_NavigationService, _PageDialogService);
await new_viewmodel.LoadInstance(user).ConfigureAwait(false);
tasks.Add(new_viewmodel.LoadInstance(user));
viewmodel_list.Add(new_viewmodel);
}
await Task.WhenAll(tasks).ConfigureAwait(false);
viewmodel_list.OrderBy(x => x.Instance.Username, StringComparison.OrdinalIgnoreCase.WithNaturalSort());
UserListItemViewModel_List = viewmodel_list;
}
@ -86,7 +90,7 @@ namespace Borepin.PageModel
{
Device.BeginInvokeOnMainThread(async () =>
{
INavigationResult result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/AddUserPage").ConfigureAwait(false);
INavigationResult result = await _NavigationService.NavigateAsync("AddUserPage").ConfigureAwait(false);
if (result.Exception != null)
{
Log.Fatal(result.Exception, "Navigating failed");

View File

@ -801,6 +801,15 @@ namespace Borepin.Resources.Text {
}
}
/// <summary>
/// Looks up a localized string similar to Uncategorised.
/// </summary>
internal static string Uncategorised {
get {
return ResourceManager.GetString("Uncategorised", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Add User.
/// </summary>

View File

@ -366,6 +366,9 @@ Ask in your Space if you can be trained on the machine to be unlocked for the ma
<data name="TITLE_Users" xml:space="preserve">
<value>Users</value>
</data>
<data name="Uncategorised" xml:space="preserve">
<value>Uncategorised</value>
</data>
<data name="UserListPage_AddUser" xml:space="preserve">
<value>Add User</value>
</data>

@ -1 +1 @@
Subproject commit 086bbc2497785d2cc63e9252df6f6d3ee7599579
Subproject commit 63e63853c1d5ca9f223aa3627ad391ce434a0683