Is this available for blazor? if not could it be added somehow temporarily until support for it is added?
https://demos.telerik.com/aspnet-mvc/scheduler/yearview
Hello!
After update to 2.27 there is a bug to scheduler with number of days and refresh.
You can check your live demo also:
The application users would like the scheduler to default to the work day view instead of the full day view.
Currently the only way to do this is to create a @ref to a property on my page and then override OnAfterRender to set the ShowWorkHours property to true. When examining the property I see that it is decorated with a HideFromApiRef attribute. Would it not be possible to change that to a Parameter so that the property could be set in the definition, or even bound to a variable?
Currently, you can only initiate editing/creating of an appointment in the Scheduler on double click. I'd like to be able to trigger these operations on single click.
It will be nice to have EditOn parameter to allow choosing if editing/creating will fire on single or double click of an appointment/slot.
Currently, when using an ItemTemplate, I cannot get the details for the current occurrence from the template context as it cannot be differentiated from the series.
===
TELERIK EDIT:
In the meantime, it is possible to get the occurrence details with JavaScript. The occurrence start and end DateTime are rendered as an aria-label HTML attribute of the <div class="k-event"> element.
@inject IJSRuntime js
<TelerikScheduler Data="@SchedulerData"
@bind-Date="@SelectedDate"
Height="600px">
<SchedulerViews>
<SchedulerMultiDayView StartTime="@StartTime" />
</SchedulerViews>
<ItemTemplate>
<div onclick="getOccurrenceDateTime(event)" style="height:100%">
@{ var appointment = (Appointment)context; }
@appointment.Title (CLICK ME)
</div>
</ItemTemplate>
</TelerikScheduler>
@* Move JavaScript code to a separate JS file *@
<script suppress-error="BL9992">
function getOccurrenceDateTime(e) {
alert(e.target.closest("div.k-event").getAttribute("aria-label"));
}
</script>
@code {
private AppointmentService appointmentService = new();
private DateTime SelectedDate { get; set; } = DateTime.Now.Date;
private DateTime StartTime { get; set; } = DateTime.Now.Date.AddHours(7);
private List<Appointment> SchedulerData = new List<Appointment>();
protected override async Task OnInitializedAsync()
{
SchedulerData = await appointmentService.GetAppointmentsAsync();
}
public class AppointmentService
{
public async Task<List<Appointment>> GetAppointmentsAsync()
{
await Task.Delay(1);
return GetAppointments();
}
public List<Appointment> GetAppointments()
{
List<Appointment> data = new List<Appointment>();
DateTime baselineTime = GetStartTime();
data.Add(new Appointment
{
Title = "Daily Meeting",
Description = "Daily Meeting",
Start = baselineTime.AddHours(1),
End = baselineTime.AddHours(1).AddMinutes(30),
RecurrenceRule = "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR"
});
return data;
}
public DateTime GetStartTime()
{
DateTime dt = DateTime.Now;
int daysSinceMonday = dt.DayOfWeek - DayOfWeek.Monday;
return new DateTime(dt.Year, dt.Month, dt.Day - daysSinceMonday, 8, 0, 0);
}
}
public class Appointment
{
public Guid Id { get; set; }
public string Title { get; set; } = string.Empty;
public DateTime Start { get; set; }
public DateTime End { get; set; }
public bool IsAllDay { get; set; }
public string Description { get; set; } = string.Empty;
public string RecurrenceRule { get; set; } = string.Empty;
public Appointment()
{
var rand = new Random();
Id = Guid.NewGuid();
}
}
}
Request either demo or functionality to either allow for "paging" of large scheduler data or functionality to utilize odata format for performance of scheduler data presentation.
My query even with just a year of data takes a few seconds to fetch from the database as well as several more seconds for the scheduler to process the data. Having functionality for changing views or switching days/weeks/months to allow for quick data updates from the back end would greatly improve overall performance.
I'd like to be able to search and filter the appointments in the Scheduler. Please add support for Searchbox in the Scheduler Toolbar as in the Telerik UI for ASP.NET Core.
The following date in the Scheduler RecurrenceRule cannot be parsed and is ignored:
RecurrenceRule = "FREQ=DAILY;UNTIL=20210722T000000"
According to the RFC5545 specification, this should be a valid date format.
These formats will work:
RecurrenceRule = "FREQ=DAILY;UNTIL=2021-07-22T00:00:00"
RecurrenceRule = "FREQ=DAILY;UNTIL=2021-07-22T00:00:00.000Z"
EDIT:
This is my work-around. It captures the date portion of the UNTIL clause, converts it into the date string style that Telerik can understand, then reassembles the rule stringprivate string TransformRecurrenceRule()
{
const string untilSeparator = "UNTIL=";
var ruleParts = RecurrenceRule.Split(untilSeparator, StringSplitOptions.RemoveEmptyEntries);
if (ruleParts.Length <= 1)
{
// There was no Until clause to worry about
return RecurrenceRule;
}
// Save the first part of the rule
var ruleBeginning = ruleParts[0];
// Split the date part of the until clause from any following clauses
var remainingClauses = ruleParts[1].Split(';', 2, StringSplitOptions.RemoveEmptyEntries);
//Save the date part of the until clause
var untilDate = remainingClauses[0];
// Save any following clauses with the `;` replaced
var ruleEnding = "";
if (remainingClauses.Length == 2)
{
ruleEnding = $";{remainingClauses[1]}";
}
// Convert the until date into .net parsable format
const string format = "yyyyMMddTHHmmss";
var date = DateTime.ParseExact(untilDate, format, CultureInfo.InvariantCulture);
var dateStr = date.ToString("yyyy-MM-ddTHH:mm:ss");
// recombine rule components
var newRuleParts = new[] {ruleBeginning, untilSeparator, dateStr, ruleEnding};
var newRule = string.Join("",newRuleParts);
return newRule;
}
If the Scheduler is placed in a parent container (for example Telerik Splitter or any other container) its appointments are not resized when resizing the pane. The Scheduler itself resizes accordingly, but the appointments don't.
I have located an issue with the scheduler in Firefox
It currently is not possible to edit an appointment in Firefox when visiting the following demo page:
https://demos.telerik.com/blazor-ui/scheduler/appointment-editing
Edge and Chrome work as expected.
I noticed this issue in my local project and referred to the demo's to see if I was doing something stupid :-).
I am assuming that the demo's are running in .net 5 and that the demo's are blazor server applications.
I have a scheduler, and am using a custom Edit handler. I need to support recurrence, and editing recurring events. When the use double-clicks on a recurring event, there is a dialog that asks whether they would like to edit the occurrence or the entire series.
I want to be able to capture the results of this dialog. `SchedulerEditEventArgs` doesn't include any attributes that track this.
===========
ADMIN EDIT
===========
The implementation of this enhancement could be covered by either including the corresponding attributes in the SchedulerEditEventArgs or by exposing a Template for the RecurrenceDialog.
Note: You may also check the Ability to directly edit an occurence or the series, without the prompt asking you to choose feature request as the implementation of both features will most likely be covered in one release.