radzenhq / radzen-blazor

Radzen Blazor is a set of 90+ free native Blazor UI components packed with DataGrid, Scheduler, Charts and robust theming including Material design and FluentUI.
https://www.radzen.com
MIT License
3.5k stars 784 forks source link

Scheduler Month View not showing appointments #562

Open mattheys opened 2 years ago

mattheys commented 2 years ago

Describe the bug When the first day of the week in month view has too many items and shows the +x more, if an appointment that spans several days is in that list it doesn't show for the rest of the week.

To Reproduce I've converted data we are getting back from SQL into a sanitized List, the one marked "Wrong" starts on the 1st of August and goes on to the 12th of August, however in the month view it is showing in the '+ x more' on 1st, 2nd and 3rd of August, then nothing for the rest of that week, then it shows correctly week comencing 8th of August.

 appointments = new List<AppointmentData>
        {
           new AppointmentData { Start = DateTime.Parse("2022-07-15 00:00:00"), End = DateTime.Parse("2022-07-29 23:59:00"), Text = "C" },
        new AppointmentData { Start = DateTime.Parse("2022-07-19 00:00:00"), End = DateTime.Parse("2022-07-19 23:59:00"), Text = "D" },
        new AppointmentData { Start = DateTime.Parse("2022-07-29 00:00:00"), End = DateTime.Parse("2022-08-01 23:59:00"), Text = "D" },
        new AppointmentData { Start = DateTime.Parse("2022-07-19 00:00:00"), End = DateTime.Parse("2022-07-22 23:59:00"), Text = "E" },
        new AppointmentData { Start = DateTime.Parse("2022-07-04 00:00:00"), End = DateTime.Parse("2022-07-05 23:59:00"), Text = "F" },
        new AppointmentData { Start = DateTime.Parse("2022-07-12 00:00:00"), End = DateTime.Parse("2022-07-13 23:59:00"), Text = "G" },
        new AppointmentData { Start = DateTime.Parse("2022-07-05 00:00:00"), End = DateTime.Parse("2022-07-06 23:59:00"), Text = "H" },
        new AppointmentData { Start = DateTime.Parse("2022-07-26 00:00:00"), End = DateTime.Parse("2022-07-26 23:59:00"), Text = "H" },
        new AppointmentData { Start = DateTime.Parse("2022-07-25 00:00:00"), End = DateTime.Parse("2022-08-05 23:59:00"), Text = "I" },
        new AppointmentData { Start = DateTime.Parse("2022-07-18 00:00:00"), End = DateTime.Parse("2022-07-18 23:59:00"), Text = "J" },
        new AppointmentData { Start = DateTime.Parse("2022-07-28 00:00:00"), End = DateTime.Parse("2022-07-28 23:59:00"), Text = "J" },
        new AppointmentData { Start = DateTime.Parse("2022-07-14 00:00:00"), End = DateTime.Parse("2022-07-14 23:59:00"), Text = "K" },
        new AppointmentData { Start = DateTime.Parse("2022-07-25 00:00:00"), End = DateTime.Parse("2022-07-29 23:59:00"), Text = "L" },
        new AppointmentData { Start = DateTime.Parse("2022-07-11 00:00:00"), End = DateTime.Parse("2022-07-29 23:59:00"), Text = "M" },
        new AppointmentData { Start = DateTime.Parse("2022-07-22 00:00:00"), End = DateTime.Parse("2022-07-22 23:59:00"), Text = "M" },
        new AppointmentData { Start = DateTime.Parse("2022-07-07 00:00:00"), End = DateTime.Parse("2022-07-07 23:59:00"), Text = "N" },
        new AppointmentData { Start = DateTime.Parse("2022-07-28 00:00:00"), End = DateTime.Parse("2022-08-03 23:59:00"), Text = "N" },
        new AppointmentData { Start = DateTime.Parse("2022-07-12 00:00:00"), End = DateTime.Parse("2022-07-12 23:59:00"), Text = "A" },
        new AppointmentData { Start = DateTime.Parse("2022-07-25 00:00:00"), End = DateTime.Parse("2022-07-29 23:59:00"), Text = "A" },
        new AppointmentData { Start = DateTime.Parse("2022-07-04 00:00:00"), End = DateTime.Parse("2022-07-04 23:59:00"), Text = "O" },
        new AppointmentData { Start = DateTime.Parse("2022-07-18 00:00:00"), End = DateTime.Parse("2022-07-18 23:59:00"), Text = "O" },
        new AppointmentData { Start = DateTime.Parse("2022-07-27 00:00:00"), End = DateTime.Parse("2022-07-27 23:59:00"), Text = "O" },
        new AppointmentData { Start = DateTime.Parse("2022-07-12 00:00:00"), End = DateTime.Parse("2022-07-12 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-07-25 00:00:00"), End = DateTime.Parse("2022-07-25 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-07-01 00:00:00"), End = DateTime.Parse("2022-07-01 23:59:00"), Text = "P" },
        new AppointmentData { Start = DateTime.Parse("2022-07-04 00:00:00"), End = DateTime.Parse("2022-07-04 23:59:00"), Text = "P" },
        new AppointmentData { Start = DateTime.Parse("2022-07-15 00:00:00"), End = DateTime.Parse("2022-07-15 23:59:00"), Text = "P" },
        new AppointmentData { Start = DateTime.Parse("2022-07-22 00:00:00"), End = DateTime.Parse("2022-07-22 23:59:00"), Text = "P" },
        new AppointmentData { Start = DateTime.Parse("2022-07-13 00:00:00"), End = DateTime.Parse("2022-07-14 23:59:00"), Text = "Q" },
        new AppointmentData { Start = DateTime.Parse("2022-08-10 00:00:00"), End = DateTime.Parse("2022-08-12 23:59:00"), Text = "D" },
        new AppointmentData { Start = DateTime.Parse("2022-08-24 00:00:00"), End = DateTime.Parse("2022-08-26 23:59:00"), Text = "D" },
        new AppointmentData { Start = DateTime.Parse("2022-08-26 00:00:00"), End = DateTime.Parse("2022-08-26 23:59:00"), Text = "E" },
        new AppointmentData { Start = DateTime.Parse("2022-08-22 00:00:00"), End = DateTime.Parse("2022-08-22 23:59:00"), Text = "R" },
        new AppointmentData { Start = DateTime.Parse("2022-08-01 00:00:00"), End = DateTime.Parse("2022-08-02 23:59:00"), Text = "M" },
        new AppointmentData { Start = DateTime.Parse("2022-08-30 00:00:00"), End = DateTime.Parse("2022-09-02 23:59:00"), Text = "M" },
        new AppointmentData { Start = DateTime.Parse("2022-08-15 00:00:00"), End = DateTime.Parse("2022-08-19 23:59:00"), Text = "N" },
        new AppointmentData { Start = DateTime.Parse("2022-08-01 00:00:00"), End = DateTime.Parse("2022-08-12 23:59:00"), Text = "WRONG" },
        new AppointmentData { Start = DateTime.Parse("2022-08-22 00:00:00"), End = DateTime.Parse("2022-08-26 23:59:00"), Text = "A" },
        new AppointmentData { Start = DateTime.Parse("2022-08-30 00:00:00"), End = DateTime.Parse("2022-09-02 23:59:00"), Text = "A" },
        new AppointmentData { Start = DateTime.Parse("2022-08-08 00:00:00"), End = DateTime.Parse("2022-08-08 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-08-26 00:00:00"), End = DateTime.Parse("2022-08-30 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-08-30 00:00:00"), End = DateTime.Parse("2022-09-02 23:59:00"), Text = "S" },
        new AppointmentData { Start = DateTime.Parse("2022-08-01 00:00:00"), End = DateTime.Parse("2022-08-01 23:59:00"), Text = "P" },
        new AppointmentData { Start = DateTime.Parse("2022-08-30 00:00:00"), End = DateTime.Parse("2022-09-09 23:59:00"), Text = "P" },
        new AppointmentData { Start = DateTime.Parse("2022-08-08 00:00:00"), End = DateTime.Parse("2022-08-08 23:59:00"), Text = "Q" },
        new AppointmentData { Start = DateTime.Parse("2022-08-22 00:00:00"), End = DateTime.Parse("2022-08-25 23:59:00"), Text = "Q" },
        new AppointmentData { Start = DateTime.Parse("2022-08-19 00:00:00"), End = DateTime.Parse("2022-08-22 23:59:00"), Text = "T" },
        new AppointmentData { Start = DateTime.Parse("2022-08-12 00:00:00"), End = DateTime.Parse("2022-08-16 23:59:00"), Text = "U" },
        new AppointmentData { Start = DateTime.Parse("2022-08-30 00:00:00"), End = DateTime.Parse("2022-09-02 23:59:00"), Text = "U" },
        new AppointmentData { Start = DateTime.Parse("2022-09-02 00:00:00"), End = DateTime.Parse("2022-09-02 23:59:00"), Text = "D" },
        new AppointmentData { Start = DateTime.Parse("2022-09-15 00:00:00"), End = DateTime.Parse("2022-09-16 23:59:00"), Text = "D" },
        new AppointmentData { Start = DateTime.Parse("2022-09-08 00:00:00"), End = DateTime.Parse("2022-09-16 23:59:00"), Text = "F" },
        new AppointmentData { Start = DateTime.Parse("2022-09-08 00:00:00"), End = DateTime.Parse("2022-09-16 23:59:00"), Text = "F" },
        new AppointmentData { Start = DateTime.Parse("2021-10-22 00:00:00"), End = DateTime.Parse("2022-09-02 23:59:00"), Text = "V" },
        new AppointmentData { Start = DateTime.Parse("2022-09-05 00:00:00"), End = DateTime.Parse("2022-11-01 23:59:00"), Text = "V" },
        new AppointmentData { Start = DateTime.Parse("2022-09-08 00:00:00"), End = DateTime.Parse("2022-09-08 23:59:00"), Text = "R" },
        new AppointmentData { Start = DateTime.Parse("2022-09-12 00:00:00"), End = DateTime.Parse("2022-09-16 23:59:00"), Text = "R" },
        new AppointmentData { Start = DateTime.Parse("2022-09-05 00:00:00"), End = DateTime.Parse("2022-09-16 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-09-12 00:00:00"), End = DateTime.Parse("2022-09-14 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-09-19 00:00:00"), End = DateTime.Parse("2022-09-20 23:59:00"), Text = "B" },
        new AppointmentData { Start = DateTime.Parse("2022-09-12 00:00:00"), End = DateTime.Parse("2022-09-14 23:59:00"), Text = "W" },
        new AppointmentData { Start = DateTime.Parse("2022-09-22 00:00:00"), End = DateTime.Parse("2022-09-26 23:59:00"), Text = "U" },
        new AppointmentData { Start = DateTime.Parse("2022-10-21 00:00:00"), End = DateTime.Parse("2022-10-21 23:59:00"), Text = "M" },
        new AppointmentData { Start = DateTime.Parse("2022-10-24 00:00:00"), End = DateTime.Parse("2022-10-28 23:59:00"), Text = "A" },
        new AppointmentData { Start = DateTime.Parse("2022-10-20 00:00:00"), End = DateTime.Parse("2022-10-24 23:59:00"), Text = "S" },
        new AppointmentData { Start = DateTime.Parse("2022-11-21 00:00:00"), End = DateTime.Parse("2022-11-29 23:59:00"), Text = "C" },
        new AppointmentData { Start = DateTime.Parse("2022-11-21 00:00:00"), End = DateTime.Parse("2022-11-29 23:59:00"), Text = "R" },
        new AppointmentData { Start = DateTime.Parse("2023-03-06 00:00:00"), End = DateTime.Parse("2023-03-10 23:59:00"), Text = "S" },

        };

Alternatively link your repo with a sample project that can be run.

Expected behavior Appointment starts on the next day with enough space and spans the rest of the week, maybe with an indicator arrow to show it doesn't start on that day.

Screenshots image image image image image

Desktop (please complete the following information):

Additional context I got this originally in a Blazor Server app but was able to reproduce in a Blazor WASM app too.

akorchev commented 2 years ago

Hi @mattheys,

Indeed the current implementation exhibits the issue you are describing. Unfortunately implementing anything more robust would be too big of a change in the rendering which we cannot soon allocate time for. We will leave the issue open for the time being.