UI improvements

This commit is contained in:
henry 2025-05-14 01:17:47 -04:00
parent cca0976faf
commit 261490ec74
3 changed files with 13 additions and 18 deletions

View File

@ -8,7 +8,6 @@
<PageTitle>AccessQueue Playground</PageTitle> <PageTitle>AccessQueue Playground</PageTitle>
<Button Color="ButtonColor.Success" @onclick="AddUser">Add User</Button> <Button Color="ButtonColor.Success" @onclick="AddUser">Add User</Button>
<Button Color="ButtonColor.Primary" @onclick="Refresh">Refresh</Button>
@if (Status != null) @if (Status != null)
{ {
@ -23,23 +22,23 @@
</GridColumn> </GridColumn>
<GridColumn TItem="User" HeaderText="Active"> <GridColumn TItem="User" HeaderText="Active">
<ChildContent> <ChildContent>
<Switch Value="context.Active" ValueExpression="() => context.Active" ValueChanged="(_) => ToggleUserActive(context.Id)" /> <Switch Value="context.Active" ValueExpression="() => context.Active" ValueChanged="(value) => SetUserActive(context.Id, value)" />
</ChildContent> </ChildContent>
</GridColumn> </GridColumn>
</GridColumns> </GridColumns>
</Grid> </Grid>
<h2>Users in queue</h2> <h2>Users in queue</h2>
<Grid TItem="User" Data="Status.QueuedUsers" Class="table table-bordered mt-3" AllowSorting> <Grid TItem="User" Data="Status.QueuedUsers" Class="table table-bordered mt-3">
<GridColumns> <GridColumns>
<GridColumn TItem="User" HeaderText="Id" PropertyName="Id" SortKeySelector="item => item.Id"> <GridColumn TItem="User" HeaderText="Id" PropertyName="Id">
@context.Id @context.Id
</GridColumn> </GridColumn>
<GridColumn TItem="User" HeaderText="Queue Postition" PropertyName="LatestResponse?.RequestsAhead" SortKeySelector="item => item.LatestResponse.RequestsAhead"> <GridColumn TItem="User" HeaderText="Queue Postition" PropertyName="LatestResponse?.RequestsAhead">
@(context.LatestResponse?.RequestsAhead ?? 0 + 1) @(context.LatestResponse?.RequestsAhead ?? 0 + 1)
</GridColumn> </GridColumn>
<GridColumn TItem="User" HeaderText="Active"> <GridColumn TItem="User" HeaderText="Active">
<ChildContent> <ChildContent>
<Switch Value="context.Active" ValueExpression="() => context.Active" ValueChanged="(_) => ToggleUserActive(context.Id)" /> <Switch Value="context.Active" ValueExpression="() => context.Active" ValueChanged="(value) => SetUserActive(context.Id, value)" />
</ChildContent> </ChildContent>
</GridColumn> </GridColumn>
</GridColumns> </GridColumns>
@ -52,7 +51,7 @@
</GridColumn> </GridColumn>
<GridColumn TItem="User" HeaderText="Active"> <GridColumn TItem="User" HeaderText="Active">
<ChildContent> <ChildContent>
<Switch Value="context.Active" ValueExpression="() => context.Active" ValueChanged="(_) => ToggleUserActive(context.Id)" /> <Switch Value="context.Active" ValueExpression="() => context.Active" ValueChanged="(value) => SetUserActive(context.Id, value)" />
</ChildContent> </ChildContent>
</GridColumn> </GridColumn>
</GridColumns> </GridColumns>
@ -77,19 +76,14 @@
}); });
} }
public void Refresh()
{
Status = Manager.GetStatus();
}
public void AddUser() public void AddUser()
{ {
Manager.AddUser(); Manager.AddUser();
Status = Manager.GetStatus(); Status = Manager.GetStatus();
} }
public void ToggleUserActive(Guid userId) public void SetUserActive(Guid userId, bool isActive)
{ {
Manager.ToggleUserActivity(userId); Manager.SetUserActive(userId, isActive);
} }
} }

View File

@ -32,17 +32,17 @@ namespace AccessQueuePlayground.Services
_users[id] = new User _users[id] = new User
{ {
Id = id, Id = id,
Active = true, Active = false,
}; };
return id; return id;
} }
public void ToggleUserActivity(Guid userId) public void SetUserActive(Guid userId, bool isActive)
{ {
var user = _users[userId]; var user = _users[userId];
if (user != null) if (user != null)
{ {
user.Active = !user.Active; user.Active = isActive;
} }
} }
@ -76,6 +76,7 @@ namespace AccessQueuePlayground.Services
} }
} }
} }
newStatus.QueuedUsers.Sort((user1, user2) => user1.LatestResponse!.RequestsAhead - user2.LatestResponse!.RequestsAhead);
_status = newStatus; _status = newStatus;
NotifyStatusUpdated(); NotifyStatusUpdated();
} }

View File

@ -8,7 +8,7 @@ namespace AccessQueuePlayground.Services
public Task RecalculateStatus(); public Task RecalculateStatus();
public AccessQueueStatus GetStatus(); public AccessQueueStatus GetStatus();
public Guid AddUser(); public Guid AddUser();
public void ToggleUserActivity(Guid userId); public void SetUserActive(Guid userId, bool isActive);
} }
} }