69 lines
2.9 KiB
Plaintext
69 lines
2.9 KiB
Plaintext
@page "/events"
|
|
@using Microsoft.EntityFrameworkCore
|
|
@inject AppDbContext Context
|
|
|
|
<PageTitle>Events - TSA Chapter Organizer</PageTitle>
|
|
|
|
<MudText Typo="Typo.h3">Events</MudText>
|
|
|
|
<MudButton StartIcon="@Icons.Material.Filled.Create" Href="events/create">Create New</MudButton>
|
|
<MudButton StartIcon="@Icons.Material.Filled.Print" Href="events/printout">Printable Descriptions</MudButton>
|
|
|
|
<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.EventFormat)" Title="Event Format" />
|
|
<PropertyColumn Property="@(e => e.LevelOfEffort)" Title="Level of Effort" />
|
|
<PropertyColumn Property="@(e => e.Eligibility)" Title="Eligibility" />
|
|
<TemplateColumn Title="Team Size" CellStyle="white-space:nowrap">
|
|
<CellTemplate>
|
|
[@context.Item.MinTeamSize - @context.Item.MaxTeamSize]
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
<TemplateColumn Title="TimeSlots State #">
|
|
<CellTemplate>
|
|
@context.Item.MaxTeamCountState
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
<TemplateColumn>
|
|
<CellTemplate>
|
|
<MudStack Row>
|
|
<MudButtonGroup Size="Size.Small">
|
|
<MudTooltip Text="Details">
|
|
<MudIconButton Href="@($"/events/details?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Description">Details</MudIconButton>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Edit">
|
|
<MudIconButton Href="@($"/events/edit?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Edit">Edit</MudIconButton>
|
|
</MudTooltip>
|
|
<MudTooltip Text="Delete">
|
|
<MudIconButton Href="@($"/events/delete?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Delete" Color="@Color.Warning">Delete</MudIconButton>
|
|
</MudTooltip>
|
|
</MudButtonGroup>
|
|
</MudStack>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
</Columns>
|
|
<PagerContent>
|
|
<MudDataGridPager T="EventDefinition"></MudDataGridPager>
|
|
</PagerContent>
|
|
</MudDataGrid>
|
|
|
|
@code {
|
|
MudDataGrid<EventDefinition> _dataGrid = null!;
|
|
|
|
private async Task<GridData<EventDefinition>> ServerReload(GridState<EventDefinition> state)
|
|
{
|
|
|
|
var query = Context.Events.Where(state.FilterDefinitions).OrderBy(state.SortDefinitions);
|
|
|
|
var totalItems = await query.CountAsync();
|
|
var pagedData = await query.Skip(state.Page * state.PageSize).Take(state.PageSize).ToArrayAsync();
|
|
|
|
return new GridData<EventDefinition>
|
|
{
|
|
TotalItems = totalItems,
|
|
Items = pagedData
|
|
};
|
|
}
|
|
}
|