6acbc4e852
This commit updates the authentication process to include a return URL parameter, allowing users to be redirected back to their original page after logging in. Changes were made to the AuthController, Login component, and Routes component to handle the return URL appropriately. Additionally, improvements were made to the TeamScheduler and TeamSchedulerSolution classes for better team and student management. These enhancements improve user experience and navigation within the application.
65 lines
2.0 KiB
Plaintext
65 lines
2.0 KiB
Plaintext
@using Core.Calculation
|
|
@using WebApp.Models
|
|
|
|
<MudStack>
|
|
<MudText Typo="Typo.h6">@TimeSlotName</MudText>
|
|
@foreach (var team in Teams.OrderByEventFormatFirst().ThenBy(e => e.ToString()))
|
|
{
|
|
var scheduledTeamIds = ScheduledTeams.Select(t => t.Id).ToHashSet();
|
|
var removed = !scheduledTeamIds.Contains(team.Id);
|
|
|
|
<MudLink Typo="Typo.body1"
|
|
Class="d-flex align-center"
|
|
Color="Color.Default"
|
|
OnClick="@(() => OnToggleTeam.InvokeAsync(team))">
|
|
<MudIcon Icon="@Icons.Material.Filled.Clear"
|
|
Size="Size.Small"
|
|
Class="@(removed ? "" : "d-none")">
|
|
</MudIcon>
|
|
@team -
|
|
@foreach (var student in team.Students)
|
|
{
|
|
var overlap = StudentHasOverlaps(student);
|
|
var isAbsent = AbsentStudents.Contains(student);
|
|
var color = overlap ? Color.Warning : Color.Default;
|
|
var suffix = GetStudentSuffix(overlap, isAbsent);
|
|
|
|
if (student != team.Students.First())
|
|
{
|
|
<MudText>, </MudText>
|
|
}
|
|
<MudText Typo="Typo.body2" Color="@color">
|
|
@student.FirstName@suffix
|
|
</MudText>
|
|
}
|
|
</MudLink>
|
|
}
|
|
</MudStack>
|
|
|
|
@code {
|
|
[Parameter]
|
|
public string TimeSlotName { get; set; } = string.Empty;
|
|
|
|
[Parameter]
|
|
public IEnumerable<Team> Teams { get; set; } = [];
|
|
|
|
[Parameter]
|
|
public IEnumerable<Team> ScheduledTeams { get; set; } = [];
|
|
|
|
[Parameter]
|
|
public IEnumerable<Student> AbsentStudents { get; set; } = [];
|
|
|
|
[Parameter]
|
|
public Func<Student, bool> StudentHasOverlaps { get; set; } = null!;
|
|
|
|
[Parameter]
|
|
public EventCallback<Team> OnToggleTeam { get; set; }
|
|
|
|
private string GetStudentSuffix(bool overlap, bool isAbsent)
|
|
{
|
|
var suffix = overlap ? "*" : "";
|
|
suffix += isAbsent ? " (absent)" : "";
|
|
return suffix;
|
|
}
|
|
}
|