Files
canvasManagement/Management.Web/Pages/Course.razor
2023-10-24 13:45:43 -06:00

76 lines
1.8 KiB
Plaintext

@page "/course/{CourseName}"
@using CanvasModel.EnrollmentTerms
@using Management.Web.Shared.Course
@using Management.Web.Shared.Module.Assignment.Templates
@using Management.Web.Shared.Semester
@using CanvasModel.Courses
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
@using LocalModels
@using Management.Web.Shared.Module.Assignment
@using Management.Web.Shared.Components
@inject FileStorageManager fileStorageManager
@inject CanvasService canvas
@inject CoursePlanner planner
@inject NavigationManager navigtion
@code {
[Parameter]
public string CourseName { get; set; }
private bool loading = true;
protected override async Task OnInitializedAsync()
{
if (planner.LocalCourse == null)
{
var courses = await fileStorageManager.LoadSavedCourses();
planner.LocalCourse = courses.First(c => c.Settings.Name == CourseName);
}
base.OnInitialized();
loading = false;
}
private void selectNewCourse()
{
planner.Clear();
navigtion.NavigateTo("/");
}
}
@if (loading)
{
<Spinner />
}
@if (planner.LocalCourse != null)
{
<div class="mb-3 d-flex justify-content-between" style="height: 4em;">
<div class="my-auto">
<button @onclick="selectNewCourse" class="btn btn-primary">
Select New Course
</button>
<CourseSettings />
<AssignmentTemplateManagement />
<button class="btn btn-outline-primary" @onclick="planner.SyncWithCanvas">
Sync With Canvas
</button>
<a class="btn btn-outline-secondary" target="_blank"
href="@($"{Environment.GetEnvironmentVariable("CANVAS_URL")}/courses/{planner.LocalCourse.Settings.CanvasId}")">
View In Canvas
</a>
<div class="my-auto ms-2 d-inline">
@planner.LocalCourse.Settings.Name
</div>
</div>
@if (planner.LoadingCanvasData)
{
<Spinner />
}
</div>
<CourseDetails />
}
<br>