Declined
Last Updated: 09 May 2014 12:59 by ADMIN
ADMIN
Created by: Jack
Comments: 1
Category: Scheduler/Reminder
Type: Feature Request
0
Currently RadScheduler does not support undo/redo operations and history.

CLOSED: This should be part of the business logic of your application and not built-in in RadScheduler
Declined
Last Updated: 21 Oct 2014 08:29 by ADMIN
DECLINED: RadScheduler already supports saving/loading exceptions (set via the MasterEventId mapping property). The issue here seems to be in the database setup but the information provided is insufficient to reproduce the case. 

1) Create new reccuring appointment
2) Open some occurrence of created reccuring appointment
3) Change end date, click OK
Here will be first problem - reccuring on this occurence icon not changed (see attached screenshot).
4) Save data to DB
5) Try do delete saved occurence of reccuring appointment
6) Save data to DB
Here is the second problem - this will not delete.
Completed
Last Updated: 17 Jun 2014 10:07 by ADMIN
To reproduce:
- add RadScheduler with several appointments and use the folllowing code:
SchedulerDayView dayView = this.radScheduler1.GetDayView();
dayView.RangeFactor = ScaleRange.QuarterHour;
dayView.RulerStartScale = 7;
dayView.RulerEndScale = 18;

Ensure that you have appointments with start before 7 AM and appointments with start after 18 PM. All appointments with start before 7 AM are displayed at the top of the view, but all appointments with start after 18 PM are not displayed.

Workaround:
public Form1()
{
    InitializeComponent();

    for (int i = 0; i < 20; i++)
    {
        Appointment appointment = new Appointment(DateTime.Now.AddHours(12 + i), TimeSpan.FromMinutes(30), "Summary", "Description");
        appointment.StatusId = 2;
        appointment.BackgroundId = 6;
        this.radScheduler1.Appointments.Add(appointment);
    }

    SchedulerDayView dayView = this.radScheduler1.GetDayView();
    dayView.RangeFactor = ScaleRange.QuarterHour;
    dayView.RulerStartScale = 7;
    dayView.RulerEndScale = 18;

    this.radScheduler1.AppointmentElementFactory = new CustomAppointmentElementFactory();
}

public class CustomAppointmentElementFactory : IAppointmentElementFactory
{
    AppointmentElement IAppointmentElementFactory.CreateAppointmentElement(RadScheduler scheduler, SchedulerView view, IEvent appointment)
    {
        return new CustomAppointmentElement(scheduler, view, appointment);
    }
}

public class CustomAppointmentElement : AppointmentElement
{
    public CustomAppointmentElement(RadScheduler scheduler, SchedulerView view, IEvent appointment) : base(scheduler, view, appointment)
    {
    }

    protected override void OnParentChanged(Telerik.WinControls.RadElement previousParent)
    {
        base.OnParentChanged(previousParent);

        if (this.Scheduler.ActiveViewType == SchedulerViewType.Day)
        {
            if (this.Start.Hour > this.Scheduler.GetDayView().RulerEndScale)
            {
                this.Start = this.Start.Date.AddHours(this.Scheduler.GetDayView().RulerEndScale).AddMinutes(-(int)this.Scheduler.GetDayView().RangeFactor);
            }
        }
    }
}
Completed
Last Updated: 06 Jun 2014 14:41 by ADMIN
To reproduce:

Add a Resource to RadScheduler:

Resource res = new Resource();
res.Id = new EventId(199);
res.Name = "John Doe";

radScheduler1.Resources.Add(res);

Create a new appointment and set the resource:

Appointment app = new Appointment();

app.Start = DateTime.Now;
app.End = app.Start.AddHours(1);
app.BackgroundId = 3;
app.ResourceId = new EventId(199);

radScheduler1.Appointments.Add(app);

Subscribe to the CollectionChangedEvent:
void Appointments_CollectionChanged(object sender, Telerik.WinControls.Data.NotifyCollectionChangedEventArgs e)
{
    if (e.Action == Telerik.WinControls.Data.NotifyCollectionChangedAction.ItemChanged)
    {
        Debug.WriteLine("Property Changed = " + e.PropertyName);
    }
}

Run the application, open the appointment and click ok. You will notice that the event will fire. It should not fire since the EventId is the same.

Workaround:
Create a custom appointment following this article: http://www.telerik.com/help/winforms/scheduler-appointments-and-dialogs-adding-a-custom-field-to-the-editappointment-dialog.html and override the ResourceId property:

public class App : Appointment
{
    public override EventId ResourceId
    {
        get
        {
            return base.ResourceId;
        }
        set
        {
            if (!Object.Equals(this.ResourceId, value))
            {
                base.ResourceId = value;
            }
        }
    }
}
Completed
Last Updated: 12 May 2014 08:13 by ADMIN
To reproduce:


Set the following property:
this.scheduler.SchedulerElement.EditorManager.EditorViewMode = SchedulerEditorViewMode.EditorDialog;


After that when editing an appointment a small dialog should appear on the side of the appointment.


You will notice that it is very hard to make the dialog appear and it is not very clear at what conditions.


Workaround:


Show the dialog whenever you need it. For example, when an appointment is clicked:


this.scheduler.SchedulerElement.EditorManager.EditorViewMode = SchedulerEditorViewMode.EditorDialog;


this.scheduler.MouseClick += scheduler_MouseClick;


void scheduler_MouseClick(object sender, MouseEventArgs e)
{
    if (this.scheduler.ElementTree.GetElementAtPoint(e.Location) as AppointmentElement != null)
    {
        this.scheduler.SchedulerElement.EditorManager.BeginEdit();
    }
}
Completed
Last Updated: 13 May 2014 15:11 by ADMIN
To reproduce:


Add a scheduler to a Form. Subscribe to the PropertyChanged of the active view:


this.scheduler.ActiveView.PropertyChanged += ActiveView_PropertyChanged;


Set the scheduler's ActiveViewType to Week and then Day, this will cause the StartDate to change. 


this.scheduler.ActiveViewType = SchedulerViewType.Week;
this.scheduler.ActiveViewType = SchedulerViewType.Day;


void ActiveView_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "StartDate")
    {
        Console.WriteLine(this.scheduler.ActiveView.GetType()); // results in WeekView
        Debugger.Break();
    }
}


You will notice that even that the ActiveView is WeekView the StartDate is changed when setting the ActiveViewType to Day. The PropertyChanged event for StartDate should be fired for the appropriate new ViewType.
Completed
Last Updated: 06 Apr 2016 10:17 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
0
Description: Using the AppointmentFormatting event, setting the AppointmentElement's TextOrientation property  to Vertical should paint the content text in the corresponding orientation.
Completed
Last Updated: 12 May 2014 14:25 by ADMIN
To reproduce:
- Add RadScheduler to a blank form.
- Set its AllowAppointmentResize property to false.
- You will notice that the resize squares are not removed from the selected appointment.
Completed
Last Updated: 30 May 2014 09:49 by ADMIN
To reproduce:
1. Add a RadSheduler with one Appointment with more than one resources (e.g. add two EventIds in its  ResourceIds collection).
2.Group the scheduler by resources setting the GroupType property to GroupType.Resource.
3.Use SchedulerViewType.Timeline.

When you try to resize the appointment for one of the resources, the expected result is this appointment to be resized for all of its resources.

Workaround: Use the AppointmentMouseUp event and manually perform the refresh:

Private Sub sched_AppointmentMouseUp(sender As Object, e As SchedulerAppointmentMouseEventArgs)
    If e.Button = Windows.Forms.MouseButtons.Left Then
        Me.sched.SchedulerElement.Refresh()
    End If
End Sub
Completed
Last Updated: 01 Oct 2014 13:12 by ADMIN
The AppointmentResizeEnd event fires in cases where there was no resize done (for example when selecting appointments)

To workaround:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.SchedulerElement.ResizeBehavior = new MyResizeBehavior(this.radScheduler1);
}
 
class MyResizeBehavior : AppointmentResizingBehavior
{
    public MyResizeBehavior(RadScheduler scheduler)
        :base(scheduler) { }
 
    public override bool EndResize(IEvent appointment)
    {
        if (!this.IsResizing)
        {
            return false;
        }
        return base.EndResize(appointment);
    }
}
Completed
Last Updated: 01 Jul 2014 10:01 by ADMIN
To reproduce:
 Sub New()
     InitializeComponent()

     Dim colors() As Color = {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, Color.Orange}

     Dim names() As String = {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"}

     For i As Integer = 0 To names.Length - 1
         Dim resource As New Telerik.WinControls.UI.Resource()
         resource.Id = New EventId(i)
         resource.Name = names(i)
         resource.Color = colors(i)
         Me.RadScheduler1.Resources.Add(resource)
     Next i
     Me.RadScheduler1.GroupType = GroupType.Resource
     Me.RadScheduler1.ActiveView.ResourcesPerView = 2

     Dim rand As New Random

     For index = 1 To 20
         Dim appointment As New Appointment(Date.Now.AddHours(index), TimeSpan.FromMinutes(30), "Summary", "Description")
         appointment.StatusId = RadScheduler1.Statuses(rand.Next(0, RadScheduler1.Statuses.Count)).Id
         appointment.BackgroundId = RadScheduler1.Backgrounds(rand.Next(0, RadScheduler1.Backgrounds.Count)).Id
         appointment.ResourceId = RadScheduler1.Resources(rand.Next(0, RadScheduler1.Resources.Count)).Id
         Me.RadScheduler1.Appointments.Add(appointment)
     Next
     RadSchedulerLocalizationProvider.CurrentProvider = New CustomSchedulerLocalizationProviderInglese()
 End Sub

 Public Class CustomSchedulerLocalizationProviderInglese
     Inherits RadSchedulerLocalizationProvider
     Public Overrides Function GetLocalizedString(id As String) As String
         
         Return MyBase.GetLocalizedString(id)

     End Function
 End Class
Completed
Last Updated: 31 Jul 2014 10:37 by ADMIN
To reproduce:
 - Add a recurrence appointment with a reminder to a blank RadScheduler.
 - Delete single occurrence and wait for the reminder form to show.
 - You will notice that the deleted occurrence still exist in the form's grid.
Completed
Last Updated: 01 Oct 2014 13:03 by ADMIN
RadScheduler the ruler is not displayed correctly with the office2010 themes.
Completed
Last Updated: 01 Oct 2014 13:03 by ADMIN
To reproduce:
public Form1()
{
    InitializeComponent(); 
    for (int i = 0; i < 10; i++)
    {
        Appointment appointment = new Appointment(DateTime.Now.AddHours(i),
            TimeSpan.FromMinutes(30), "Summary", "Description");
        appointment.StatusId = 2;
        appointment.BackgroundId = 6;
        this.radScheduler1.Appointments.Add(appointment);
    }

    this.radScheduler1.ActiveViewType = SchedulerViewType.Day;
    SchedulerDayView dayView = this.radScheduler1.GetDayView();
    dayView.RangeFactor = ScaleRange.FiveMinutes;
    dayView.RulerStartScale = DateTime.Now.Hour - 1;
    this.radScheduler1.EnableExactTimeRendering = true;
}
Completed
Last Updated: 09 Oct 2014 10:28 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce :
1. Add a RadScheduler and a RadToggleButton.
2. Use the following code snippet:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.RadScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Timeline

    Dim colors As Color() = New Color() {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, Color.Orange, Color.Pink, _
        Color.Purple, Color.Peru, Color.PowderBlue}

    Dim names As String() = New String() {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"}

    For i As Integer = 0 To names.Length - 1
        Dim resource As New Resource()
        resource.Id = New EventId(i)
        resource.Name = names(i)
        resource.Color = colors(i)
        Me.RadScheduler1.Resources.Add(resource)
    Next

    Me.RadScheduler1.ActiveView.ResourcesPerView = 2

    Dim timelineView As SchedulerTimelineView = Me.RadScheduler1.GetTimelineView()
    Dim scale As Timescales = Timescales.Hours
    timelineView.ShowTimescale(scale)
    timelineView.StartDate = DateTime.Now.Date.AddHours(5)
    timelineView.RangeStartDate = DateTime.Now.Date.AddHours(5)
    timelineView.RangeEndDate = DateTime.Now.Date.AddHours(15)
    timelineView.CurrentScale.DisplayedCellsCount = 10
End Sub

Private Sub RadToggleButton1_ToggleStateChanged(sender As Object, args As StateChangedEventArgs) Handles RadToggleButton1.ToggleStateChanged
    If args.ToggleState = Telerik.WinControls.Enumerations.ToggleState.On Then
        Me.RadScheduler1.GroupType = GroupType.Resource
    Else
        Me.RadScheduler1.GroupType = GroupType.None
    End If
End Sub

Initially, the timeline view start from the correct hour (5 AM). However, the horizontal scroll bar allows you to navigate in right direction as the  RangeEndDate is currently visible in the view. When you click the toggle button, the scheduler is grouped by resources and the timeline start is reset.
Unplanned
Last Updated: 15 Aug 2017 09:45 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
0
Implement similar functionality as the exact time rendering in Outlook (DayView) using the status area. Please refer to the attached screenshot.
Completed
Last Updated: 03 Sep 2014 06:57 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce:

public Form1()
{
    InitializeComponent();

    this.radScheduler1.GetDayView().RangeFactor = Telerik.WinControls.UI.ScaleRange.HalfHour;

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 11, 0, 0, 0),
                                                        new DateTime(2014, 7, 21, 12, 0, 0, 0)));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 30, 45, 137 ),
                                                        new DateTime(2014, 7, 21, 15, 30, 58, 600 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 10, 0, 0, 0 ),
                                                        new DateTime(2014, 7, 21, 11, 0, 0, 0 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 30, 19, 633 ),
                                                        new DateTime(2014, 7, 21, 15, 30, 31, 253 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 29, 20, 337 ),
                                                        new DateTime(2014, 7, 21, 15, 29, 52, 767 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 13, 0, 0, 0 ),
                                                        new DateTime(2014, 7, 21, 14, 0, 0, 0 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 0, 0, 0 ),
                                                        new DateTime(2014, 7, 21, 16, 0, 0, 0 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 28, 15, 500 ),
                                                        new DateTime(2014, 7, 21, 15, 28, 37, 310 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 14, 0, 0, 0 ),
                                                        new DateTime(2014, 7, 21, 15, 0, 0, 0 )));

    this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 27, 19, 123 ),
                                                        new DateTime(2014, 7, 21, 15, 27, 57, 357 )));
}
Completed
Last Updated: 25 Sep 2014 08:59 by ADMIN
 The tooltip is displayed in in wrong position when it contains several lines.
Completed
Last Updated: 26 Nov 2014 14:18 by ADMIN
Add Reminder property to the AppointmentMappingInfo class.
Completed
Last Updated: 16 Oct 2014 15:05 by ADMIN
Please refer to the attached file.