Moved crud operations to the title field

This commit is contained in:
2025-12-26 10:35:37 -05:00
parent 19a7164b8b
commit f2389fa1c1
7 changed files with 175 additions and 37 deletions
@@ -0,0 +1,82 @@
@page "/teams/details"
@attribute [Authorize]
@using Microsoft.EntityFrameworkCore
@using WebApp.Components.Shared.Components
@using WebApp.Components.Features.Teams.Components
@inject AppDbContext Context
@inject NavigationManager NavigationManager
@inject IJSRuntime JSRuntime
@if (Team is null)
{
<p><em>Loading...</em></p>
return;
}
<PageHeader
Title="Team Details"
ShowBackButton="true"
BackButtonUrl="/teams">
<ActionButtons>
<div class="no-print">
<MudButton StartIcon="@Icons.Material.Filled.Print"
OnClick="PrintPage"
Variant="Variant.Outlined">Print</MudButton>
<MudButton StartIcon="@Icons.Material.Filled.Edit"
Href="@($"/teams/edit?id={Team.Id}")"
Variant="Variant.Outlined">Edit</MudButton>
<MudButton Href="/teams" Variant="Variant.Text">Back to List</MudButton>
</div>
</ActionButtons>
</PageHeader>
<MudPaper Class="pa-4">
<MudGrid>
<MudItem xs="12" sm="6">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Event</MudText>
<MudText Typo="Typo.body1">@Team.Event.Name</MudText>
</MudItem>
<MudItem xs="12" sm="6">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Event Format</MudText>
<MudText Typo="Typo.body1">@Team.Event.EventFormat</MudText>
</MudItem>
<MudItem xs="12" sm="6">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Team Identifier</MudText>
<MudText Typo="Typo.body1">@(Team.Identifier ?? "N/A")</MudText>
</MudItem>
<MudItem xs="12" sm="6">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Captain</MudText>
<MudText Typo="Typo.body1">@(Team.Captain?.FirstNameLastName ?? "N/A")</MudText>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.subtitle2" Color="Color.Secondary">Team Members</MudText>
<TeamStudents Team="@Team" />
</MudItem>
</MudGrid>
</MudPaper>
@code {
[SupplyParameterFromQuery]
private int Id { get; set; }
private Team? Team { get; set; }
protected override async Task OnInitializedAsync()
{
Team = await Context.Teams
.Include(t => t.Event)
.Include(t => t.Students)
.Include(t => t.Captain)
.FirstOrDefaultAsync(m => m.Id == Id);
if (Team is null)
{
NavigationManager.NavigateTo("notfound");
}
}
private async Task PrintPage()
{
await JSRuntime.InvokeVoidAsync("window.print");
}
}
+19 -10
View File
@@ -16,9 +16,26 @@
<MudDataGrid T="Team" ServerData="ServerReload" @ref="_dataGrid" Filterable="true" RowsPerPage="35">
<Columns>
<TemplateColumn Title="Event">
<TemplateColumn Title="Event" Sortable="true" SortBy="@(t => t.Event.Name)">
<CellTemplate>
@context.Item.ToString()
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Spacing="1">
<MudLink Href="@($"/teams/details?id={context.Item.Id}")"
Underline="Underline.Hover"
Color="Color.Primary">
@context.Item.ToString()
</MudLink>
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1">
<MudIconButton Icon="@Icons.Material.Filled.Edit"
Size="Size.Small"
Href="@($"/teams/edit?id={context.Item.Id}")"
Title="Edit" />
<MudIconButton Icon="@Icons.Material.Outlined.Delete"
Size="Size.Small"
Color="Color.Error"
OnClick="() => DeleteTeam(context.Item!)"
Title="Delete" />
</MudStack>
</MudStack>
</CellTemplate>
</TemplateColumn>
<TemplateColumn Title="Attributes">
@@ -31,14 +48,6 @@
<TeamStudents Team="@context.Item"></TeamStudents>
</CellTemplate>
</TemplateColumn>
<TemplateColumn>
<CellTemplate>
<CrudActions
EditHref="@($"/teams/edit?id={context.Item!.Id}")"
DeleteOnClick="() => DeleteTeam(context.Item!)">
</CrudActions>
</CellTemplate>
</TemplateColumn>
</Columns>
<PagerContent>
<MudDataGridPager T="Team"></MudDataGridPager>