Completed
Last Updated: 19 Dec 2017 14:35 by ADMIN
ADMIN
Created by: Ivan Todorov
Comments: 1
Category: Scheduler/Reminder
Type: Feature Request
6
Implement search function in RadSchedulerNavigator.
Completed
Last Updated: 12 Dec 2017 15:04 by ADMIN
To reproduce: run the sample project and follow the illustrates steps from the gif file.

Workaround: close the tooltip programmatically:

        private void radScheduler1_AppointmentMouseDown(object sender, SchedulerAppointmentMouseEventArgs e)
        {
            if (tooltip != null)
            {
                tooltip.Hide(this.radScheduler1);
            }
        }

        ToolTip tooltip = null;

        private void radScheduler1_ToolTipTextNeeded(object sender, Telerik.WinControls.ToolTipTextNeededEventArgs e)
        {
            AppointmentElement app = sender as AppointmentElement;
            if (app != null)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < 10; i++)
                {
                    sb.AppendLine(app.Appointment.Summary + i + " " + app.Appointment.Summary + i + i + " " + app.Appointment.Summary);
                }
                e.ToolTipText = sb.ToString();
                tooltip = e.ToolTip;
            }
        }
Completed
Last Updated: 28 Nov 2017 06:45 by ADMIN
This feature is required for OpenEdge scenarios. 

A common case is that the resource_id field is stored as an integer field in your DataSource. But RadScheduler needs EventId type. You can have a look at the Appointment.ResourceId property which expects EventId value, not an integer. It is necessary to use a SchedulerMapping in this case and convert the integer value to EventId used by RadScheduler and convert the EventId to an integer used by your DataSource. This conversion is performed by the ConvertToDataSource and ConvertToScheduler callbacks. It is responsible for the proper conversion of the integer resource_id value coming from the DataSource to the RadScheduler's EventId. Additional information for the SchedulerMapping is available here: http://docs.telerik.com/devtools/winforms/scheduler/data-binding/scheduler-mapping

In C#, it is just necessary to specify the name of the callback which will handle the conversion but it seems to be a problem in ABL. It is required to have events.
Unplanned
Last Updated: 20 Nov 2017 16:18 by ADMIN
If you want to show the borders for the weekdays, the left most border is not shown because another element is over the cell. It is not possible to hide this top left cell and show the left border for Sunday.
Unplanned
Last Updated: 20 Nov 2017 15:14 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
This is reproducible not only with Material theme but with the other themes as well.

Workaround:

        private void radScheduler1_CellFormatting(object sender, Telerik.WinControls.UI.SchedulerCellEventArgs e)
        {
            e.CellElement.ZIndex = 0;
        }
Unplanned
Last Updated: 20 Nov 2017 12:57 by ADMIN
Please refer to the attached screenshot from Outlook.
Unplanned
Last Updated: 07 Nov 2017 15:21 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
2
Run the application on a Windows 10 machine and scroll to the bottom. Please refer to the attached gif file.
Unplanned
Last Updated: 31 Aug 2017 08:54 by Longnd
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 4
Category: Scheduler/Reminder
Type: Feature Request
5
This request is to add Working hours range of the view, which will style the cells as working and non working. In addition, add a property ShowWorkingHours while will determine whether non-working hours are visible or not.

Or perhaps for the sake of consistency, we can have API as in the day view:
dayView.RangeFactor = ScaleRange.QuarterHour
dayView.RulerStartScale = 9
dayView.RulerStartScaleMinutes = 30
dayView.RulerEndScale = 14
dayView.RulerEndScaleMinutes = 45
Unplanned
Last Updated: 31 Aug 2017 08:09 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 2
Category: Scheduler/Reminder
Type: Bug Report
8
Please refer to the attached sample project. When you start the application the form's text indicates how many times the AppointmentFormatting event is fired for only 30 appointments - more than 400 times. The more appointments you have , the more times the vent is initially fired,e.g. if you have 50 appointmens it is fired If you switch between the different views you will see how the counter increases its value.
Completed
Last Updated: 16 Aug 2017 08:13 by ADMIN
How  to reproduce: public partial class Form2 : Form
{
    BindingList<AppointmenntObject> appointments;
    BindingSource bs;

    public Form2()
    {
        InitializeComponent();

        this.appointments = new BindingList<AppointmenntObject>();

        this.bs = new BindingSource();
        this.bs.DataSource = this.appointments;
        for (int i = 0; i <= 3; i++)
        {
            appointments.Add(new AppointmenntObject(DateTime.Now.AddDays(i), DateTime.Now.AddDays(i).AddHours(2), "Summary " + i, "Description" + i, "Location" + i));
        }

        AppointmentMappingInfo appointmentMappingInfo = new AppointmentMappingInfo();
        appointmentMappingInfo.Start = "Start";
        appointmentMappingInfo.End = "End";
        appointmentMappingInfo.Description = "Description";
        appointmentMappingInfo.Summary = "Summary";
        this.schedulerBindingDataSource1.EventProvider.Mapping = appointmentMappingInfo;
        schedulerBindingDataSource1.EventProvider.DataSource = this.bs;

        this.radScheduler1.DataSource = this.schedulerBindingDataSource1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        var ev = (AppointmenntObject)this.bs.Current;
        var end = ev.End;
        ev.End = end.AddHours(1);
    }
}

public class AppointmenntObject : INotifyPropertyChanged
    {
        private DateTime start;
        private DateTime end;
        private string summary;
        private string description;
        private string location;

        public AppointmenntObject(DateTime start, DateTime end, string summary, string description, string location)
        {
            this.Start = start;
            this.End = end;
            this.Summary = summary;
            this.Description = description;
            this.Location = location;
        }

        public DateTime Start
        {
            get
            {
                return this.start;
            }
            set
            {
                if (this.start != value)
                {
                    this.start = value;
                    OnPropertyChanged("Start");
                }
            }
        }


        public DateTime End
        {
            get
            {
                return this.end;
            }
            set
            {
                if (this.end != value)
                {
                    this.end= value;
                    OnPropertyChanged("end");
                }
            }
        }

        public string Description
        {
            get
            {
                return this.description;
            }
            set
            {
                if (this.description != value)
                {
                    this.description = value;
                    OnPropertyChanged("Description");
                }
            }
        }

        public string Summary
        {
            get
            {
                return this.summary;
            }
            set
            {
                if (this.summary != value)
                {
                    this.summary= value;
                    OnPropertyChanged("Summary");
                }
            }
        }

        public string Location
        {
            get
            {
                return this.location;
            }
            set
            {
                if (this.location != value)
                {
                    this.location = value;
                    OnPropertyChanged("Location");
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }

Workaround: Rebind the SchedulerBindingDataSource object

private void button1_Click(object sender, EventArgs e)
{
    var ev = (AppointmenntObject)this.bs.Current;
    var end = ev.End;
    ev.End = end.AddHours(1);

    this.schedulerBindingDataSource1.Rebind();
}
Unplanned
Last Updated: 16 Aug 2017 07:57 by ADMIN
Currently, only one resource can be printed on a single page. It should be possible to print the appointments for more than one resource on a single page, just like RadScheduler allows you to set the number of resources per view.
Completed
Last Updated: 15 Aug 2017 11:03 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
0
To reproduce:

            Appointment a = new Appointment(DateTime.Now, TimeSpan.FromHours(20),"Meeting");
            a.StatusId = this.radScheduler1.Statuses.Last().Id;
            this.radScheduler1.Appointments.Add(a);

            this.radScheduler1.ShowAppointmentStatus = false;

The status for AppointmentElements is shown although it shouldn't.
Completed
Last Updated: 15 Aug 2017 11:03 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:
            this.radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Timeline;
            this.radScheduler1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;

Please refer to the attached gif file. Select the left border of an appointment and try to resize it to the left. You will notice that you are allowed to resize it to the right and vice versa.

Workaround:           this.radScheduler1.SchedulerElement.ResizeBehavior = new MyResizingBehavior(this.radScheduler1.SchedulerElement);

public class MyResizingBehavior : AppointmentResizingBehavior
{
    RadScheduler scheduler;

    public MyResizingBehavior(SchedulerVisualElement activeOwner)
        : base(activeOwner)
    {
        scheduler = activeOwner.Scheduler;
    }

    protected override bool UpdateMouseCursor(Point mousePosition, Rectangle nearRect, Rectangle farRect)
    {
        bool result = base.UpdateMouseCursor(mousePosition, nearRect, farRect);
        if (scheduler.RightToLeft == RightToLeft.Yes )
        {
            FieldInfo leftFI = typeof(AppointmentResizingBehavior).GetField("leftResize", BindingFlags.NonPublic | BindingFlags.Instance);
            FieldInfo rightFI = typeof(AppointmentResizingBehavior).GetField("rightResize", BindingFlags.NonPublic | BindingFlags.Instance);

            if (nearRect.Contains(mousePosition) && scheduler.Cursor == Cursors.SizeWE)
            {
                leftFI.SetValue(this, false);
                rightFI.SetValue(this, true);
            }
            else if (farRect.Contains(mousePosition) && scheduler.Cursor == Cursors.SizeWE)
            {
                leftFI.SetValue(this, true);
                rightFI.SetValue(this, false);
            }
        }
        return result;
    }
}
Completed
Last Updated: 15 Aug 2017 10:54 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
2
Color[] colors = new Color[]
{
    Color.LightBlue, Color.LightGreen, Color.LightYellow,
    Color.Red, Color.Orange, Color.Pink, Color.Purple, Color.Peru, Color.PowderBlue
};
string[] names = new string[]
{
    "Alan Smith", "Anne Dodsworth",
    "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"
};
for (int i = 0; i < names.Length; i++)
{
    Resource resource = new Resource();
    resource.Id = new EventId(i);
    resource.Name = names[i];
    resource.Color = colors[i];
    this.radScheduler1.Resources.Add(resource);
}
this.radScheduler1.GroupType = GroupType.Resource;
this.radScheduler1.ActiveView.ResourcesPerView = 4;
this.radScheduler1.ActiveViewType = SchedulerViewType.Timeline;
this.radScheduler1.GetTimelineView().GroupSeparatorWidth = 0;

By default, the GroupSeparatorWidth property is set to 3. If you need to remove the resources separator, it is necessary to set the GroupSeparatorWidth property to 0 which is not possible at the moment with the public API.

Workaround:

FieldInfo fi = typeof(SchedulerView).GetField("groupSeparatorWidth", BindingFlags.Instance | BindingFlags.NonPublic);
fi.SetValue(this.radScheduler1.GetTimelineView(), 0);
Completed
Last Updated: 15 Aug 2017 10:28 by ADMIN
Run the attached project and add one appointment. Press the "save" button and restart the application.

Workaround:

private void radButton1_Click(object sender, EventArgs e)
{ 
    Telerik.WinControls.UI.Appointment a = new Telerik.WinControls.UI.Appointment(DateTime.Now, TimeSpan.FromHours(2));
    this.radScheduler1.Appointments.Add(a);
    this.radScheduler1.Appointments.Remove(a);
    dbContext.SaveChanges();
}
Completed
Last Updated: 15 Aug 2017 10:20 by ADMIN
To reproduce:

1. Add a RadScheduler on a form and set the culture:
this.radScheduler1.Culture = new System.Globalization.CultureInfo("fa-IR");

2. In regional settings set the Format to Persian(Iran) as it is illustrated in the attached screenshot.

3. Run the application and try to add an appointment. Open the Recurrence dialog and you will get the exception.
Unplanned
Last Updated: 15 Aug 2017 10:08 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
1
In Outlook, when the appontment height should be smaller than the height needed to accommodate 1 line of text, the appointment status size is being changed instead.
Unplanned
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
6

			
Unplanned
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Feature Request
3
It would be nice if the RadScheduler allows dragging of multiple selected appointments and change the events'  start time in correspondence with the active appointment offset time.