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
@@ -4,6 +4,7 @@
@using WebApp.Components.Shared.Components
@inject AppDbContext context
@inject NavigationManager NavigationManager
@inject IJSRuntime JSRuntime
@if (eventdefinition is null)
{
@@ -17,8 +18,13 @@
ShowBackButton="true"
BackButtonUrl="/events">
<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="@($"/events/edit?id={eventdefinition.Id}")" Variant="Variant.Outlined">Edit</MudButton>
<MudButton Href="/events" Variant="Variant.Text">Back to List</MudButton>
</div>
</ActionButtons>
</PageHeader>
@@ -102,4 +108,9 @@
NavigationManager.NavigateTo("notfound");
}
}
private async Task PrintPage()
{
await JSRuntime.InvokeVoidAsync("window.print");
}
}
+22 -9
View File
@@ -16,7 +16,28 @@
<MudDataGrid T="EventDefinition" ServerData="ServerReload" @ref="_dataGrid" Filterable="true" RowsPerPage="50" >
<Columns>
<PropertyColumn Property="@(e => e.Name)" Title="Event Name" Sortable="true" />
<PropertyColumn Property="@(e => e.Name)" Title="Event Name" Sortable="true">
<CellTemplate>
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Spacing="1">
<MudLink Href="@($"/events/details?id={context.Item.Id}")"
Underline="Underline.Hover"
Color="Color.Primary">
@context.Item.Name
</MudLink>
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1">
<MudIconButton Icon="@Icons.Material.Filled.Edit"
Size="Size.Small"
Href="@($"/events/edit?id={context.Item.Id}")"
Title="Edit" />
<MudIconButton Icon="@Icons.Material.Outlined.Delete"
Size="Size.Small"
Color="Color.Error"
OnClick="() => DeleteEventDefinition(context.Item!)"
Title="Delete" />
</MudStack>
</MudStack>
</CellTemplate>
</PropertyColumn>
<PropertyColumn Property="@(e => e.EventFormat)" Title="Event Format" />
<TemplateColumn Title="Team Size" CellStyle="white-space:nowrap">
@@ -34,14 +55,6 @@
</TemplateColumn>
<PropertyColumn Property="@(e => e.LevelOfEffort)" Title="Level of Effort" />
<TemplateColumn>
<CellTemplate>
<CrudActions DetailsHref="@($"/events/details?id={context.Item!.Id}")"
EditHref="@($"/events/edit?id={context.Item!.Id}")"
DeleteOnClick="() => DeleteEventDefinition(context.Item!)">
</CrudActions>
</CellTemplate>
</TemplateColumn>
</Columns>
<PagerContent>
<MudDataGridPager T="EventDefinition"></MudDataGridPager>
@@ -4,6 +4,7 @@
@using WebApp.Components.Shared.Components
@inject AppDbContext context
@inject NavigationManager NavigationManager
@inject IJSRuntime JSRuntime
@if (student is null)
{
@@ -16,8 +17,13 @@
ShowBackButton="true"
BackButtonUrl="@(ReturnUrl ?? "/students")">
<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="@($"/students/edit?id={student.Id}&returnUrl={ReturnUrl ?? "/students"}")" Variant="Variant.Outlined">Edit</MudButton>
<MudButton Href="@(ReturnUrl ?? "/students")" Variant="Variant.Text">Back to List</MudButton>
</div>
</ActionButtons>
</PageHeader>
@@ -84,4 +90,9 @@
NavigationManager.NavigateTo("notfound");
}
}
private async Task PrintPage()
{
await JSRuntime.InvokeVoidAsync("window.print");
}
}
@@ -19,11 +19,30 @@
<Columns>
<PropertyColumn Property="@(e => e.LastName)" Title="Name" Sortable="true">
<CellTemplate>
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Spacing="1">
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1">
<MudLink Href="@($"/students/details?id={context.Item.Id}&returnUrl=/students")"
Underline="Underline.Hover"
Color="Color.Primary">
@context.Item.LastNameFirstName
</MudLink>
@if (context.Item.OfficerRole != null)
{
<MudChip T="string" Icon="@(AppIcons.OfficerRoleIcon(context.Item.OfficerRole.Value))">@context.Item.OfficerRole</MudChip>
<MudChip T="string" Size="Size.Small" Icon="@(AppIcons.OfficerRoleIcon(context.Item.OfficerRole.Value))">@context.Item.OfficerRole</MudChip>
}
</MudStack>
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1">
<MudIconButton Icon="@Icons.Material.Filled.Edit"
Size="Size.Small"
Href="@($"/students/edit?id={context.Item.Id}&returnUrl=/students")"
Title="Edit" />
<MudIconButton Icon="@Icons.Material.Outlined.Delete"
Size="Size.Small"
Color="Color.Error"
OnClick="() => DeleteStudent(context.Item!)"
Title="Delete" />
</MudStack>
</MudStack>
</CellTemplate>
</PropertyColumn>
<PropertyColumn Property="@(e => e.Grade)" Title="Grade (TSA Year)" Sortable="true">
@@ -31,14 +50,6 @@
@context.Item.Grade (@context.Item.TsaYear)
</CellTemplate>
</PropertyColumn>
<TemplateColumn>
<CellTemplate>
<CrudActions DetailsHref="@($"/students/details?id={context.Item!.Id}&returnUrl=/students")"
EditHref="@($"/students/edit?id={context.Item!.Id}&returnUrl=/students")"
DeleteOnClick="() => DeleteStudent(context.Item!)">
</CrudActions>
</CellTemplate>
</TemplateColumn>
</Columns>
<PagerContent>
<MudDataGridPager T="Student"></MudDataGridPager>
@@ -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");
}
}
+18 -9
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>
<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>
@@ -19,7 +19,8 @@
<MudIconButton Icon="@Icons.Material.Filled.ArrowBack"
Href="@BackButtonUrl"
Size="Size.Large"
Color="Color.Default" />
Color="Color.Default"
Class="no-print" />
}
@* Icon *@