mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
78 lines
1.8 KiB
Plaintext
78 lines
1.8 KiB
Plaintext
@inject AssignmentDragContainer dragContainer
|
|
@inject CoursePlanner configurationManagement
|
|
|
|
@inject CoursePlanner planner
|
|
|
|
@code
|
|
{
|
|
[Parameter, EditorRequired]
|
|
public DateTime? date { get; set; } =
|
|
default!;
|
|
|
|
private bool isWeekDay {
|
|
get => date?.DayOfWeek != null;
|
|
}
|
|
private bool dragging {get; set;} = false;
|
|
private string calculatedClass
|
|
{
|
|
get
|
|
{
|
|
var baseClasses = "col border rounded rounded-3 p-2 pb-4 m-1 ";
|
|
if(dragging)
|
|
return baseClasses + " bg-secondary text-light ";
|
|
|
|
if (isWeekDay)
|
|
{
|
|
DayOfWeek? weekDay = date?.DayOfWeek;
|
|
DayOfWeek notNullDay = weekDay ?? default;
|
|
var dayInSemester =
|
|
planner.LocalCourse?.DaysOfWeek.Contains(notNullDay) ?? false
|
|
&& date < planner.LocalCourse.EndDate
|
|
&& date > planner.LocalCourse.StartDate;
|
|
|
|
var totalClasses = dayInSemester ? $"bg-light {baseClasses}" : baseClasses;
|
|
|
|
return totalClasses;
|
|
}
|
|
else
|
|
{
|
|
return baseClasses;
|
|
}
|
|
}
|
|
}
|
|
void OnDragStart()
|
|
{
|
|
Console.WriteLine("on drag start");
|
|
}
|
|
|
|
void OnDrop()
|
|
{
|
|
Console.WriteLine("on drop");
|
|
dragging = false;
|
|
if(dragContainer.AssignmentBeingDragged == null){
|
|
System.Console.WriteLine("no assignment in drop event");
|
|
return;
|
|
}
|
|
|
|
Console.WriteLine(JsonSerializer.Serialize(dragContainer.AssignmentBeingDragged));
|
|
dragContainer.AssignmentBeingDragged = null;
|
|
}
|
|
|
|
void OnDragEnter() {
|
|
dragging = true;
|
|
}
|
|
void OnDragLeave() {
|
|
dragging = false;
|
|
}
|
|
}
|
|
|
|
<div
|
|
class="@calculatedClass"
|
|
@ondrop="@(() => OnDrop())"
|
|
@ondragenter="OnDragEnter"
|
|
@ondragleave="OnDragLeave"
|
|
ondragover="event.preventDefault();"
|
|
ondragstart="event.dataTransfer.setData('', event.target.id);"
|
|
>
|
|
@(isWeekDay ? date?.Day : "")
|
|
</div> |