ServicesListPage.razor 983 B

123456789101112131415161718192021222324252627282930313233343536
  1. @page "/services/list"
  2. @using RackPeek.Domain.Persistence
  3. @inject NavigationManager Nav
  4. <ResourcesListComponent TResource="Service"
  5. Title="Services"
  6. TestId="services"
  7. GroupBy="@(s => s.RunsOn)"
  8. ShouldGroup="true"
  9. OnCreated="NavigateToNewResource">
  10. <ItemTemplate Context="svc">
  11. <div data-testid=@($"services-list-item-{svc.Name.Replace(" ", "-")}")>
  12. <ServiceCardComponent Service="svc"
  13. OnDeleted="Reload"/>
  14. </div>
  15. </ItemTemplate>
  16. </ResourcesListComponent>
  17. @code {
  18. [Inject] IResourceCollection Repo { get; set; } = default!;
  19. private Task NavigateToNewResource(string name)
  20. {
  21. Nav.NavigateTo($"resources/services/{name}");
  22. return Task.CompletedTask;
  23. }
  24. private async Task Reload(string _)
  25. {
  26. await Repo.GetAllOfTypeAsync<Service>();
  27. }
  28. }