mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
extracted a lot of canvas interfaces
This commit is contained in:
@@ -9,10 +9,10 @@
|
||||
<PackageReference Include="dotenv.net" Version="3.1.2" />
|
||||
<PackageReference Include="Markdig" Version="0.31.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.3" />
|
||||
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.7.0" />
|
||||
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.7.0" />
|
||||
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.7.0" />
|
||||
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.7.0" />
|
||||
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.8.1" />
|
||||
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />
|
||||
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
|
||||
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.8.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@using CanvasModel.Assignments
|
||||
|
||||
@inject CoursePlanner planner
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject NavigationManager Navigation
|
||||
@inject AssignmentEditorContext assignmentContext
|
||||
|
||||
@@ -144,15 +144,15 @@
|
||||
|
||||
private async Task deleteFromCanvas()
|
||||
{
|
||||
if (assignmentInCanvas == null
|
||||
|| planner?.LocalCourse?.Settings.CanvasId == null
|
||||
if (assignmentInCanvas == null
|
||||
|| planner?.LocalCourse?.Settings.CanvasId == null
|
||||
|| assignmentContext.Assignment == null
|
||||
)
|
||||
return;
|
||||
|
||||
|
||||
deletingAssignmentFromCanvas = true;
|
||||
await canvas.Assignments.Delete(
|
||||
(ulong)planner.LocalCourse.Settings.CanvasId,
|
||||
(ulong)planner.LocalCourse.Settings.CanvasId,
|
||||
assignmentInCanvas.Id,
|
||||
assignmentContext.Assignment.Name
|
||||
);
|
||||
@@ -186,8 +186,8 @@
|
||||
Toggle Help
|
||||
</button>
|
||||
<ConfirmationModal Label="Delete" Class="btn btn-danger" OnConfirmAsync="HandleDelete" />
|
||||
<button
|
||||
class="btn btn-outline-secondary mx-3"
|
||||
<button
|
||||
class="btn btn-outline-secondary mx-3"
|
||||
disabled="@(addingAssignmentToCanvas || deletingAssignmentFromCanvas)"
|
||||
@onclick="addToCanvas"
|
||||
>
|
||||
@@ -195,26 +195,26 @@
|
||||
</button>
|
||||
@if (assignmentInCanvas != null)
|
||||
{
|
||||
<a
|
||||
class="btn btn-outline-secondary me-1"
|
||||
href="@canvasAssignmentUrl"
|
||||
<a
|
||||
class="btn btn-outline-secondary me-1"
|
||||
href="@canvasAssignmentUrl"
|
||||
target="_blank"
|
||||
disabled="@(addingAssignmentToCanvas || deletingAssignmentFromCanvas)"
|
||||
>
|
||||
View in Canvas
|
||||
</a>
|
||||
<button
|
||||
class="btn btn-outline-secondary mx-3"
|
||||
<button
|
||||
class="btn btn-outline-secondary mx-3"
|
||||
disabled="@(addingAssignmentToCanvas || deletingAssignmentFromCanvas)"
|
||||
@onclick="updateInCanvas"
|
||||
>
|
||||
Update In Canvas
|
||||
</button>
|
||||
<ConfirmationModal
|
||||
<ConfirmationModal
|
||||
Disabled="@(addingAssignmentToCanvas || deletingAssignmentFromCanvas)"
|
||||
Label="Delete from Canvas"
|
||||
Class="btn btn-outline-danger mx-3"
|
||||
OnConfirmAsync="deleteFromCanvas"
|
||||
Label="Delete from Canvas"
|
||||
Class="btn btn-outline-danger mx-3"
|
||||
OnConfirmAsync="deleteFromCanvas"
|
||||
/>
|
||||
}
|
||||
<button class="btn btn-primary mx-2" @onclick="@(() => {
|
||||
@@ -225,5 +225,5 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
@using Management.Web.Shared.Components
|
||||
|
||||
@inject FileStorageManager fileStorageManager
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
@inject AssignmentEditorContext assignmentContext
|
||||
@inject ILogger<AssignmentFormPage> logger
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@page "/test"
|
||||
@rendermode InteractiveServer
|
||||
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
@inject FileStorageManager fileStorageManager
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@using Management.Web.Shared.Components
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
private Action<ChangeEventArgs> saveGroupName(string groupId)
|
||||
{
|
||||
return (e) =>
|
||||
return (e) =>
|
||||
{
|
||||
if(planner.LocalCourse != null)
|
||||
{
|
||||
@@ -54,17 +54,17 @@
|
||||
);
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
{
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
{
|
||||
AssignmentGroups = newGroups
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
private Action<ChangeEventArgs> saveGroupWeight(string groupId)
|
||||
{
|
||||
return (e) =>
|
||||
return (e) =>
|
||||
{
|
||||
if(planner.LocalCourse != null)
|
||||
{
|
||||
@@ -76,13 +76,13 @@
|
||||
);
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
{
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
{
|
||||
AssignmentGroups = newGroups
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
private async Task SyncAssignmentGroupsWithCanvas()
|
||||
@@ -105,13 +105,13 @@
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<label class="form-label">Group Name</label>
|
||||
<input
|
||||
<input
|
||||
class="form-control"
|
||||
@bind="groupName" @oninput="nameInputCallback">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<label class="form-label">Weight</label>
|
||||
<input
|
||||
<input
|
||||
class="form-control"
|
||||
@bind="weight"
|
||||
@oninput="weightInputCallback"
|
||||
@@ -120,7 +120,7 @@
|
||||
</div>
|
||||
}
|
||||
<div class="d-flex justify-content-end">
|
||||
<button
|
||||
<button
|
||||
class="btn btn-outline-primary"
|
||||
@onclick="AddAssignmentGroup"
|
||||
>
|
||||
@@ -128,7 +128,7 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<button
|
||||
<button
|
||||
class="btn btn-outline-secondary"
|
||||
@onclick="SyncAssignmentGroupsWithCanvas"
|
||||
disabled="@syncingAssignmentGroups"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
|
||||
@inject FileStorageManager fileStorageManager
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
@inject NavigationManager navigtion
|
||||
@inject IConfiguration config
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@using Management.Web.Pages.Course.Module
|
||||
@using Management.Web.Pages.Course.CourseCalendar
|
||||
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
|
||||
@code
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@using Management.Web.Shared.Components
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
|
||||
@code
|
||||
@@ -19,23 +19,23 @@
|
||||
}
|
||||
private IEnumerable<EnrollmentTermModel>? terms { get; set; } = null;
|
||||
private ulong? _selectedTermId {get; set;}
|
||||
private ulong? selectedTermId {
|
||||
get => _selectedTermId;
|
||||
private ulong? selectedTermId {
|
||||
get => _selectedTermId;
|
||||
set
|
||||
{
|
||||
_selectedTermId = value;
|
||||
if(selectedTerm != null && planner.LocalCourse != null)
|
||||
{
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
{
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
{
|
||||
StartDate=selectedTerm.StartAt ?? new DateTime(),
|
||||
EndDate=selectedTerm.EndAt ?? new DateTime(),
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private EnrollmentTermModel? selectedTerm
|
||||
{
|
||||
@@ -59,8 +59,8 @@
|
||||
|
||||
}
|
||||
|
||||
<button
|
||||
class="btn btn-outline-secondary"
|
||||
<button
|
||||
class="btn btn-outline-secondary"
|
||||
@onclick="@(() => modal.Show())"
|
||||
>
|
||||
Edit Course Settings
|
||||
@@ -71,7 +71,7 @@
|
||||
<h1>Course Settings</h1>
|
||||
</Title>
|
||||
<Body>
|
||||
|
||||
|
||||
<h5 class="text-center">Select Days Of Week</h5>
|
||||
<div class="row m-3">
|
||||
@foreach (DayOfWeek day in (DayOfWeek[])Enum.GetValues(typeof(DayOfWeek)))
|
||||
@@ -80,16 +80,16 @@
|
||||
<button
|
||||
class="@(
|
||||
planner.LocalCourse?.Settings.DaysOfWeek.Contains(day) ?? false
|
||||
? "btn btn-secondary"
|
||||
? "btn btn-secondary"
|
||||
: "btn btn-outline-secondary"
|
||||
)"
|
||||
@onclick="() =>
|
||||
)"
|
||||
@onclick="() =>
|
||||
{
|
||||
if(planner.LocalCourse?.Settings.DaysOfWeek.Contains(day) ?? false)
|
||||
{
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
{
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
{
|
||||
DaysOfWeek = planner.LocalCourse.Settings.DaysOfWeek.Where((d) => d != day)
|
||||
}
|
||||
@@ -99,16 +99,16 @@
|
||||
{
|
||||
if (planner.LocalCourse != null)
|
||||
{
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
{
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
Settings = planner.LocalCourse.Settings with
|
||||
{
|
||||
DaysOfWeek = planner.LocalCourse.Settings.DaysOfWeek.Append(day)
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}"
|
||||
}"
|
||||
>
|
||||
@day
|
||||
</button>
|
||||
@@ -138,15 +138,15 @@
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
|
||||
@if(planner.LocalCourse != null)
|
||||
{
|
||||
<div class="row justify-content-center m-3 text-center">
|
||||
<div class="col-auto">
|
||||
<div>Default Assignment Due Time</div>
|
||||
<TimePicker Time="planner.LocalCourse.Settings.DefaultDueTime" UpdateTime="@((newTime) =>
|
||||
planner.LocalCourse =
|
||||
planner.LocalCourse with
|
||||
<TimePicker Time="planner.LocalCourse.Settings.DefaultDueTime" UpdateTime="@((newTime) =>
|
||||
planner.LocalCourse =
|
||||
planner.LocalCourse with
|
||||
{ Settings = planner.LocalCourse.Settings with { DefaultDueTime=newTime } }
|
||||
)"
|
||||
/>
|
||||
@@ -156,11 +156,11 @@
|
||||
<AssignmentGroups />
|
||||
</Body>
|
||||
<Footer>
|
||||
<button
|
||||
class="btn btn-outline-secondary"
|
||||
<button
|
||||
class="btn btn-outline-secondary"
|
||||
@onclick="@(() => modal.Hide())"
|
||||
>
|
||||
Done Editing Course Settings
|
||||
</button>
|
||||
</Footer>
|
||||
</Modal>
|
||||
</Modal>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@inject CoursePlanner planner
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
|
||||
@code {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
Name=Name
|
||||
};
|
||||
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
planner.LocalCourse = planner.LocalCourse with
|
||||
{
|
||||
Modules = planner.LocalCourse.Modules.Append(newModule)
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@using CanvasModel.Pages
|
||||
|
||||
@inject CoursePlanner planner
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject NavigationManager Navigation
|
||||
@inject PageEditorContext pageContext
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
@using Management.Web.Shared.Components
|
||||
|
||||
@inject FileStorageManager fileStorageManager
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
@inject PageEditorContext pageContext
|
||||
@inject ILogger<CoursePageFormPage> logger
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
@using Management.Web.Pages.Course.Module.ModuleItems
|
||||
@using Management.Web.Shared.Components
|
||||
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
@using Management.Web.Pages.Course.Module.ModuleItems
|
||||
|
||||
@inject FileStorageManager fileStorageManager
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject CoursePlanner planner
|
||||
@inject QuizEditorContext quizContext
|
||||
@inject MyLogger<QuizFormPage> logger
|
||||
|
||||
@@ -73,12 +73,12 @@ builder.Services.AddScoped(typeof(MyLogger<>));
|
||||
|
||||
builder.Services.AddScoped<IWebRequestor, WebRequestor>();
|
||||
builder.Services.AddScoped<CanvasServiceUtils>();
|
||||
builder.Services.AddScoped<CanvasAssignmentService>();
|
||||
builder.Services.AddScoped<CanvasCoursePageService>();
|
||||
builder.Services.AddScoped<CanvasAssignmentGroupService>();
|
||||
builder.Services.AddScoped<CanvasQuizService>();
|
||||
builder.Services.AddScoped<CanvasModuleService>();
|
||||
builder.Services.AddScoped<CanvasService, CanvasService>();
|
||||
builder.Services.AddScoped<ICanvasAssignmentService, CanvasAssignmentService>();
|
||||
builder.Services.AddScoped<ICanvasCoursePageService, CanvasCoursePageService>();
|
||||
builder.Services.AddScoped<ICanvasAssignmentGroupService, CanvasAssignmentGroupService>();
|
||||
builder.Services.AddScoped<ICanvasQuizService, CanvasQuizService>();
|
||||
builder.Services.AddScoped<ICanvasModuleService, CanvasModuleService>();
|
||||
builder.Services.AddScoped<ICanvasService, CanvasService>();
|
||||
|
||||
builder.Services.AddScoped<MarkdownCourseSaver>();
|
||||
builder.Services.AddScoped<CourseMarkdownLoader>();
|
||||
@@ -122,7 +122,6 @@ app.UseRouting();
|
||||
app.UseResponseCompression();
|
||||
|
||||
app.MapBlazorHub();
|
||||
app.MapHub<SignalRHub>("/SignalRHub");
|
||||
app.MapFallbackToPage("/_Host");
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
|
||||
@using LocalModels
|
||||
|
||||
@inject CanvasService canvas
|
||||
@inject ICanvasService canvas
|
||||
@inject FileStorageManager fileStorageManager
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user