Improve Form Layout
This commit is contained in:
@@ -8,50 +8,100 @@
|
|||||||
Title="Create"
|
Title="Create"
|
||||||
Subtitle="Event"
|
Subtitle="Event"
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/events" />
|
BackButtonUrl="@(ReturnUrl ?? "/events")" />
|
||||||
|
|
||||||
<EditForm Model="EventDefinition" OnValidSubmit="OnValidSubmit" Enhance>
|
<EditForm Model="EventDefinition" OnValidSubmit="OnValidSubmit" Enhance>
|
||||||
<FormChangeTracker @ref="_formChangeTracker" />
|
<FormChangeTracker @ref="_formChangeTracker" />
|
||||||
<AntiforgeryToken />
|
<AntiforgeryToken />
|
||||||
<DataAnnotationsValidator />
|
<DataAnnotationsValidator />
|
||||||
<MudGrid>
|
|
||||||
<MudItem xs="12" sm="7">
|
|
||||||
<MudPaper Class="pa-4">
|
|
||||||
<MudTextField T="string" Label="Event Name" @bind-Value="EventDefinition.Name" For="@(() => EventDefinition.Name)"></MudTextField>
|
|
||||||
<MudTextField T="string" Label="Short Name" @bind-Value="EventDefinition.ShortName" For="@(() => EventDefinition.ShortName)"></MudTextField>
|
|
||||||
|
|
||||||
<MudText Typo="Typo.subtitle2" Class="mt-4 mb-2">Format</MudText>
|
<MudStack Spacing="4">
|
||||||
<MudRadioGroup T="EventFormat" @bind-Value="@EventDefinition.EventFormat" For="@(() => EventDefinition.EventFormat)">
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
@foreach (EventFormat format in Enum.GetValues(typeof(EventFormat)))
|
<MudText Typo="Typo.h5" Class="mb-4">Basic Information</MudText>
|
||||||
{
|
<MudGrid Spacing="3">
|
||||||
<MudRadio T="EventFormat" Value="@format">@format.ToString()</MudRadio>
|
<MudItem xs="12" sm="6">
|
||||||
}
|
<MudTextField T="string" Label="Event Name" @bind-Value="EventDefinition.Name" For="@(() => EventDefinition.Name)" Variant="Variant.Outlined"></MudTextField>
|
||||||
</MudRadioGroup>
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudTextField T="string" Label="Short Name" @bind-Value="EventDefinition.ShortName" For="@(() => EventDefinition.ShortName)" Variant="Variant.Outlined"></MudTextField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudText Typo="Typo.subtitle2" Class="mb-2 mud-text-secondary">Event Format</MudText>
|
||||||
|
<MudRadioGroup T="EventFormat" @bind-Value="@EventDefinition.EventFormat" For="@(() => EventDefinition.EventFormat)">
|
||||||
|
@foreach (EventFormat format in Enum.GetValues(typeof(EventFormat)))
|
||||||
|
{
|
||||||
|
<MudRadio T="EventFormat" Value="@format">@format.ToString()</MudRadio>
|
||||||
|
}
|
||||||
|
</MudRadioGroup>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int?" Label="Level of Effort" @bind-Value="EventDefinition.LevelOfEffort" For="@(() => EventDefinition.LevelOfEffort)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
</MudPaper>
|
||||||
|
|
||||||
<MudTextField T="string" Label="Description" AutoGrow="true" @bind-Value="EventDefinition.Description" For="@(() => EventDefinition.Description)" Class="mt-4"></MudTextField>
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
<MudTextField T="string" Label="Theme" AutoGrow="true" @bind-Value="EventDefinition.Theme" For="@(() => EventDefinition.Theme)"></MudTextField>
|
<MudText Typo="Typo.h5" Class="mb-4">Event Details</MudText>
|
||||||
<MudTextField T="string" Label="Documentation" @bind-Value="EventDefinition.Documentation" For="@(() => EventDefinition.Documentation)"></MudTextField>
|
<MudGrid Spacing="3">
|
||||||
<MudNumericField T="int?" Label="Level of Effort" @bind-Value="EventDefinition.LevelOfEffort" For="@(() => EventDefinition.LevelOfEffort)"></MudNumericField>
|
<MudItem xs="12">
|
||||||
<MudDivider></MudDivider>
|
<MudTextField T="string" Label="Description" AutoGrow="true" Lines="3" @bind-Value="EventDefinition.Description" For="@(() => EventDefinition.Description)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudTextField T="string" Label="Nationals Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)"></MudTextField>
|
</MudItem>
|
||||||
<MudNumericField T="int" Label="Minimum Team Size" @bind-Value="EventDefinition.MinTeamSize" For="@(() => EventDefinition.MinTeamSize)"></MudNumericField>
|
<MudItem xs="12">
|
||||||
<MudNumericField T="int" Label="Maxiumum Team Size" @bind-Value="EventDefinition.MaxTeamSize" For="@(() => EventDefinition.MaxTeamSize)"></MudNumericField>
|
<MudTextField T="string" Label="Theme" AutoGrow="true" Lines="2" @bind-Value="EventDefinition.Theme" For="@(() => EventDefinition.Theme)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudNumericField T="int" Label="Team Count at Regionals" @bind-Value="EventDefinition.ChapterEligibilityCountRegionals" For="@(() => EventDefinition.ChapterEligibilityCountRegionals)"></MudNumericField>
|
</MudItem>
|
||||||
<MudNumericField T="int" Label="Team Count at State" @bind-Value="EventDefinition.ChapterEligibilityCountState" For="@(() => EventDefinition.ChapterEligibilityCountState)"></MudNumericField>
|
<MudItem xs="12">
|
||||||
<MudDivider></MudDivider>
|
<MudTextField T="string" Label="Documentation" @bind-Value="EventDefinition.Documentation" For="@(() => EventDefinition.Documentation)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudTextField T="string" Label="Semifinalist Activity" @bind-Value="EventDefinition.SemifinalistActivity" For="@(() => EventDefinition.SemifinalistActivity)"></MudTextField>
|
</MudItem>
|
||||||
<MudCheckBox T="bool" Label="On Site Activity" @bind-Value="EventDefinition.OnSiteActivity" For="@(() => EventDefinition.OnSiteActivity)"></MudCheckBox>
|
</MudGrid>
|
||||||
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.Presubmission" For="@(() => EventDefinition.Presubmission)"></MudCheckBox>
|
</MudPaper>
|
||||||
</MudPaper>
|
|
||||||
</MudItem>
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
</MudGrid>
|
<MudText Typo="Typo.h5" Class="mb-4">Team Configuration</MudText>
|
||||||
<FormActions>
|
<MudGrid Spacing="3">
|
||||||
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Create</MudButton>
|
<MudItem xs="12">
|
||||||
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
|
<MudTextField T="string" Label="Nationals Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)" Variant="Variant.Outlined"></MudTextField>
|
||||||
</FormActions>
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Minimum Team Size" @bind-Value="EventDefinition.MinTeamSize" For="@(() => EventDefinition.MinTeamSize)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Maximum Team Size" @bind-Value="EventDefinition.MaxTeamSize" For="@(() => EventDefinition.MaxTeamSize)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Team Count at Regionals" @bind-Value="EventDefinition.ChapterEligibilityCountRegionals" For="@(() => EventDefinition.ChapterEligibilityCountRegionals)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Team Count at State" @bind-Value="EventDefinition.ChapterEligibilityCountState" For="@(() => EventDefinition.ChapterEligibilityCountState)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
</MudPaper>
|
||||||
|
|
||||||
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
|
<MudText Typo="Typo.h5" Class="mb-4">Competition Details</MudText>
|
||||||
|
<MudGrid Spacing="3">
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudTextField T="string" Label="Semifinalist Activity" @bind-Value="EventDefinition.SemifinalistActivity" For="@(() => EventDefinition.SemifinalistActivity)" Variant="Variant.Outlined"></MudTextField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudCheckBox T="bool" Label="On Site Activity" @bind-Value="EventDefinition.OnSiteActivity" For="@(() => EventDefinition.OnSiteActivity)"></MudCheckBox>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.Presubmission" For="@(() => EventDefinition.Presubmission)"></MudCheckBox>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
|
||||||
|
<FormActions>
|
||||||
|
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Create</MudButton>
|
||||||
|
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
|
||||||
|
</FormActions>
|
||||||
|
</MudPaper>
|
||||||
|
</MudStack>
|
||||||
</EditForm>
|
</EditForm>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
[SupplyParameterFromForm]
|
[SupplyParameterFromForm]
|
||||||
private EventDefinition EventDefinition { get; set; } = new();
|
private EventDefinition EventDefinition { get; set; } = new();
|
||||||
|
|
||||||
@@ -63,12 +113,12 @@
|
|||||||
|
|
||||||
context.Events.Add(EventDefinition);
|
context.Events.Add(EventDefinition);
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
NavigationManager.NavigateTo("/events");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/events");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleCancel()
|
private void HandleCancel()
|
||||||
{
|
{
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/events");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/events");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,13 @@
|
|||||||
Title="Details"
|
Title="Details"
|
||||||
Subtitle="Event Definition"
|
Subtitle="Event Definition"
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/events">
|
BackButtonUrl="@(ReturnUrl ?? "/events")">
|
||||||
<ActionButtons>
|
<ActionButtons>
|
||||||
<div class="no-print">
|
<div class="no-print">
|
||||||
<MudButton StartIcon="@Icons.Material.Filled.Print"
|
<MudButton StartIcon="@Icons.Material.Filled.Print"
|
||||||
OnClick="PrintPage"
|
OnClick="PrintPage"
|
||||||
Variant="Variant.Outlined">Print</MudButton>
|
Variant="Variant.Outlined">Print</MudButton>
|
||||||
<MudButton StartIcon="@Icons.Material.Filled.Edit" Href="@($"/events/edit?id={eventdefinition.Id}")" Variant="Variant.Outlined">Edit</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>
|
</div>
|
||||||
</ActionButtons>
|
</ActionButtons>
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
@@ -112,6 +111,9 @@
|
|||||||
[SupplyParameterFromQuery]
|
[SupplyParameterFromQuery]
|
||||||
private int Id { get; set; }
|
private int Id { get; set; }
|
||||||
|
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
eventdefinition = await context.Events.FirstOrDefaultAsync(m => m.Id == Id);
|
eventdefinition = await context.Events.FirstOrDefaultAsync(m => m.Id == Id);
|
||||||
|
|||||||
@@ -15,53 +15,103 @@
|
|||||||
Title="Edit"
|
Title="Edit"
|
||||||
Subtitle="Event"
|
Subtitle="Event"
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/events" />
|
BackButtonUrl="@(ReturnUrl ?? "/events")" />
|
||||||
|
|
||||||
<EditForm Model="EventDefinition" OnValidSubmit="OnValidSubmit" Enhance>
|
<EditForm Model="EventDefinition" OnValidSubmit="OnValidSubmit" Enhance>
|
||||||
<FormChangeTracker @ref="_formChangeTracker" />
|
<FormChangeTracker @ref="_formChangeTracker" />
|
||||||
<AntiforgeryToken />
|
<AntiforgeryToken />
|
||||||
<DataAnnotationsValidator />
|
<DataAnnotationsValidator />
|
||||||
<MudGrid>
|
|
||||||
<MudItem xs="12" sm="7">
|
|
||||||
<MudPaper Class="pa-4">
|
|
||||||
<MudTextField T="string" Label="Event Name" @bind-Value="EventDefinition.Name" For="@(() => EventDefinition.Name)"></MudTextField>
|
|
||||||
<MudTextField T="string" Label="Short Name" @bind-Value="EventDefinition.ShortName" For="@(() => EventDefinition.ShortName)"></MudTextField>
|
|
||||||
|
|
||||||
<MudText Typo="Typo.subtitle2" Class="mt-4 mb-2">Format</MudText>
|
<MudStack Spacing="4">
|
||||||
<MudRadioGroup T="EventFormat" @bind-Value="@EventDefinition.EventFormat" For="@(() => EventDefinition.EventFormat)">
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
@foreach (EventFormat format in Enum.GetValues(typeof(EventFormat)))
|
<MudText Typo="Typo.h5" Class="mb-4">Basic Information</MudText>
|
||||||
{
|
<MudGrid Spacing="3">
|
||||||
<MudRadio T="EventFormat" Value="@format">@format.ToString()</MudRadio>
|
<MudItem xs="12" sm="6">
|
||||||
}
|
<MudTextField T="string" Label="Event Name" @bind-Value="EventDefinition.Name" For="@(() => EventDefinition.Name)" Variant="Variant.Outlined"></MudTextField>
|
||||||
</MudRadioGroup>
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudTextField T="string" Label="Short Name" @bind-Value="EventDefinition.ShortName" For="@(() => EventDefinition.ShortName)" Variant="Variant.Outlined"></MudTextField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudText Typo="Typo.subtitle2" Class="mb-2 mud-text-secondary">Event Format</MudText>
|
||||||
|
<MudRadioGroup T="EventFormat" @bind-Value="@EventDefinition.EventFormat" For="@(() => EventDefinition.EventFormat)">
|
||||||
|
@foreach (EventFormat format in Enum.GetValues(typeof(EventFormat)))
|
||||||
|
{
|
||||||
|
<MudRadio T="EventFormat" Value="@format">@format.ToString()</MudRadio>
|
||||||
|
}
|
||||||
|
</MudRadioGroup>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int?" Label="Level of Effort" @bind-Value="EventDefinition.LevelOfEffort" For="@(() => EventDefinition.LevelOfEffort)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
</MudPaper>
|
||||||
|
|
||||||
<MudTextField T="string" Label="Description" AutoGrow="true" @bind-Value="EventDefinition.Description" For="@(() => EventDefinition.Description)" Class="mt-4"></MudTextField>
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
<MudTextField T="string" Label="Theme" AutoGrow="true" @bind-Value="EventDefinition.Theme" For="@(() => EventDefinition.Theme)"></MudTextField>
|
<MudText Typo="Typo.h5" Class="mb-4">Event Details</MudText>
|
||||||
<MudTextField T="string" Label="Documentation" @bind-Value="EventDefinition.Documentation" For="@(() => EventDefinition.Documentation)"></MudTextField>
|
<MudGrid Spacing="3">
|
||||||
<MudNumericField T="int?" Label="Level of Effort" @bind-Value="EventDefinition.LevelOfEffort" For="@(() => EventDefinition.LevelOfEffort)"></MudNumericField>
|
<MudItem xs="12">
|
||||||
<MudDivider></MudDivider>
|
<MudTextField T="string" Label="Description" AutoGrow="true" Lines="3" @bind-Value="EventDefinition.Description" For="@(() => EventDefinition.Description)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudTextField T="string" Label="Nationals Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)"></MudTextField>
|
</MudItem>
|
||||||
<MudNumericField T="int" Label="Minimum Team Size" @bind-Value="EventDefinition.MinTeamSize" For="@(() => EventDefinition.MinTeamSize)"></MudNumericField>
|
<MudItem xs="12">
|
||||||
<MudNumericField T="int" Label="Maxiumum Team Size" @bind-Value="EventDefinition.MaxTeamSize" For="@(() => EventDefinition.MaxTeamSize)"></MudNumericField>
|
<MudTextField T="string" Label="Theme" AutoGrow="true" Lines="2" @bind-Value="EventDefinition.Theme" For="@(() => EventDefinition.Theme)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudNumericField T="int" Label="Team Count at Regionals" @bind-Value="EventDefinition.ChapterEligibilityCountRegionals" For="@(() => EventDefinition.ChapterEligibilityCountRegionals)"></MudNumericField>
|
</MudItem>
|
||||||
<MudNumericField T="int" Label="Team Count at State" @bind-Value="EventDefinition.ChapterEligibilityCountState" For="@(() => EventDefinition.ChapterEligibilityCountState)"></MudNumericField>
|
<MudItem xs="12">
|
||||||
<MudDivider></MudDivider>
|
<MudTextField T="string" Label="Documentation" @bind-Value="EventDefinition.Documentation" For="@(() => EventDefinition.Documentation)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudTextField T="string" Label="Semifinalist Activity" @bind-Value="EventDefinition.SemifinalistActivity" For="@(() => EventDefinition.SemifinalistActivity)"></MudTextField>
|
</MudItem>
|
||||||
<MudCheckBox T="bool" Label="On Site Activity" @bind-Value="EventDefinition.OnSiteActivity" For="@(() => EventDefinition.OnSiteActivity)"></MudCheckBox>
|
</MudGrid>
|
||||||
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.Presubmission" For="@(() => EventDefinition.Presubmission)"></MudCheckBox>
|
</MudPaper>
|
||||||
</MudPaper>
|
|
||||||
</MudItem>
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
</MudGrid>
|
<MudText Typo="Typo.h5" Class="mb-4">Team Configuration</MudText>
|
||||||
<FormActions>
|
<MudGrid Spacing="3">
|
||||||
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Save</MudButton>
|
<MudItem xs="12">
|
||||||
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
|
<MudTextField T="string" Label="Nationals Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)" Variant="Variant.Outlined"></MudTextField>
|
||||||
</FormActions>
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Minimum Team Size" @bind-Value="EventDefinition.MinTeamSize" For="@(() => EventDefinition.MinTeamSize)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Maximum Team Size" @bind-Value="EventDefinition.MaxTeamSize" For="@(() => EventDefinition.MaxTeamSize)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Team Count at Regionals" @bind-Value="EventDefinition.ChapterEligibilityCountRegionals" For="@(() => EventDefinition.ChapterEligibilityCountRegionals)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudNumericField T="int" Label="Team Count at State" @bind-Value="EventDefinition.ChapterEligibilityCountState" For="@(() => EventDefinition.ChapterEligibilityCountState)" Variant="Variant.Outlined"></MudNumericField>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
</MudPaper>
|
||||||
|
|
||||||
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
|
<MudText Typo="Typo.h5" Class="mb-4">Competition Details</MudText>
|
||||||
|
<MudGrid Spacing="3">
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudTextField T="string" Label="Semifinalist Activity" @bind-Value="EventDefinition.SemifinalistActivity" For="@(() => EventDefinition.SemifinalistActivity)" Variant="Variant.Outlined"></MudTextField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudCheckBox T="bool" Label="On Site Activity" @bind-Value="EventDefinition.OnSiteActivity" For="@(() => EventDefinition.OnSiteActivity)"></MudCheckBox>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12">
|
||||||
|
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.Presubmission" For="@(() => EventDefinition.Presubmission)"></MudCheckBox>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
|
||||||
|
<FormActions>
|
||||||
|
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Save</MudButton>
|
||||||
|
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
|
||||||
|
</FormActions>
|
||||||
|
</MudPaper>
|
||||||
|
</MudStack>
|
||||||
</EditForm>
|
</EditForm>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[SupplyParameterFromQuery]
|
[SupplyParameterFromQuery]
|
||||||
private int Id { get; set; }
|
private int Id { get; set; }
|
||||||
|
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
[SupplyParameterFromForm]
|
[SupplyParameterFromForm]
|
||||||
private EventDefinition? EventDefinition { get; set; }
|
private EventDefinition? EventDefinition { get; set; }
|
||||||
|
|
||||||
@@ -87,7 +137,7 @@
|
|||||||
{
|
{
|
||||||
context.SaveChangesAsync();
|
context.SaveChangesAsync();
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/events");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/events");
|
||||||
}
|
}
|
||||||
catch (DbUpdateConcurrencyException)
|
catch (DbUpdateConcurrencyException)
|
||||||
{
|
{
|
||||||
@@ -111,7 +161,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/events");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/events");
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool EventDefinitionExists(int id)
|
private bool EventDefinitionExists(int id)
|
||||||
|
|||||||
@@ -8,31 +8,47 @@
|
|||||||
Title="Create"
|
Title="Create"
|
||||||
Subtitle="Student"
|
Subtitle="Student"
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/students" />
|
BackButtonUrl="@(ReturnUrl ?? "/students")" />
|
||||||
|
|
||||||
<EditForm Model="Student" OnValidSubmit="OnValidSubmit" Enhance>
|
<EditForm Model="Student" OnValidSubmit="OnValidSubmit" Enhance>
|
||||||
<FormChangeTracker @ref="_formChangeTracker" />
|
<FormChangeTracker @ref="_formChangeTracker" />
|
||||||
<AntiforgeryToken />
|
<AntiforgeryToken />
|
||||||
<DataAnnotationsValidator />
|
<DataAnnotationsValidator />
|
||||||
<MudGrid>
|
|
||||||
<MudItem xs="12" sm="7">
|
<MudPaper Elevation="2" Class="pa-6">
|
||||||
<MudPaper Class="pa-4">
|
<MudText Typo="Typo.h5" Class="mb-4">Student Information</MudText>
|
||||||
<MudTextField T="string" Label="First Name" @bind-Value="Student.FirstName" For="@(() => Student.FirstName)"></MudTextField>
|
<MudGrid Spacing="3">
|
||||||
<MudTextField T="string" Label="Last Name" @bind-Value="Student.LastName" For="@(() => Student.LastName)"></MudTextField>
|
<MudItem xs="12" sm="6">
|
||||||
<MudTextField T="string" Label="Email Adress" @bind-Value="Student.Email" For="@(() => Student.Email)"></MudTextField>
|
<MudTextField T="string" Label="First Name" @bind-Value="Student.FirstName" For="@(() => Student.FirstName)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<MudTextField T="string" Label="Phone Number" @bind-Value="Student.PhoneNumber" For="@(() => Student.PhoneNumber)"></MudTextField>
|
</MudItem>
|
||||||
<MudTextField T="int" Label="Grade" @bind-Value="Student.Grade" For="@(() => Student.Grade)"></MudTextField>
|
<MudItem xs="12" sm="6">
|
||||||
<MudTextField T="int" Label="TSA Year" @bind-Value="Student.TsaYear" For="@(() => Student.TsaYear)"></MudTextField>
|
<MudTextField T="string" Label="Last Name" @bind-Value="Student.LastName" For="@(() => Student.LastName)" Variant="Variant.Outlined"></MudTextField>
|
||||||
</MudPaper>
|
</MudItem>
|
||||||
</MudItem>
|
<MudItem xs="12" sm="6">
|
||||||
</MudGrid>
|
<MudTextField T="string" Label="Email Address" @bind-Value="Student.Email" For="@(() => Student.Email)" Variant="Variant.Outlined"></MudTextField>
|
||||||
<FormActions>
|
</MudItem>
|
||||||
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Create</MudButton>
|
<MudItem xs="12" sm="6">
|
||||||
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
|
<MudTextField T="string" Label="Phone Number" @bind-Value="Student.PhoneNumber" For="@(() => Student.PhoneNumber)" Variant="Variant.Outlined"></MudTextField>
|
||||||
</FormActions>
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudTextField T="int" Label="Grade" @bind-Value="Student.Grade" For="@(() => Student.Grade)" Variant="Variant.Outlined"></MudTextField>
|
||||||
|
</MudItem>
|
||||||
|
<MudItem xs="12" sm="6">
|
||||||
|
<MudTextField T="int" Label="TSA Year" @bind-Value="Student.TsaYear" For="@(() => Student.TsaYear)" Variant="Variant.Outlined"></MudTextField>
|
||||||
|
</MudItem>
|
||||||
|
</MudGrid>
|
||||||
|
|
||||||
|
<FormActions>
|
||||||
|
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Create</MudButton>
|
||||||
|
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
|
||||||
|
</FormActions>
|
||||||
|
</MudPaper>
|
||||||
</EditForm>
|
</EditForm>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
[SupplyParameterFromForm]
|
[SupplyParameterFromForm]
|
||||||
private Student Student { get; set; } = new() { TsaYear = 1 };
|
private Student Student { get; set; } = new() { TsaYear = 1 };
|
||||||
|
|
||||||
@@ -44,12 +60,12 @@
|
|||||||
|
|
||||||
Context.Students.Add(Student);
|
Context.Students.Add(Student);
|
||||||
Context.SaveChanges();
|
Context.SaveChanges();
|
||||||
NavigationManager.NavigateTo("/students");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/students");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleCancel()
|
private void HandleCancel()
|
||||||
{
|
{
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/students");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/students");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
Title="Create"
|
Title="Create"
|
||||||
Subtitle="Team"
|
Subtitle="Team"
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/teams" />
|
BackButtonUrl="@(ReturnUrl ?? "/teams")" />
|
||||||
|
|
||||||
<EditForm method="post" Model="Team" OnValidSubmit="AddTeam" FormName="create" Enhance>
|
<EditForm method="post" Model="Team" OnValidSubmit="AddTeam" FormName="create" Enhance>
|
||||||
<FormChangeTracker @ref="_formChangeTracker" />
|
<FormChangeTracker @ref="_formChangeTracker" />
|
||||||
@@ -72,6 +72,9 @@
|
|||||||
</FormActions>
|
</FormActions>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
[SupplyParameterFromForm]
|
[SupplyParameterFromForm]
|
||||||
private Team Team { get; set; } = new();
|
private Team Team { get; set; } = new();
|
||||||
|
|
||||||
@@ -162,12 +165,12 @@
|
|||||||
|
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/teams");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/teams");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleCancel()
|
private void HandleCancel()
|
||||||
{
|
{
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/teams");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/teams");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,16 +16,16 @@
|
|||||||
<PageHeader
|
<PageHeader
|
||||||
Title="Team Details"
|
Title="Team Details"
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/teams">
|
BackButtonUrl="@(ReturnUrl ?? "/teams")">
|
||||||
<ActionButtons>
|
<ActionButtons>
|
||||||
<div class="no-print">
|
<div class="no-print">
|
||||||
<MudButton StartIcon="@Icons.Material.Filled.Print"
|
<MudButton StartIcon="@Icons.Material.Filled.Print"
|
||||||
OnClick="PrintPage"
|
OnClick="PrintPage"
|
||||||
Variant="Variant.Outlined">Print</MudButton>
|
Variant="Variant.Outlined">Print</MudButton>
|
||||||
<MudButton StartIcon="@Icons.Material.Filled.Edit"
|
<MudButton StartIcon="@Icons.Material.Filled.Edit"
|
||||||
Href="@($"/teams/edit?id={Team.Id}")"
|
Href="@($"/teams/edit?id={Team.Id}&returnUrl={ReturnUrl ?? "/teams"}")"
|
||||||
Variant="Variant.Outlined">Edit</MudButton>
|
Variant="Variant.Outlined">Edit</MudButton>
|
||||||
<MudButton Href="/teams" Variant="Variant.Text">Back to List</MudButton>
|
<MudButton Href="@(ReturnUrl ?? "/teams")" Variant="Variant.Text">Back to List</MudButton>
|
||||||
</div>
|
</div>
|
||||||
</ActionButtons>
|
</ActionButtons>
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
@@ -60,6 +60,9 @@
|
|||||||
[SupplyParameterFromQuery]
|
[SupplyParameterFromQuery]
|
||||||
private int Id { get; set; }
|
private int Id { get; set; }
|
||||||
|
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
private Team? Team { get; set; }
|
private Team? Team { get; set; }
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<PageHeader Title="Edit Team"
|
<PageHeader Title="Edit Team"
|
||||||
Subtitle=@Team.ToString()
|
Subtitle=@Team.ToString()
|
||||||
ShowBackButton="true"
|
ShowBackButton="true"
|
||||||
BackButtonUrl="/teams" />
|
BackButtonUrl="@(ReturnUrl ?? "/teams")" />
|
||||||
|
|
||||||
<EditForm method="post" Model="Team" OnValidSubmit="UpdateTeam" FormName="edit" Enhance>
|
<EditForm method="post" Model="Team" OnValidSubmit="UpdateTeam" FormName="edit" Enhance>
|
||||||
<FormChangeTracker @ref="_formChangeTracker" />
|
<FormChangeTracker @ref="_formChangeTracker" />
|
||||||
@@ -46,6 +46,9 @@
|
|||||||
[SupplyParameterFromQuery]
|
[SupplyParameterFromQuery]
|
||||||
private int Id { get; set; }
|
private int Id { get; set; }
|
||||||
|
|
||||||
|
[SupplyParameterFromQuery]
|
||||||
|
private string? ReturnUrl { get; set; }
|
||||||
|
|
||||||
[SupplyParameterFromForm]
|
[SupplyParameterFromForm]
|
||||||
private Team? Team { get; set; }
|
private Team? Team { get; set; }
|
||||||
|
|
||||||
@@ -103,7 +106,7 @@
|
|||||||
{
|
{
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/teams");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/teams");
|
||||||
}
|
}
|
||||||
catch (DbUpdateConcurrencyException)
|
catch (DbUpdateConcurrencyException)
|
||||||
{
|
{
|
||||||
@@ -127,7 +130,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
_formChangeTracker?.AllowNavigation();
|
_formChangeTracker?.AllowNavigation();
|
||||||
NavigationManager.NavigateTo("/teams");
|
NavigationManager.NavigateTo(ReturnUrl ?? "/teams");
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool TeamExists(int id)
|
private bool TeamExists(int id)
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ Consider using MudChip components with rank colors for better visual distinction
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 9. Improve Form Layout
|
### 9. Improve Form Layout ✅ COMPLETED
|
||||||
**Locations**: Create.razor and Edit.razor pages
|
**Locations**: Create.razor and Edit.razor pages
|
||||||
|
|
||||||
**Recommendations**:
|
**Recommendations**:
|
||||||
@@ -337,7 +337,7 @@ Consider using MudChip components with rank colors for better visual distinction
|
|||||||
### Phase 3: Enhancements (Nice to Have)
|
### Phase 3: Enhancements (Nice to Have)
|
||||||
7. Audit and ensure button hierarchy consistency
|
7. Audit and ensure button hierarchy consistency
|
||||||
8. ✅ Enhance event rank visualization
|
8. ✅ Enhance event rank visualization
|
||||||
9. Improve form layout grouping
|
9. ✅ Improve form layout grouping
|
||||||
10. Add micro-interactions and transitions
|
10. Add micro-interactions and transitions
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user