Add Team functions

This commit is contained in:
2025-09-22 12:53:46 -04:00
parent 3daa3b81b3
commit dc83a18d76
48 changed files with 2364 additions and 633 deletions
+278
View File
@@ -0,0 +1,278 @@
using MudBlazor;
namespace WebApp.Components.Layout
{
public static class CustomThemes
{
/*
!
* Bootswatch v5.3.3 (https://bootswatch.com)
* Theme: cerulean
* Copyright 2012-2024 Thomas Park
* Licensed under MIT
* Based on Bootstrap
*/
public static readonly MudTheme Ceruleantheme = new()
{
PaletteLight = new PaletteLight()
{
Black = "#000",
White = "#fff",
Primary = "#2fa4e7ff",
PrimaryContrastText = "#d5edfaff",
Secondary = "#e9ecef",
SecondaryContrastText = "#495057ff",
Tertiary = "#dee2e6ff",
TertiaryContrastText = "#495057ff",
Info = "#033c73",
InfoContrastText = "#cdd8e3",
Success = "#73a839",
SuccessContrastText = "#e3eed7",
Warning = "#dd5600",
WarningContrastText = "#f8ddcc",
Error = "rgba(244,67,54,1)",
ErrorContrastText = "rgba(255,255,255,1)",
Dark = "#343a40",
DarkContrastText = "#ced4da",
TextPrimary = "#13425cff",
TextSecondary = "#5d5e60",
TextDisabled = "rgba(0,0,0,0.3764705882352941)",
ActionDefault = "rgba(0,0,0,0.5372549019607843)",
ActionDisabled = "rgba(0,0,0,0.25882352941176473)",
ActionDisabledBackground = "rgba(0,0,0,0.11764705882352941)",
Background = "rgba(255,255,255,1)",
BackgroundGray = "rgba(245,245,245,1)",
Surface = "rgba(255,255,255,1)",
DrawerBackground = "#e9ecefff",
DrawerText = "#495057ff",
DrawerIcon = "#e9ecef",
AppbarBackground = "#2fa4e7ff",
AppbarText = "#d5edfaff",
LinesDefault = "rgba(0,0,0,0.11764705882352941)",
LinesInputs = "rgba(189,189,189,1)",
TableLines = "rgba(224,224,224,1)",
TableStriped = "rgba(0,0,0,0.0196078431372549)",
TableHover = "rgba(0,0,0,0.0392156862745098)",
Divider = "rgba(224,224,224,1)",
DividerLight = "rgba(0,0,0,0.8)",
PrimaryDarken = "#13425c",
PrimaryLighten = "#d5edfa",
SecondaryDarken = "#5d5e60",
SecondaryLighten = "#fbfbfc",
TertiaryDarken = "rgba(73, 80, 87, 0.5)",
TertiaryLighten = "rgba(73, 80, 87, 0.5)",
InfoDarken = "#01182e",
InfoLighten = "#cdd8e3",
SuccessDarken = "#2e4317",
SuccessLighten = "#e3eed7",
WarningDarken = "#582200",
WarningLighten = "#f8ddcc",
ErrorDarken = "rgb(242,28,13)",
ErrorLighten = "rgb(246,96,85)",
DarkDarken = "rgb(46,46,46)",
DarkLighten = "rgb(87,87,87)",
HoverOpacity = 0.06,
RippleOpacity = 0.1,
RippleOpacitySecondary = 0.2,
GrayDefault = "#9E9E9E",
GrayLight = "#BDBDBD",
GrayLighter = "#E0E0E0",
GrayDark = "#757575",
GrayDarker = "#616161",
OverlayDark = "rgba(33,33,33,0.4980392156862745)",
OverlayLight = "rgba(255,255,255,0.4980392156862745)",
},
PaletteDark = new PaletteDark()
{
Black = "#000",
White = "#fff",
Primary = "#2fa4e7ff",
PrimaryContrastText = "#d5edfaff",
Secondary = "#e9ecef",
SecondaryContrastText = "#2f2f30",
Tertiary = "rgba(222, 226, 230, 0.5)",
TertiaryContrastText = "#2b3035",
Info = "#026e8eff",
InfoContrastText = "#010c17",
Success = "#73a839",
SuccessContrastText = "#17220b",
Warning = "#dd5600",
WarningContrastText = "#2c1100",
Error = "rgba(244,67,54,1)",
ErrorContrastText = "rgba(255,255,255,1)",
Dark = "#343a40ff",
DarkContrastText = "#1a1d20",
TextPrimary = "#82c8f1",
TextSecondary = "#f2f4f5",
TextDisabled = "rgba(255,255,255,0.2)",
ActionDefault = "rgba(173,173,177,1)",
ActionDisabled = "rgba(255,255,255,0.25882352941176473)",
ActionDisabledBackground = "rgba(255,255,255,0.11764705882352941)",
Background = "rgba(50,51,61,1)",
BackgroundGray = "rgba(39,39,47,1)",
Surface = "#212529ff",
DrawerBackground = "#2f2f30ff",
DrawerText = "#e9ecef",
DrawerIcon = "#e9ecef",
AppbarBackground = "#2fa4e7ff",
AppbarText = "#d5edfaff",
LinesDefault = "rgba(255,255,255,0.11764705882352941)",
LinesInputs = "rgba(255,255,255,0.2980392156862745)",
TableLines = "rgba(255,255,255,0.11764705882352941)",
TableStriped = "rgba(255,255,255,0.2)",
Divider = "#ffffff73",
DividerLight = "#ffffff2e",
PrimaryDarken = "#82c8f1",
PrimaryLighten = "#09212e",
SecondaryDarken = "#f2f4f5",
SecondaryLighten = "#2f2f30",
TertiaryDarken = "rgba(222, 226, 230, 0.5)",
TertiaryLighten = "rgba(222, 226, 230, 0.5)",
InfoDarken = "#688aab",
InfoLighten = "#010c17",
SuccessDarken = "#abcb88",
SuccessLighten = "#17220b",
WarningDarken = "#eb9a66",
WarningLighten = "#2c1100",
ErrorDarken = "rgb(242,28,13)",
ErrorLighten = "rgb(246,96,85)",
DarkDarken = "rgb(23,23,28)",
DarkLighten = "rgb(56,56,67)",
},
LayoutProperties = new LayoutProperties()
{
DefaultBorderRadius = "4px",
DrawerMiniWidthLeft = "56px",
DrawerMiniWidthRight = "56px",
DrawerWidthLeft = "240px",
DrawerWidthRight = "240px",
AppbarHeight = "64px",
},
Typography = new Typography()
{
Default = new DefaultTypography
{
FontFamily = ["Roboto", "Helvetica", "Arial", "sans-serif"],
FontWeight = "400",
FontSize = ".875rem",
LineHeight = "1.43",
LetterSpacing = ".01071em",
TextTransform = "none",
},
H1 = new H1Typography
{
FontWeight = "300",
FontSize = "6rem",
LineHeight = "1.167",
LetterSpacing = "-.01562em",
TextTransform = "none",
},
H2 = new H2Typography
{
FontWeight = "300",
FontSize = "3.75rem",
LineHeight = "1.2",
LetterSpacing = "-.00833em",
TextTransform = "none",
},
H3 = new H3Typography
{
FontWeight = "400",
FontSize = "3rem",
LineHeight = "1.167",
LetterSpacing = "0",
TextTransform = "none",
},
H4 = new H4Typography
{
FontWeight = "400",
FontSize = "2.125rem",
LineHeight = "1.235",
LetterSpacing = ".00735em",
TextTransform = "none",
},
H5 = new H5Typography
{
FontWeight = "400",
FontSize = "1.5rem",
LineHeight = "1.334",
LetterSpacing = "0",
TextTransform = "none",
},
H6 = new H6Typography
{
FontWeight = "500",
FontSize = "1.25rem",
LineHeight = "1.6",
LetterSpacing = ".0075em",
TextTransform = "none",
},
Subtitle1 = new Subtitle1Typography
{
FontWeight = "400",
FontSize = "1rem",
LineHeight = "1.75",
LetterSpacing = ".00938em",
TextTransform = "none",
},
Subtitle2 = new Subtitle2Typography
{
FontWeight = "500",
FontSize = ".875rem",
LineHeight = "1.57",
LetterSpacing = ".00714em",
TextTransform = "none",
},
Body1 = new Body1Typography
{
FontWeight = "400",
FontSize = "1rem",
LineHeight = "1.5",
LetterSpacing = ".00938em",
TextTransform = "none",
},
Body2 = new Body2Typography
{
FontWeight = "400",
FontSize = ".875rem",
LineHeight = "1.43",
LetterSpacing = ".01071em",
TextTransform = "none",
},
Button = new ButtonTypography
{
FontWeight = "500",
FontSize = ".875rem",
LineHeight = "1.75",
LetterSpacing = ".02857em",
TextTransform = "uppercase",
},
Caption = new CaptionTypography
{
FontWeight = "400",
FontSize = ".75rem",
LineHeight = "1.66",
LetterSpacing = ".03333em",
TextTransform = "none",
},
Overline = new OverlineTypography
{
FontWeight = "400",
FontSize = ".75rem",
LineHeight = "2.66",
LetterSpacing = ".08333em",
TextTransform = "none",
},
},
ZIndex = new ZIndex()
{
Drawer = 1100,
Popover = 1200,
AppBar = 1300,
Dialog = 1400,
Snackbar = 1500,
Tooltip = 1600,
},
};
}
}
+23 -15
View File
@@ -1,24 +1,32 @@
@inherits LayoutComponentBase
@inject IConfiguration Configuration
<MudThemeProvider />
<MudThemeProvider Theme="CustomThemes.Ceruleantheme" />
<MudPopoverProvider />
<MudDialogProvider />
<div class="page">
<div class="sidebar">
<MudLayout>
<MudAppBar Class="no-print">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
TSA Chapter Organizer - @Configuration["ChapterSettings:Name"]
</MudAppBar>
<MudDrawer @bind-Open="@_drawerOpen" Class="no-print">
<NavMenu/>
</div>
</MudDrawer>
<MudMainContent>
<MudContainer MaxWidth="MaxWidth.ExtraLarge">
@Body
</MudContainer>
</MudMainContent>
</MudLayout>
@code {
bool _drawerOpen = true;
<main>
@* <div class="top-row px-4">
<a href="https://learn.microsoft.com/aspnet/core/" target="_blank">About</a>
</div> *@
<article class="content px-4">
@Body
</article>
</main>
</div>
void DrawerToggle()
{
_drawerOpen = !_drawerOpen;
}
}
<div id="blazor-error-ui">
An unhandled error has occurred.
+19 -42
View File
@@ -1,43 +1,20 @@
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">WebApp</a>
</div>
</div>
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="events">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Events
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="students">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Students
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="teams">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Teams
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="import">
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Import
</NavLink>
</div>
</nav>
</div>
@using WebApp.Models
@inject IConfiguration Configuration
<MudPaper Width="250px" Class="d-inline-flex py-3" Elevation="0">
<MudNavMenu Class="mud-width-full">
<MudText Typo="Typo.h6" Class="px-4">TSA Chapter Organizer</MudText>
<MudText Typo="Typo.body2" Class="px-4 mud-text-secondary">@Configuration["ChapterSettings:Name"]</MudText>
<MudDivider Class="my-2" />
<MudNavLink Href="/events" Icon="@AppIcons.Events">Events</MudNavLink>
<MudNavGroup Title="Students" Icon="@Icons.Material.Filled.People" Expanded="true">
<MudNavLink Href="/students" Icon="@Icons.Material.Filled.People">Students</MudNavLink>
<MudNavLink Href="/students/event-ranking" Icon="@AppIcons.EventRank">Event Ranking</MudNavLink>
</MudNavGroup>
<MudNavGroup Title="Teams" Icon="@Icons.Material.Outlined.Groups" Expanded="true">
<MudNavLink Href="/teams" Icon="@AppIcons.Teams">Teams</MudNavLink>
<MudNavLink Href="/teams/assignment" Icon="@AppIcons.TeamAssignment">Event Assignment</MudNavLink>
<MudNavLink Href="/teams/scheduler" Icon="@AppIcons.TeamAssignment">Schedule</MudNavLink>
</MudNavGroup>
</MudNavMenu>
</MudPaper>
+1 -1
View File
@@ -3,7 +3,7 @@
cursor: pointer;
width: 3.5rem;
height: 2.5rem;
color: white;
color: blue;
position: absolute;
top: 0.5rem;
right: 1rem;