Files
canvasManagement/Management.Web/Pages/Index.razor

104 lines
2.2 KiB
Plaintext

@page "/"
@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 CanvasService canvas
@inject CoursePlanner planner
@inject ICanvasTokenManagement tokenManagement
@code
{
private bool showNewFile { get; set; } = false;
private bool hasCanvasToken { get; set; } = false;
protected override void OnInitialized()
{
planner.StateHasChanged += reload;
}
private void reload()
{
this.InvokeAsync(this.StateHasChanged);
}
public void Dispose()
{
planner.StateHasChanged -= reload;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(firstRender)
{
hasCanvasToken = await tokenManagement.GetCanvasToken() != null;
StateHasChanged();
}
}
private async Task SetToken(string newToken)
{
await tokenManagement.SaveCanvasToken(newToken);
hasCanvasToken = true;
StateHasChanged();
}
}
<PageTitle>Index</PageTitle>
@if(!hasCanvasToken)
{
<ValidateCanvasToken SetToken="SetToken" />
}
@if(planner.LocalCourse == null)
{
<CurrentFiles />
@if(!showNewFile)
{
<div class="text-center">
<button
@onclick="@(()=>showNewFile = true)"
class="btn btn-primary"
>
Create New File
</button>
</div>
}
@if(showNewFile)
{
<div class="text-center">
<button
@onclick="@(()=>showNewFile = false)"
class="btn btn-primary"
>
Hide File Initialization
</button>
</div>
<div class="border rounded bg-dark-subtle p-3 my-3">
<InitializeYamlFromCanvas />
</div>
}
}
@if(planner.LocalCourse != null)
{
<div class="mb-3">
<button
@onclick="@(() => planner.LocalCourse = null)"
class="btn btn-primary"
>
Select New Course
</button>
<CourseSettings />
<AssignmentTemplateManagement />
</div>
<CourseDetails />
}
<br>