mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
updated how assignment form persists data
This commit is contained in:
@@ -31,7 +31,10 @@
|
|||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
Description = Assignment.Description;
|
if (Description == "")
|
||||||
|
{
|
||||||
|
Description = Assignment.Description;
|
||||||
|
}
|
||||||
TemplateId = Assignment.TemplateId;
|
TemplateId = Assignment.TemplateId;
|
||||||
UseTemplate = Assignment.TemplateId != null && Assignment.TemplateId != "";
|
UseTemplate = Assignment.TemplateId != null && Assignment.TemplateId != "";
|
||||||
}
|
}
|
||||||
@@ -87,6 +90,7 @@
|
|||||||
role="switch"
|
role="switch"
|
||||||
id="useTemplateForDescription"
|
id="useTemplateForDescription"
|
||||||
@bind="UseTemplate"
|
@bind="UseTemplate"
|
||||||
|
/>
|
||||||
<label class="form-check-label" for="useTemplateForDescription">
|
<label class="form-check-label" for="useTemplateForDescription">
|
||||||
use template for description
|
use template for description
|
||||||
</label>
|
</label>
|
||||||
@@ -172,7 +176,8 @@ else
|
|||||||
<textarea
|
<textarea
|
||||||
id="description"
|
id="description"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
rows=12
|
rows=12
|
||||||
|
value="@Description"
|
||||||
@oninput="@((e) =>
|
@oninput="@((e) =>
|
||||||
{
|
{
|
||||||
var newDescription = e.Value?.ToString();
|
var newDescription = e.Value?.ToString();
|
||||||
|
|||||||
@@ -29,8 +29,8 @@
|
|||||||
[EditorRequired]
|
[EditorRequired]
|
||||||
public bool Show { get; set; }
|
public bool Show { get; set; }
|
||||||
|
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public Action OnHide { get; set; } = () => { };
|
public Action OnHide { get; set; } = () => { };
|
||||||
public Modal? AssignmentModal { get; set; } = null;
|
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; }
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
if(Show)
|
if (Show)
|
||||||
{
|
{
|
||||||
AssignmentModal?.Show();
|
AssignmentModal?.Show();
|
||||||
}
|
}
|
||||||
@@ -52,45 +52,45 @@
|
|||||||
private void submitHandler()
|
private void submitHandler()
|
||||||
{
|
{
|
||||||
var totalRubricPoints = rubric
|
var totalRubricPoints = rubric
|
||||||
.Where(r => !r.Label.Contains(RubricItem.extraCredit))
|
.Where(r => !r.Label.Contains(RubricItem.extraCredit))
|
||||||
.Select(s => s.Points)
|
.Select(s => s.Points)
|
||||||
.Sum();
|
.Sum();
|
||||||
|
|
||||||
var newAssignment = Assignment with
|
var newAssignment = Assignment with
|
||||||
{
|
|
||||||
Name=name,
|
|
||||||
LockAtDueDate=lockAtDueDate,
|
|
||||||
Rubric=rubric,
|
|
||||||
PointsPossible=totalRubricPoints,
|
|
||||||
SubmissionTypes=submissionTypes,
|
|
||||||
};
|
|
||||||
|
|
||||||
if(planner.LocalCourse != null)
|
|
||||||
{
|
|
||||||
var currentModule = planner
|
|
||||||
.LocalCourse
|
|
||||||
.Modules
|
|
||||||
.First(m =>
|
|
||||||
m.Assignments
|
|
||||||
.Select(a => a.Id)
|
|
||||||
.Contains(Assignment.Id)
|
|
||||||
) ?? throw new Exception("could not find current module in assignment form");
|
|
||||||
var updatedModules = planner.LocalCourse.Modules.Select(m =>
|
|
||||||
m.Name == currentModule.Name
|
|
||||||
? currentModule with
|
|
||||||
{
|
|
||||||
Assignments=currentModule.Assignments.Select(a =>
|
|
||||||
a.Id == newAssignment.Id
|
|
||||||
? newAssignment
|
|
||||||
: a
|
|
||||||
).ToArray()
|
|
||||||
}
|
|
||||||
: m
|
|
||||||
).ToArray();
|
|
||||||
planner.LocalCourse = planner.LocalCourse with
|
|
||||||
{
|
{
|
||||||
Modules=updatedModules
|
Name = name,
|
||||||
|
LockAtDueDate = lockAtDueDate,
|
||||||
|
Rubric = rubric,
|
||||||
|
PointsPossible = totalRubricPoints,
|
||||||
|
SubmissionTypes = submissionTypes,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (planner.LocalCourse != null)
|
||||||
|
{
|
||||||
|
var currentModule = planner
|
||||||
|
.LocalCourse
|
||||||
|
.Modules
|
||||||
|
.First(m =>
|
||||||
|
m.Assignments
|
||||||
|
.Select(a => a.Id)
|
||||||
|
.Contains(Assignment.Id)
|
||||||
|
) ?? throw new Exception("could not find current module in assignment form");
|
||||||
|
var updatedModules = planner.LocalCourse.Modules.Select(m =>
|
||||||
|
m.Name == currentModule.Name
|
||||||
|
? currentModule with
|
||||||
|
{
|
||||||
|
Assignments = currentModule.Assignments.Select(a =>
|
||||||
|
a.Id == newAssignment.Id
|
||||||
|
? newAssignment
|
||||||
|
: a
|
||||||
|
).ToArray()
|
||||||
|
}
|
||||||
|
: m
|
||||||
|
).ToArray();
|
||||||
|
planner.LocalCourse = planner.LocalCourse with
|
||||||
|
{
|
||||||
|
Modules = updatedModules
|
||||||
|
};
|
||||||
}
|
}
|
||||||
AssignmentModal?.Hide();
|
AssignmentModal?.Hide();
|
||||||
}
|
}
|
||||||
@@ -101,38 +101,38 @@
|
|||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
private void SetTypes(IEnumerable<string> newTypes)
|
private void SetTypes(IEnumerable<string> newTypes)
|
||||||
{
|
{
|
||||||
submissionTypes = newTypes;
|
submissionTypes = newTypes;
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task HandleDelete()
|
private async Task HandleDelete()
|
||||||
{
|
{
|
||||||
if(planner.LocalCourse != null)
|
if (planner.LocalCourse != null)
|
||||||
{
|
{
|
||||||
var assignment = Assignment;
|
var assignment = Assignment;
|
||||||
var currentModule = planner
|
var currentModule = planner
|
||||||
.LocalCourse
|
.LocalCourse
|
||||||
.Modules
|
.Modules
|
||||||
.First(m =>
|
.First(m =>
|
||||||
m.Assignments
|
m.Assignments
|
||||||
.Select(a => a.Id)
|
.Select(a => a.Id)
|
||||||
.Contains(Assignment.Id)
|
.Contains(Assignment.Id)
|
||||||
) ?? throw new Exception("handling assignment delete, could not find module");
|
) ?? throw new Exception("handling assignment delete, could not find module");
|
||||||
var newModules = planner.LocalCourse.Modules.Select(m =>
|
var newModules = planner.LocalCourse.Modules.Select(m =>
|
||||||
m.Name == currentModule.Name
|
m.Name == currentModule.Name
|
||||||
? m with
|
? m with
|
||||||
{
|
{
|
||||||
Assignments = m.Assignments.Where(a => a.Id != assignment.Id).ToArray()
|
Assignments = m.Assignments.Where(a => a.Id != assignment.Id).ToArray()
|
||||||
}
|
}
|
||||||
: m
|
: m
|
||||||
).ToArray();
|
).ToArray();
|
||||||
|
|
||||||
planner.LocalCourse = planner.LocalCourse with
|
planner.LocalCourse = planner.LocalCourse with
|
||||||
{
|
{
|
||||||
Modules = newModules
|
Modules = newModules
|
||||||
};
|
};
|
||||||
if(assignment.CanvasId != null && planner.LocalCourse.CanvasId != null)
|
if (assignment.CanvasId != null && planner.LocalCourse.CanvasId != null)
|
||||||
{
|
{
|
||||||
ulong courseId = planner.LocalCourse.CanvasId ?? throw new Exception("cannot delete if no course id");
|
ulong courseId = planner.LocalCourse.CanvasId ?? throw new Exception("cannot delete if no course id");
|
||||||
await canvas.Assignments.Delete(courseId, assignment);
|
await canvas.Assignments.Delete(courseId, assignment);
|
||||||
@@ -145,52 +145,31 @@
|
|||||||
<Title>
|
<Title>
|
||||||
@Assignment.Name
|
@Assignment.Name
|
||||||
</Title>
|
</Title>
|
||||||
|
|
||||||
<Body>
|
<Body>
|
||||||
<form @onsubmit:preventDefault="true" @onsubmit="submitHandler">
|
<form @onsubmit:preventDefault="true" @onsubmit="submitHandler">
|
||||||
<div class="m-1">
|
<div class="m-1">
|
||||||
<label
|
<label class="form-label">
|
||||||
class="form-label"
|
|
||||||
>
|
|
||||||
Name
|
Name
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input class="form-control" @bind="name" />
|
||||||
class="form-control"
|
|
||||||
@bind="name"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="m-1">
|
<div class="m-1">
|
||||||
<AssignmentDescriptionEditor
|
<AssignmentDescriptionEditor Assignment="Assignment" />
|
||||||
Assignment="Assignment"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-check m-1">
|
<div class="form-check m-1">
|
||||||
<input
|
<input class="form-check-input" id="lockAtDueDate" type="checkbox" />
|
||||||
class="form-check-input"
|
<label class="form-check-label" for="lockAtDueDate" @bind="lockAtDueDate">
|
||||||
id="lockAtDueDate"
|
|
||||||
type="checkbox"
|
|
||||||
/>
|
|
||||||
<label
|
|
||||||
class="form-check-label"
|
|
||||||
for="lockAtDueDate"
|
|
||||||
@bind="lockAtDueDate"
|
|
||||||
>
|
|
||||||
Lock At Due Date
|
Lock At Due Date
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<RubricEditor Rubric="rubric" SetRubric="updateRubric" />
|
<RubricEditor Rubric="rubric" SetRubric="updateRubric" />
|
||||||
<SubmissionTypeSelector
|
<SubmissionTypeSelector Types="submissionTypes" SetTypes="SetTypes" />
|
||||||
Types="submissionTypes"
|
|
||||||
SetTypes="SetTypes"
|
|
||||||
/>
|
|
||||||
</form>
|
</form>
|
||||||
</Body>
|
</Body>
|
||||||
<Footer>
|
<Footer>
|
||||||
<ConfirmationModal
|
<ConfirmationModal Label="Delete" Class="btn btn-danger" OnConfirmAsync="HandleDelete" />
|
||||||
Label="Delete"
|
|
||||||
Class="btn btn-danger"
|
|
||||||
OnConfirmAsync="HandleDelete"
|
|
||||||
/>
|
|
||||||
<button class="btn btn-primary" @onclick="@(() => AssignmentModal?.Hide())">
|
<button class="btn btn-primary" @onclick="@(() => AssignmentModal?.Hide())">
|
||||||
Save
|
Save
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -1,38 +1,38 @@
|
|||||||
@code {
|
@code {
|
||||||
[Parameter, EditorRequired]
|
[Parameter, EditorRequired]
|
||||||
public RenderFragment? Title { get; set; }
|
public RenderFragment? Title { get; set; }
|
||||||
|
|
||||||
[Parameter, EditorRequired]
|
[Parameter, EditorRequired]
|
||||||
public RenderFragment? Body { get; set; }
|
public RenderFragment? Body { get; set; }
|
||||||
|
|
||||||
[Parameter, EditorRequired]
|
[Parameter, EditorRequired]
|
||||||
public RenderFragment? Footer { get; set; }
|
public RenderFragment? Footer { get; set; }
|
||||||
|
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public Action OnShow { get; set; } = () => { };
|
public Action OnShow { get; set; } = () => { };
|
||||||
|
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public Action OnHide { get; set; } = () => { };
|
public Action OnHide { get; set; } = () => { };
|
||||||
|
|
||||||
private string modalClass = "hide-modal";
|
private string modalClass = "hide-modal";
|
||||||
private bool showBackdrop = false;
|
private bool showBackdrop = false;
|
||||||
public void Show()
|
public void Show()
|
||||||
{
|
{
|
||||||
modalClass = "show-modal";
|
modalClass = "show-modal";
|
||||||
showBackdrop = true;
|
showBackdrop = true;
|
||||||
OnShow();
|
OnShow();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Hide()
|
public void Hide()
|
||||||
{
|
{
|
||||||
modalClass = "hide-modal";
|
modalClass = "hide-modal";
|
||||||
showBackdrop = false;
|
showBackdrop = false;
|
||||||
OnHide();
|
OnHide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="modal @modalClass">
|
<div class="modal @modalClass" @onclick="Hide">
|
||||||
<div class="modal-dialog modal-xl" role="document">
|
<div class="modal-dialog modal-xl" role="document" @onclick:stopPropagation="true">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title text-center w-100">@Title</h4>
|
<h4 class="modal-title text-center w-100">@Title</h4>
|
||||||
@@ -46,5 +46,7 @@
|
|||||||
|
|
||||||
@if (showBackdrop)
|
@if (showBackdrop)
|
||||||
{
|
{
|
||||||
<div class="modal-backdrop fade show"></div>
|
<div
|
||||||
}
|
class="modal-backdrop fade show"
|
||||||
|
></div>
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user