mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
moved assignment editing to its own page
This commit is contained in:
@@ -1,33 +0,0 @@
|
|||||||
@page "/course/{CourseName}/assignment/{AssignmentId}"
|
|
||||||
@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 YamlManager yamlManager
|
|
||||||
@inject CanvasService canvas
|
|
||||||
@inject CoursePlanner planner
|
|
||||||
|
|
||||||
@code {
|
|
||||||
[Parameter]
|
|
||||||
public string CourseName { get; set; }
|
|
||||||
[Parameter]
|
|
||||||
public string AssignmentId { get; set; }
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
if(planner.LocalCourse == null)
|
|
||||||
{
|
|
||||||
var courses = await yamlManager.LoadSavedCourses();
|
|
||||||
planner.LocalCourse = courses.First(c => c.Name == CourseName);
|
|
||||||
}
|
|
||||||
base.OnInitialized();
|
|
||||||
@* loading = false; *@
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
67
Management.Web/Pages/AssignmentFormPage.razor
Normal file
67
Management.Web/Pages/AssignmentFormPage.razor
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
@page "/course/{CourseName}/assignment/{AssignmentId}"
|
||||||
|
|
||||||
|
@using CanvasModel.EnrollmentTerms
|
||||||
|
@using Management.Web.Shared.Components.AssignmentForm
|
||||||
|
@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 YamlManager yamlManager
|
||||||
|
@inject CanvasService canvas
|
||||||
|
@inject CoursePlanner planner
|
||||||
|
@inject AssignmentEditorContext assignmentContext
|
||||||
|
@inject ILogger<AssignmentFormPage> logger
|
||||||
|
|
||||||
|
@code {
|
||||||
|
[Parameter]
|
||||||
|
public string? CourseName { get; set; } = default!;
|
||||||
|
[Parameter]
|
||||||
|
public string? AssignmentId { get; set; } = default!;
|
||||||
|
|
||||||
|
private bool loading { get; set; }= true;
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
if(loading)
|
||||||
|
{
|
||||||
|
loading = false;
|
||||||
|
logger.LogInformation($"loading assignment {CourseName} {AssignmentId}");
|
||||||
|
if(planner.LocalCourse == null)
|
||||||
|
{
|
||||||
|
var courses = await yamlManager.LoadSavedCourses();
|
||||||
|
planner.LocalCourse = courses.First(c => c.Name == CourseName);
|
||||||
|
logger.LogInformation($"set course to '{planner.LocalCourse?.Name}'");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(assignmentContext.Assignment == null)
|
||||||
|
{
|
||||||
|
var assignment = planner
|
||||||
|
.LocalCourse?
|
||||||
|
.Modules
|
||||||
|
.SelectMany(m => m.Assignments)
|
||||||
|
.FirstOrDefault(a => a.Id == AssignmentId);
|
||||||
|
|
||||||
|
assignmentContext.Assignment = assignment;
|
||||||
|
logger.LogInformation($"set assignment to '{assignmentContext.Assignment?.Name}'");
|
||||||
|
}
|
||||||
|
base.OnInitialized();
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@if(loading)
|
||||||
|
{
|
||||||
|
<Spinner />
|
||||||
|
}
|
||||||
|
|
||||||
|
@if(planner.LocalCourse != null && assignmentContext.Assignment != null)
|
||||||
|
{
|
||||||
|
<AssignmentForm />
|
||||||
|
}
|
||||||
@@ -17,8 +17,8 @@
|
|||||||
private bool showNewFile { get; set; } = false;
|
private bool showNewFile { get; set; } = false;
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
planner.StateHasChanged += reload;
|
|
||||||
planner.LocalCourse = null;
|
planner.LocalCourse = null;
|
||||||
|
planner.StateHasChanged += reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void reload()
|
private void reload()
|
||||||
|
|||||||
@@ -190,7 +190,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<textarea
|
<textarea
|
||||||
id="description"
|
id="description"
|
||||||
class="form-control"
|
class="form-control h-100"
|
||||||
rows=12
|
rows=12
|
||||||
@bind="description"
|
@bind="description"
|
||||||
@oninput="handleNewDescription"
|
@oninput="handleNewDescription"
|
||||||
|
|||||||
@@ -4,18 +4,19 @@
|
|||||||
|
|
||||||
@inject CoursePlanner planner
|
@inject CoursePlanner planner
|
||||||
@inject CanvasService canvas
|
@inject CanvasService canvas
|
||||||
|
@inject NavigationManager Navigation
|
||||||
@inject AssignmentEditorContext assignmentContext
|
@inject AssignmentEditorContext assignmentContext
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
assignmentContext.StateHasChanged += reload;
|
assignmentContext.StateHasChanged += reload;
|
||||||
|
reload();
|
||||||
}
|
}
|
||||||
private void reload()
|
private void reload()
|
||||||
{
|
{
|
||||||
if (assignmentContext.Assignment != null)
|
if (assignmentContext.Assignment != null)
|
||||||
{
|
{
|
||||||
AssignmentModal?.Show();
|
|
||||||
name = assignmentContext.Assignment.Name;
|
name = assignmentContext.Assignment.Name;
|
||||||
lockAtDueDate = assignmentContext.Assignment.LockAtDueDate;
|
lockAtDueDate = assignmentContext.Assignment.LockAtDueDate;
|
||||||
}
|
}
|
||||||
@@ -32,7 +33,6 @@
|
|||||||
name = "";
|
name = "";
|
||||||
lockAtDueDate = false;
|
lockAtDueDate = false;
|
||||||
}
|
}
|
||||||
public Modal? AssignmentModal { get; set; } = null;
|
|
||||||
private string name { get; set; } = String.Empty;
|
private string name { get; set; } = String.Empty;
|
||||||
private bool lockAtDueDate { get; set; }
|
private bool lockAtDueDate { get; set; }
|
||||||
|
|
||||||
@@ -48,7 +48,6 @@
|
|||||||
|
|
||||||
assignmentContext.SaveAssignment(newAssignment);
|
assignmentContext.SaveAssignment(newAssignment);
|
||||||
}
|
}
|
||||||
AssignmentModal?.Hide();
|
|
||||||
assignmentContext.Assignment = null;
|
assignmentContext.Assignment = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +85,6 @@
|
|||||||
await canvas.Assignments.Delete(courseId, assignment);
|
await canvas.Assignments.Delete(courseId, assignment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AssignmentModal?.Hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleNameChange(ChangeEventArgs e)
|
private void handleNameChange(ChangeEventArgs e)
|
||||||
@@ -134,12 +132,8 @@
|
|||||||
.FirstOrDefault(g => g.Id == assignmentContext.Assignment?.LocalAssignmentGroupId);
|
.FirstOrDefault(g => g.Id == assignmentContext.Assignment?.LocalAssignmentGroupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
<Modal @ref="AssignmentModal" OnHide="OnHide" Size="xl">
|
|
||||||
<Title>
|
|
||||||
@assignmentContext.Assignment?.Name
|
@assignmentContext.Assignment?.Name
|
||||||
</Title>
|
|
||||||
|
|
||||||
<Body>
|
|
||||||
@if (assignmentContext.Assignment != null)
|
@if (assignmentContext.Assignment != null)
|
||||||
{
|
{
|
||||||
<div class="m-1">
|
<div class="m-1">
|
||||||
@@ -182,17 +176,14 @@
|
|||||||
<RubricEditor />
|
<RubricEditor />
|
||||||
<SubmissionTypeSelector />
|
<SubmissionTypeSelector />
|
||||||
}
|
}
|
||||||
</Body>
|
|
||||||
<Footer>
|
|
||||||
<ConfirmationModal Label="Delete" Class="btn btn-danger" OnConfirmAsync="HandleDelete" />
|
<ConfirmationModal Label="Delete" Class="btn btn-danger" OnConfirmAsync="HandleDelete" />
|
||||||
<button
|
<button
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
@onclick="@(() => {
|
@onclick="@(() => {
|
||||||
AssignmentModal?.Hide();
|
|
||||||
assignmentContext.Assignment = null;
|
assignmentContext.Assignment = null;
|
||||||
|
Navigation.NavigateTo("/course/" + planner.LocalCourse?.Name);
|
||||||
})"
|
})"
|
||||||
>
|
>
|
||||||
Done
|
Done
|
||||||
</button>
|
</button>
|
||||||
</Footer>
|
|
||||||
</Modal>
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<AssignmentForm />
|
|
||||||
<QuizForm />
|
<QuizForm />
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -17,11 +17,11 @@
|
|||||||
|
|
||||||
void handleClick(MouseEventArgs e, LocalCourse course)
|
void handleClick(MouseEventArgs e, LocalCourse course)
|
||||||
{
|
{
|
||||||
logger.LogInformation("here");
|
@* logger.LogInformation("here"); *@
|
||||||
planner.LocalCourse = course;
|
planner.LocalCourse = course;
|
||||||
Navigation.NavigateTo("/course/" + course.Name);
|
Navigation.NavigateTo("/course/" + course.Name);
|
||||||
|
Console.WriteLine("navigated to course detail");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
@inject DragContainer dragContainer
|
@inject DragContainer dragContainer
|
||||||
@inject CoursePlanner planner
|
@inject CoursePlanner planner
|
||||||
|
@inject NavigationManager Navigation
|
||||||
@inject AssignmentEditorContext assignmentContext
|
@inject AssignmentEditorContext assignmentContext
|
||||||
|
|
||||||
@inherits DroppableAssignment
|
@inherits DroppableAssignment
|
||||||
@@ -44,6 +45,11 @@
|
|||||||
.FirstOrDefault(
|
.FirstOrDefault(
|
||||||
a => a.Id == Assignment.CanvasId
|
a => a.Id == Assignment.CanvasId
|
||||||
) != null;
|
) != null;
|
||||||
|
private void OnClick()
|
||||||
|
{
|
||||||
|
assignmentContext.Assignment = Assignment;
|
||||||
|
Navigation.NavigateTo("/course/" + planner.LocalCourse.Name + "/assignment/" + Assignment.Id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,7 +57,7 @@
|
|||||||
draggable="true"
|
draggable="true"
|
||||||
@ondragstart="HandleDragStart"
|
@ondragstart="HandleDragStart"
|
||||||
@ondragend="HandleDragEnd"
|
@ondragend="HandleDragEnd"
|
||||||
@onclick="@(() => assignmentContext.Assignment = Assignment)"
|
@onclick="OnClick"
|
||||||
role="button"
|
role="button"
|
||||||
>
|
>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
|||||||
@@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
@inject DragContainer dragContainer
|
@inject DragContainer dragContainer
|
||||||
@inject CoursePlanner planner
|
@inject CoursePlanner planner
|
||||||
|
@inject NavigationManager Navigation
|
||||||
@inject AssignmentEditorContext assignmentContext
|
@inject AssignmentEditorContext assignmentContext
|
||||||
|
|
||||||
|
@inject ILogger<AssignmentInDay> logger
|
||||||
@inherits DroppableAssignment
|
@inherits DroppableAssignment
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
@@ -29,13 +31,23 @@
|
|||||||
{
|
{
|
||||||
dragContainer.DropCallback = null;
|
dragContainer.DropCallback = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnClick()
|
||||||
|
{
|
||||||
|
if(planner.LocalCourse != null)
|
||||||
|
{
|
||||||
|
assignmentContext.Assignment = Assignment;
|
||||||
|
Navigation.NavigateTo("/course/" + planner.LocalCourse.Name + "/assignment/" + Assignment.Id);
|
||||||
|
logger.LogInformation("navigating to assignment page");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
draggable="true"
|
draggable="true"
|
||||||
@ondragstart="HandleDragStart"
|
@ondragstart="HandleDragStart"
|
||||||
@ondragend="HandleDragEnd"
|
@ondragend="HandleDragEnd"
|
||||||
@onclick="@(() => assignmentContext.Assignment = Assignment)"
|
@onclick="OnClick"
|
||||||
role="button"
|
role="button"
|
||||||
>
|
>
|
||||||
@Assignment.Name
|
@Assignment.Name
|
||||||
|
|||||||
Reference in New Issue
Block a user