mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
72 lines
1.8 KiB
Plaintext
72 lines
1.8 KiB
Plaintext
@page "/course/{CourseName}/page/{PageName}"
|
|
|
|
@using CanvasModel.EnrollmentTerms
|
|
@using CanvasModel.Courses
|
|
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
|
|
@using LocalModels
|
|
@using Management.Web.Pages.Course.Module.ModuleItems
|
|
@using Management.Web.Shared.Components
|
|
|
|
@inject IFileStorageManager fileStorageManager
|
|
@inject ICanvasService canvas
|
|
@inject CoursePlanner planner
|
|
@inject PageEditorContext pageContext
|
|
@inject ILogger<CoursePageFormPage> logger
|
|
|
|
|
|
|
|
@code {
|
|
[Parameter]
|
|
public string? CourseName { get; set; } = default!;
|
|
[Parameter]
|
|
public string? PageName { get; set; } = default!;
|
|
|
|
|
|
private bool loading { get; set; } = true;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
if (loading)
|
|
{
|
|
loading = false;
|
|
logger.LogInformation($"loading page {CourseName} {PageName}");
|
|
if (planner.LocalCourse == null)
|
|
{
|
|
var courses = await fileStorageManager.LoadSavedCourses();
|
|
planner.LocalCourse = courses.First(c => c.Settings.Name == CourseName);
|
|
logger.LogInformation($"set course to '{planner.LocalCourse?.Settings.Name}'");
|
|
}
|
|
|
|
if (pageContext.Page == null)
|
|
{
|
|
var page = planner
|
|
.LocalCourse?
|
|
.Modules
|
|
.SelectMany(m => m.Pages)
|
|
.FirstOrDefault(a => a.Name == PageName);
|
|
|
|
pageContext.Page = page;
|
|
logger.LogInformation($"set page to '{pageContext.Page?.Name}'");
|
|
}
|
|
await planner.LoadCanvasData();
|
|
base.OnInitialized();
|
|
StateHasChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
<PageTitle>@CourseName - @PageName</PageTitle>
|
|
|
|
<div style="height: 100vh;" class="m-0 p-1 d-flex flex-row">
|
|
@if (loading)
|
|
{
|
|
<Spinner />
|
|
}
|
|
|
|
@if (planner.LocalCourse != null && pageContext.Page != null)
|
|
{
|
|
<CoursePageForm />
|
|
}
|
|
</div>
|