From 7e0935346213aa37db5573520808ee10451e82ee Mon Sep 17 00:00:00 2001 From: Hristian Stefanov Date: Fri, 12 Nov 2021 10:22:03 +0200 Subject: [PATCH] chore(scheduler):fixed example in the timeline view and some texts --- _contentTemplates/scheduler/views.md | 494 ++++++++++++++++++ components/scheduler/views/day.md | 2 +- ...eduler-resource-grouping-timeline-view.PNG | Bin 0 -> 40671 bytes components/scheduler/views/month.md | 2 +- components/scheduler/views/multiday.md | 2 +- components/scheduler/views/timeline.md | 12 +- components/scheduler/views/week.md | 4 +- 7 files changed, 507 insertions(+), 9 deletions(-) create mode 100644 components/scheduler/views/images/scheduler-resource-grouping-timeline-view.PNG diff --git a/_contentTemplates/scheduler/views.md b/_contentTemplates/scheduler/views.md index 89fbf085db..3bd6143016 100644 --- a/_contentTemplates/scheduler/views.md +++ b/_contentTemplates/scheduler/views.md @@ -498,6 +498,500 @@ public class Resource ````Appointment.cs using System; +public class Appointment +{ + public Guid Id { get; set; } + + public string Title { get; set; } + + public DateTime Start { get; set; } + + public DateTime End { get; set; } + + public bool IsAllDay { get; set; } + + public string Description { get; set; } + + public string Room { get; set; } + + public string Manager { get; set; } + + public Appointment() + { + var rand = new Random(); + Id = Guid.NewGuid(); + Room = rand.Next(1, 3).ToString(); + Manager = rand.Next(1, 4).ToString(); + } +} +```` +#end + +#resource-grouping-vertical-code-snippet-for-examples +````SchedulerResourceGrouping.razor +@* The example showcases Resource Grouping by one resource. *@ + +@using System.Collections.Generic + +@inject AppointmentService appointmentService + +@inject ResourceService resourceService + +
+ + + + + + + + + + + + + + + +
+ +@code +{ + public DateTime SelectedDate { get; set; } = new DateTime(2019, 11, 11, 6, 0, 0); + List Data = new List(); + List SchedulerResources = new List(); + List SchedulerManagers = new List(); + List SchedulerDirectors = new List(); + + List GroupingResources = new List { "Room" }; + + protected override async Task OnInitializedAsync() + { + SchedulerDirectors = await resourceService.GetDirectorsAsync(); + SchedulerResources = await resourceService.GetResourcesAsync(); + SchedulerManagers = await resourceService.GetManagersAsync(); + Data = await appointmentService.GetAppointmentsAsync(); + } + + void UpdateAppointment(SchedulerUpdateEventArgs args) + { + Appointment item = (Appointment)args.Item; + + var matchingItem = Data.FirstOrDefault(a => a.Id == item.Id); + + if (matchingItem != null) + { + matchingItem.Title = item.Title; + matchingItem.Description = item.Description; + matchingItem.Start = item.Start; + matchingItem.End = item.End; + matchingItem.IsAllDay = item.IsAllDay; + matchingItem.Room = item.Room; + matchingItem.Manager = item.Manager; + } + } + + void AddAppointment(SchedulerCreateEventArgs args) + { + Appointment item = args.Item as Appointment; + + Data.Add(item); + } + + void DeleteAppointment(SchedulerDeleteEventArgs args) + { + Appointment item = (Appointment)args.Item; + + Data.Remove(item); + } +} +```` +````AppointmentService.cs +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +public class AppointmentService +{ + public async Task> GetAppointmentsAsync() + { + await Task.Delay(0); + + return GetAppointments(); + } + + public List GetAppointments() + { + List data = new List(); + DateTime baselineTime = GetStartTime(); + + data.Add(new Appointment + { + Title = "Vet visit", + Description = "The cat needs vaccinations and her teeth checked.", + Start = baselineTime.AddHours(2), + End = baselineTime.AddHours(2).AddMinutes(30) + }); + data.Add(new Appointment + { + Title = "Trip to Hawaii", + Description = "An unforgettable holiday!", + IsAllDay = true, + Start = baselineTime.AddDays(-10), + End = baselineTime.AddDays(-2) + }); + data.Add(new Appointment + { + Title = "Jane's birthday party", + Description = "Make sure to get her fresh flowers in addition to the gift.", + Start = baselineTime.AddDays(5).AddHours(10), + End = baselineTime.AddDays(5).AddHours(18), + }); + data.Add(new Appointment + { + Title = "One-on-one with the manager", + Start = baselineTime.AddDays(2).AddHours(3).AddMinutes(30), + End = baselineTime.AddDays(2).AddHours(3).AddMinutes(45), + }); + data.Add(new Appointment + { + Title = "Brunch with HR", + Description = "Performance evaluation of the new recruit.", + Start = baselineTime.AddDays(3).AddHours(3), + End = baselineTime.AddDays(3).AddHours(3).AddMinutes(45) + }); + data.Add(new Appointment + { + Title = "Interview with new recruit", + Description = "See if John will be a suitable match for our team.", + Start = baselineTime.AddDays(3).AddHours(1).AddMinutes(30), + End = baselineTime.AddDays(3).AddHours(2).AddMinutes(30) + }); + data.Add(new Appointment + { + Title = "Conference", + Description = "The big important work conference. Don't forget to practice your presentation.", + Start = baselineTime.AddDays(6), + End = baselineTime.AddDays(11), + IsAllDay = true + }); + data.Add(new Appointment + { + Title = "New Project Kickoff", + Description = "Everyone assemble! We will also have clients on the call from a later time zone.", + Start = baselineTime.AddDays(3).AddHours(8).AddMinutes(30), + End = baselineTime.AddDays(3).AddHours(11).AddMinutes(30) + }); + data.Add(new Appointment + { + Title = "Get photos", + Description = "Get the printed photos from last week's holiday. It's on the way from the vet to work.", + Start = baselineTime.AddHours(2).AddMinutes(15), + End = baselineTime.AddHours(2).AddMinutes(30) + }); + + var rng = new Random(); + var startDate = new DateTime(2019, 11, 10); + + data.Add(new Appointment() + { + Title = "AllDay 1.0-1.0", + Start = startDate.AddDays(5), + End = startDate.AddDays(5), + IsAllDay = true + }); + data.Add(new Appointment() + { + Title = "AllDay 1.2-1.2", + Start = startDate.AddDays(5).AddHours(2), + End = startDate.AddDays(5).AddHours(2), + IsAllDay = true + }); + data.Add(new Appointment() + { + Title = "AllDay 1.0-2.0", + Start = startDate.AddDays(5), + End = startDate.AddDays(6), + IsAllDay = true + }); + data.Add(new Appointment() + { + Title = "S AllDay", + Start = startDate, + End = startDate.AddDays(1) + }); + data.Add(new Appointment() + { + Title = "S AllDay 2", + Start = startDate, + End = startDate.AddDays(1) + }); + data.Add(new Appointment() + { + Title = "S AllDay 3", + Start = startDate.AddDays(-1), + End = startDate.AddDays(1) + }); + data.Add(new Appointment() + { + Title = "S AllDay 4", + Start = startDate.AddDays(1), + End = startDate.AddDays(2) + }); + data.Add(new Appointment() + { + Title = "S AllDay span 3", + Start = startDate.AddDays(1), + End = startDate.AddDays(4) + }); + data.Add(new Appointment() + { + Title = "At Start", + Start = startDate, + End = startDate.AddHours(1) + }); + data.Add(new Appointment() + { + Title = "Middle", + Start = startDate.AddHours(9), + End = startDate.AddHours(10) + }); + data.Add(new Appointment() + { + Title = "Before Start", + Start = startDate.AddDays(1).AddHours(5), + End = startDate.AddDays(1).AddHours(10) + }); + data.Add(new Appointment() + { + Title = "After End", + Start = startDate.AddHours(16), + End = startDate.AddHours(19) + }); + data.Add(new Appointment() + { + Title = "Two Day", + Start = startDate.AddDays(1).AddHours(22), + End = startDate.AddDays(2).AddHours(3) + }); + data.Add(new Appointment() + { + Title = "Three Day", + Start = startDate.AddDays(2).AddHours(4), + End = startDate.AddDays(5).AddHours(23) + }); + data.Add(new Appointment() + { + Title = "Not exact", + Start = startDate.AddDays(5).AddHours(8).AddMinutes(11), + End = startDate.AddDays(5).AddHours(9).AddMinutes(11) + }); + data.Add(new Appointment() + { + Title = "Not exact end", + Start = startDate.AddDays(5).AddHours(10), + End = startDate.AddDays(5).AddHours(10).AddMinutes(11) + }); + data.Add(new Appointment() + { + Title = "Not exact start", + Start = startDate.AddDays(5).AddHours(12).AddMinutes(11), + End = startDate.AddDays(5).AddHours(13) + }); + data.Add(new Appointment() + { + Title = "At End", + Start = startDate.AddDays(6).AddHours(23), + End = startDate.AddDays(6).AddHours(24) + }); + data.Add(new Appointment() + { + Title = "Same Slot 1", + Start = startDate.AddDays(2).AddHours(9), + End = startDate.AddDays(2).AddHours(12) + }); + data.Add(new Appointment() + { + Title = "Same Slot 2", + Start = startDate.AddDays(2).AddHours(10), + End = startDate.AddDays(2).AddHours(11) + }); + data.Add(new Appointment() + { + Title = "Same Slot 2", + Start = startDate.AddDays(2).AddHours(11), + End = startDate.AddDays(2).AddHours(12) + }); + data.Add(new Appointment() + { + Title = "Same Slot 2", + Start = startDate.AddDays(2).AddHours(11), + End = startDate.AddDays(2).AddHours(12) + }); + data.Add(new Appointment() + { + Title = "Same Slot 11", + Start = startDate.AddDays(3).AddHours(9), + End = startDate.AddDays(3).AddHours(12) + }); + data.Add(new Appointment() + { + Title = "Same Slot 12", + Start = startDate.AddDays(3).AddHours(9), + End = startDate.AddDays(3).AddHours(10) + }); + data.Add(new Appointment() + { + Title = "Same Slot 13", + Start = startDate.AddDays(3).AddHours(9), + End = startDate.AddDays(3).AddHours(11) + }); + data.Add(new Appointment() + { + Title = "Same Slot 14", + Start = startDate.AddDays(3).AddHours(11).AddMinutes(30), + End = startDate.AddDays(3).AddHours(13) + }); + data.Add(new Appointment() + { + Title = "Same Slot 15", + Start = startDate.AddDays(3).AddHours(11), + End = startDate.AddDays(3).AddHours(12) + }); + + + return data; + } + + public DateTime GetStartTime() + { + DateTime dt = new DateTime(2019, 12, 11); + int daysSinceMonday = dt.DayOfWeek - DayOfWeek.Monday; + + return new DateTime(dt.Year, dt.Month, dt.Day - daysSinceMonday, 8, 0, 0); + } +} +```` +````ResourceService.cs +using System.Collections.Generic; +using System.Threading.Tasks; + +public class ResourceService +{ + public async Task> GetResourcesAsync() + { + await Task.Delay(0); + + return GetResources(); + } + + public List GetResources() + { + List result = new List(); + + result.Add(new Resource() + { + Text = "None", + Value = "", + Color = "" + }); + result.Add(new Resource() + { + Text = "Small meeting room", + Value = "1", + Color = "#66ccff" + }); + result.Add(new Resource() + { + Text = "Big meeting room", + Value = "2", + Color = "#0066ff" + }); + + return result; + } + + public async Task> GetManagersAsync() + { + await Task.Delay(0); + + return GetManagers(); + } + + public List GetManagers() + { + List result = new List(); + + result.Add(new Resource() + { + Text = "Alex", + Value = "1", + Color = "#99ffcc" + }); + result.Add(new Resource() + { + Text = "Bob", + Value = "2", + Color = "#47d147" + }); + result.Add(new Resource() + { + Text = "Charlie", + Value = "3", + Color = "#336600" + }); + + return result; + } + + public async Task> GetDirectorsAsync() + { + await Task.Delay(0); + + return GetDirectors(); + } + + public List GetDirectors() + { + List result = new List(); + + result.Add(new Resource() + { + Text = "Mr. Director", + Value = "1", + Color = "" + }); + result.Add(new Resource() + { + Text = "Mrs. Director", + Value = "2", + Color = "" + }); + + return result; + } +} +```` +````Resource.cs +public class Resource +{ + public string Text { get; set; } + + public string Value { get; set; } + + public string Color { get; set; } +} +```` +````Appointment.cs +using System; + public class Appointment { public Guid Id { get; set; } diff --git a/components/scheduler/views/day.md b/components/scheduler/views/day.md index a71e9b178a..f121124784 100644 --- a/components/scheduler/views/day.md +++ b/components/scheduler/views/day.md @@ -19,7 +19,7 @@ In this article: * [Example](#example) * [View Parameters](#view-parameters) * [Slots](#slots) -* [Resource Grouping](#resource-grouping) +* [Resource Grouping](#resource-grouping-in-the-day-view) >caption Figure: Day View in the scheduler diff --git a/components/scheduler/views/images/scheduler-resource-grouping-timeline-view.PNG b/components/scheduler/views/images/scheduler-resource-grouping-timeline-view.PNG new file mode 100644 index 0000000000000000000000000000000000000000..bd88a8138104809371eb8b69d56d940fcd25f5ce GIT binary patch literal 40671 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

0kb(^sdJ0P=so2+}w%l>5M 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 QBEXlcLV`*@-*Ncg0nq94fdBvi literal 0 HcmV?d00001 diff --git a/components/scheduler/views/month.md b/components/scheduler/views/month.md index e5bf394c8e..1d494b3ddb 100644 --- a/components/scheduler/views/month.md +++ b/components/scheduler/views/month.md @@ -19,7 +19,7 @@ A day shows up to two events and if there are more - an ellipsis button provides In this article: * [Example](#example) -* [Resource Grouping](#resource-grouping) +* [Resource Grouping](#resource-grouping-in-the-month-view) >caption Figure: Month View in the scheduler diff --git a/components/scheduler/views/multiday.md b/components/scheduler/views/multiday.md index 67b2968ff8..5fc61f83d6 100644 --- a/components/scheduler/views/multiday.md +++ b/components/scheduler/views/multiday.md @@ -19,7 +19,7 @@ In this article: * [Example](#example) * [View Parameters](#view-parameters) * [Slots](#slots) -* [Resource Grouping](#resource-grouping) +* [Resource Grouping](#resource-grouping-in-the-multiday-view) >caption Figure: MultiDay View in the scheduler diff --git a/components/scheduler/views/timeline.md b/components/scheduler/views/timeline.md index b5c150fea2..4c590c79f0 100644 --- a/components/scheduler/views/timeline.md +++ b/components/scheduler/views/timeline.md @@ -17,7 +17,7 @@ In this article: * [Example](#example) * [View Parameters](#view-parameters) * [Slots](#slots) -* [Resource Grouping](#resource-grouping) +* [Resource Grouping](#resource-grouping-in-the-timeline-view) ## Example @@ -94,13 +94,17 @@ In this article: @[template](/_contentTemplates/scheduler/views.md#day-slots-explanation) -## Resource Grouping in the Day View +## Resource Grouping in the Timeline View -You can configure the Day view to display events that are [grouped by a resource]({%slug scheduler-resource-grouping%}). +You can configure the Timeline view to display events that are [grouped by a resource]({%slug scheduler-resource-grouping%}). + +>caption The result from the code snippet below. + +![](images/scheduler-resource-grouping-timeline-view.png) >caption Resource Grouping in a Timeline view. -@[template](/_contentTemplates/scheduler/views.md#resource-grouping-code-snippet-for-examples) +@[template](/_contentTemplates/scheduler/views.md#resource-grouping-vertical-code-snippet-for-examples) ## See Also diff --git a/components/scheduler/views/week.md b/components/scheduler/views/week.md index b9e5b61134..b7d781c58b 100644 --- a/components/scheduler/views/week.md +++ b/components/scheduler/views/week.md @@ -19,7 +19,7 @@ In this article: * [Example](#example) * [View Parameters](#view-parameters) * [Slots](#slots) -* [Resource Grouping](#resource-grouping) +* [Resource Grouping](#resource-grouping-in-the-week-view) >caption Figure: Week View in the scheduler @@ -103,7 +103,7 @@ In this article: ## Resource Grouping in the Week View -You can configure the MultiDay view to display events that are [grouped by a resource]({%slug scheduler-resource-grouping%}). +You can configure the Week view to display events that are [grouped by a resource]({%slug scheduler-resource-grouping%}). >caption The result from the code snippet below.