From 5ece8b9d36ee6c4c22c077d1726c6140d5d619dd Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Sat, 15 Jul 2023 19:51:25 -0600 Subject: [PATCH] drag and drop working on assignmets --- .../Module/Assignment/AssignmentCard.razor | 3 +- Management.Web/Shared/Semester/Day.razor | 78 +++++++++++++++++++ .../Shared/Semester/MonthDetail.razor | 5 +- 3 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 Management.Web/Shared/Semester/Day.razor diff --git a/Management.Web/Shared/Module/Assignment/AssignmentCard.razor b/Management.Web/Shared/Module/Assignment/AssignmentCard.razor index 49c4840..6bd2c9a 100644 --- a/Management.Web/Shared/Module/Assignment/AssignmentCard.razor +++ b/Management.Web/Shared/Module/Assignment/AssignmentCard.razor @@ -7,12 +7,13 @@ private async Task HandleDragStart() { dragContainer.AssignmentBeingDragged = assignment; + System.Console.WriteLine("assignment set"); } }
diff --git a/Management.Web/Shared/Semester/Day.razor b/Management.Web/Shared/Semester/Day.razor new file mode 100644 index 0000000..cf5aca8 --- /dev/null +++ b/Management.Web/Shared/Semester/Day.razor @@ -0,0 +1,78 @@ +@inject AssignmentDragContainer dragContainer + +@code +{ + [Parameter, EditorRequired] + public DateTime? date { get; set; } = + default!; + + [Parameter, EditorRequired] + public SemesterPlanner Semester { 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 = + Semester.Days.Contains(notNullDay) + && date < Semester.LastDay + && date > Semester.FirstDay; + + var totalClasses = dayInSemester ? $"bg-light {baseClasses}" : baseClasses; + + return totalClasses; + } + else + { + return baseClasses; + } + } + } + void OnDragStart() + { + Console.WriteLine("on drag start"); + } + + async Task 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; + } + + async Task OnDragEnter() { + dragging = true; + } + async Task OnDragLeave() { + dragging = false; + } +} + +
+ @(isWeekDay ? date?.Day : "") +
\ No newline at end of file diff --git a/Management.Web/Shared/Semester/MonthDetail.razor b/Management.Web/Shared/Semester/MonthDetail.razor index ac598c3..e7f673e 100644 --- a/Management.Web/Shared/Semester/MonthDetail.razor +++ b/Management.Web/Shared/Semester/MonthDetail.razor @@ -28,7 +28,7 @@ @foreach (var day in week) { - var baseClasses = "col border rounded rounded-3 pb-5 m-1"; + @* var baseClasses = "col border rounded rounded-3 pb-5 m-1"; DayOfWeek? weekDay = day?.DayOfWeek; if (weekDay != null) { @@ -40,7 +40,8 @@ else {
- } + } *@ + }
} \ No newline at end of file