Skip to content

Commit bf440ea

Browse files
authored
UI fixes (#62)
#38 #37 #51 #50 #49 #48 #46 #36
2 parents c50ebb5 + 9931f93 commit bf440ea

File tree

17 files changed

+238
-59
lines changed

17 files changed

+238
-59
lines changed
Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,37 @@
1-
<MudSelect T="Subject" Value="@Value" ValueChanged="@((Subject value) => { Value = value; ValueChanged.InvokeAsync(value); })" ToStringFunc="@subjectToString" Label="Subject" Style="background-color: white;" Dense="true" Variant="Variant.Filled" AnchorOrigin="Origin.BottomCenter" TransformOrigin="Origin.TopCenter">
1+
<style>
2+
.white-select .mud-input-label.mud-input-label-inputcontrol {
3+
color: white !important;
4+
background: var(--mud-palette-appbar-background);
5+
}
6+
7+
.white-select .mud-input-outlined-border {
8+
border-color: white !important;
9+
}
10+
11+
.white-select .mud-input-slot {
12+
color: white !important;
13+
}
14+
.white-select .mud-input-adornment .mud-icon-root {
15+
color: white !important;
16+
}
17+
18+
</style>
19+
20+
<MudSelect T="Subject" Value="@Value"
21+
ValueChanged="@((Subject value) => { Value = value; ValueChanged.InvokeAsync(value); })"
22+
ToStringFunc="@subjectToString" Label="Subject" Class="white-select" Dense="true" Variant="Variant.Outlined"
23+
AnchorOrigin="Origin.BottomCenter" TransformOrigin="Origin.TopCenter">
224
@foreach (var semester in PossibleValues)
325
{
4-
<MudSelectItem Value="@semester"/>
26+
<MudSelectItem Value="@semester"/>
527
}
628
</MudSelect>
729

830
@code {
9-
[Parameter] public Subject Value { get; set; }
10-
[Parameter] public List<Subject> PossibleValues { get; set; }
11-
[Parameter] public EventCallback<Subject> ValueChanged { get; set; }
31+
[Parameter] public Subject Value { get; set; }
32+
[Parameter] public List<Subject> PossibleValues { get; set; }
33+
[Parameter] public EventCallback<Subject> ValueChanged { get; set; }
1234

13-
private Func<Subject, string> subjectToString = p => p.Name;
35+
private Func<Subject, string> subjectToString = p => p.Name;
1436

1537
}

grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ else
1111

1212
@code {
1313

14-
[Parameter] public bool IsLoading { get; set; }
14+
[Parameter] public bool IsLoading { get; set; } = true;
1515

1616
[Parameter] public RenderFragment ChildContent { get; set; }
1717

@@ -24,14 +24,18 @@ else
2424

2525
public async Task StartLoading()
2626
{
27-
if (LongTask != null)
27+
_ = Task.Run(async () =>
2828
{
29-
IsLoading = true;
30-
StateHasChanged();
31-
await LongTask();
32-
IsLoading = false;
33-
StateHasChanged();
34-
}
29+
await Task.Delay(1); // Delay for 100 milliseconds
30+
if (LongTask != null)
31+
{
32+
IsLoading = true;
33+
StateHasChanged();
34+
await LongTask();
35+
IsLoading = false;
36+
StateHasChanged();
37+
}
38+
});
3539
}
3640

3741
}

grade-management-new/GradeManagement.Client/Components/NewDialogs/NewCourseDialog.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<DialogContent>
66
<MudForm @ref="form" Model="@value" @bind-IsValid="@success" @bind-Errors="@errors">
77
<MudTextField T="string" Label="Name" For="@(() => value.Name)" @bind-Value="value.Name" Required="true"></MudTextField>
8-
<MudTextField T="string" Label="Neptun Code" @bind-Value="@value.MoodleCourseId" Required="true"></MudTextField>
8+
<MudTextField T="string" Label="Moodle Course Id" @bind-Value="@value.MoodleCourseId" Required="true"></MudTextField>
99
<SelectSemester @bind-Value="@value.Semester"/>
1010
<SelectLanguage @bind-Value="@value.Language"/>
1111
</MudForm>

grade-management-new/GradeManagement.Client/Components/NewDialogs/NewSubjectDialog.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141

4242
private IEnumerable<string> NeptunCodeValidator(string pw)
4343
{
44-
if (pw.Length != 6)
45-
yield return "Neptun code should be exactly 6 characters long.";
44+
if (pw.Length < 20)
45+
yield return "Neptun code should be less than 20 characters long.";
4646
}
4747

4848
}

grade-management-new/GradeManagement.Client/Layout/AppBar.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@inject SubjectService SubjectService
22

3-
<MudAppBar Elevation="5">
3+
<MudAppBar Elevation="5" Class="pb-1">
44
<MudIconButton Icon="@(DrawerOpened ? Icons.Material.Filled.Close : Icons.Material.Filled.Menu)" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())"/>
55
<MudText Typo="Typo.h3" Class="ml-3">AHK Review UI</MudText>
66
<MudSpacer/>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
@page "/authentication/{action}"
22
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
3+
@inject NavigationManager Navigation
4+
35
<RemoteAuthenticatorView Action="@Action"/>
46

57
@code{
68
[Parameter] public string? Action { get; set; }
9+
10+
protected override void OnInitialized()
11+
{
12+
if (Action == "login-callback")
13+
{
14+
// Call backend for user data
15+
Navigation.NavigateTo("/");
16+
}
17+
}
18+
719
}

grade-management-new/GradeManagement.Client/Pages/Courses.razor

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,24 @@
1111
@inject NavigationManager NavigationManager
1212

1313

14+
15+
<style>
16+
.clickable-rows .mud-table-body .mud-table-row {
17+
cursor: pointer;
18+
transition: background-color 0.3s ease;
19+
}
20+
21+
.clickable-rows .mud-table-body .mud-table-row:hover {
22+
background-color: rgba(0, 0, 0, 0.1);
23+
}
24+
</style>
25+
26+
<PageTitle>Courses</PageTitle>
27+
1428
<LoadingComponent @ref="loadingComponentRef" LongTask="@_loading">
15-
<MudDataGrid T="Course" Items="_courses" EditMode="DataGridEditMode.Form" ReadOnly="false" CommittedItemChanges="@CommittedItemChanges" RowClick="@RowClickEvent">
29+
<MudText Typo="Typo.h4" Class="mt-4">Courses</MudText>
30+
<MudDivider Class="mb-4"/>
31+
<MudDataGrid T="Course" Items="_courses" EditMode="DataGridEditMode.Form" ReadOnly="false" CommittedItemChanges="@CommittedItemChanges" RowClick="@RowClickEvent" Class="clickable-rows">
1632
<Columns>
1733
<PropertyColumn Property="x => x.Id" Title="Id" IsEditable="false" />
1834
<PropertyColumn Property="x => x.Name" Title="Name"/>

grade-management-new/GradeManagement.Client/Pages/Languages.razor

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<PageTitle>Languages</PageTitle>
1010

1111
<LoadingComponent @ref="loadingRef" LongTask="@Loading">
12+
<MudText Typo="Typo.h4" Class="mt-4">Languages</MudText>
13+
<MudDivider Class="mb-4"/>
1214
<MudDataGrid T="Language" Items="_languages" EditMode="DataGridEditMode.Form" ReadOnly="false" CommittedItemChanges="@CommittedItemChanges">
1315
<Columns>
1416
<PropertyColumn Property="x => x.Id" Title="Id" IsEditable="false"/>

grade-management-new/GradeManagement.Client/Pages/Main.razor

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
@inject ExerciseClient ExerciseClient
88
@inject AssignmentClient AssignmentClient
99
@inject DashboardClient DashboardClient
10-
<PageTitle>AHK Review UI</PageTitle>
10+
@inject CrudSnackbarService SnackbarService
1111

1212
<style>
1313
.sort-direction-icon {
@@ -28,6 +28,8 @@
2828
</style>
2929

3030
<LoadingComponent LongTask="@Loading" @ref="loadingRef">
31+
<MudText Typo="Typo.h4" Class="mt-4">Dashboard</MudText>
32+
<MudDivider Class="mb-4"/>
3133

3234
<MudStack Row="true" Class="mt-6">
3335
<MudSelect T="string" Label="Course" @bind-Value="_selectedCourse" @bind-Value:after="CourseChanged"
@@ -147,6 +149,12 @@
147149
private async Task Loading()
148150
{
149151
_selectedSubject = SubjectService.CurrentSubject;
152+
if (_selectedSubject == null)
153+
{
154+
SnackbarService.ShowMessage("New subject wizard is not implemented yet!");
155+
return;
156+
}
157+
150158
_dashboardData = await DashboardClient.GetDashboardAsync(_selectedSubject.Id);
151159
_filteredData = _dashboardData.ToList();
152160
_courses = _dashboardData?.Select(x => x.CourseName).Distinct();

grade-management-new/GradeManagement.Client/Pages/Semesters.razor

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<PageTitle>Semesters</PageTitle>
1010

1111
<LoadingComponent LongTask="@Loading" @ref="loadingRef">
12+
<MudText Typo="Typo.h4" Class="mt-4">Semesters</MudText>
13+
<MudDivider Class="mb-4"/>
1214
<MudDataGrid T="Semester" Items="_semesters" EditMode="DataGridEditMode.Form" ReadOnly="false" CommittedItemChanges="@CommittedItemChanges">
1315
<Columns>
1416
<PropertyColumn Property="x => x.Id" Title="Id" IsEditable="false"/>

0 commit comments

Comments
 (0)