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

120 lines
2.6 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
@code {
private bool showNewFile { get; set; } = false;
protected override void OnInitialized()
{
planner.StateHasChanged += reload;
}
private void reload()
{
this.InvokeAsync(this.StateHasChanged);
}
public void Dispose()
{
planner.StateHasChanged -= reload;
}
private void NewFileCreated()
{
showNewFile = false;
refreshKey++;
StateHasChanged();
}
private int refreshKey;
}
<PageTitle>Index</PageTitle>
@if(planner.LocalCourse == null)
{
<div class="row justify-content-center">
<div class="col-auto">
<CurrentFiles RefreshKey="refreshKey" />
</div>
</div>
@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 NewFileCreated="NewFileCreated" />
</div>
}
}
@if(planner.LocalCourse != null)
{
<div class="mb-3 d-flex justify-content-between" style="height: 4em;">
<div class="my-auto">
<button
@onclick="planner.Clear"
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.CanvasId}")"
>
View In Canvas
</a>
<div class="my-auto ms-2 d-inline">
@planner.LocalCourse.Name
</div>
</div>
@if(planner.LoadingCanvasData)
{
<Spinner />
}
</div>
<CourseDetails />
}
<br>
@* <MonacoEditorDemo /> *@