This is a migrated thread and some comments may be shown as answers.

Questions/Suggestions

22 Answers 389 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
Bloodhound
Top achievements
Rank 1
Bloodhound asked on 20 Sep 2007, 03:26 PM
First off, awesome control!  We are currently using another scheduling control, but are evaluating your new RadScheduler as a replacement.  We have used and abused your controls in the past and plan on doing the same with RadScheduler.   The HTML for this control is very clean, especially compared to our old control, so hats off to you. 

We have the following issues with our old control, and it appears that your control has the same issues.

1.  Horizontal Scrolling
Our application can have over 20 resources.  We must have horizontal scrolling, and horizontal scrolling while dragging must be supported.  (Yes I know we could break up the number of resources on put them on seperate pages, but our clients want to see them all at once.  They need to be able to move an appointment from the first resource to the last by dragging.  )

2.  Statically positioned time column.
The header is already static, we need the time column to be static.  I have done this before in IE, but don't know how it would work in other browsers, so I know it is possible.  If you can't do this one, then maybe number 3 below?

3. Repeating Time Column
Repeating the time colum on both sides of the control, and at a set interval (every 5 resoures).  This is for horizontal scrolling, so you can still see the time. 

4.  Expose Dragging (move) Event Hooks Client Side
If you can't implement scroll on drag logic, then I will implement my own, but I need an OnClientDragStart event and an OnClientDragEnd event. 

5.  You current scroll on drag logic for vertical scrolling while good, has some issues.
If you drag 'too fast' then the cursor gradually gets further and further away from the floating appointment that you are moving.  I have been able to reproduce this behavior on your demo page using IE6.  We can live with this issue, but just thought you would want to know. 

6.  Watchlist concept
Our current control has the ability to show the scheduler, and then have a 'watch list' visible next to it.  Basically the watch list is a list of unscheduled events that can be added to the schedule.  You can drag them from the 'watch list' to the schedule where they will be added.  It would be cool if your scheduler had this functionality. 

If your control already does some of these things, I apologize ahead of time because I have only spent a hour or so evaluating your control.  I look foward to your reply. 

-Mike

22 Answers, 1 is accepted

Sort by
0
Bloodhound
Top achievements
Rank 1
answered on 20 Sep 2007, 04:28 PM
I found a couple more things.

We can only allow our users to resize or move an appointment.  They should not be able to edit or delete an appointment.

I was able to call set_cancel on the delete and insert, but I get a js error when I call it on editing. 
0
T. Tsonev
Telerik team
answered on 21 Sep 2007, 02:43 PM
Hello Mike,

Thank you for the great feedback.

Regarding the horizontal scrolling - we definitely plan such feature, as it is a prerequisite to the planned GANTT chart functionality (resource grouping on the Y-axis). Most probably, we will make the time column frozen, as it is the most logical behavior.

The drag-while-scroll support was one of the last implemented features and is still in its early revisions. We aim to refine it for the Service Pack release. We will also implement drag-related client-side events for completeness.

The watchlist (or to-do list) concept is being considered. However, we do not expect it to be ready soon. It will take at least one or two major releases, but we will try to prototype it much earlier.

I did not manage to reproduce the problem with set_cancel in the deleting and inserting events. Can you please post the sample code you are using?

Sincerely yours,
Tsvetomir Tsonev
the Telerik team

Instantly find answers to your questions at the new Telerik Support Center
0
Bloodhound
Top achievements
Rank 1
answered on 24 Sep 2007, 01:22 PM
I will provide a code sample shortly, but just to clarify; inserting and deleting work fine.  It is editing that throws the js error. 
0
Bloodhound
Top achievements
Rank 1
answered on 25 Sep 2007, 02:32 PM
I found the problem.  I had the double click event tied to the same JS function as the edit event.  It, of course doesn't have a set cancel property on the objects passed into it. 
0
Trevor
Top achievements
Rank 1
answered on 30 Sep 2007, 07:26 AM
I am getting this: Sys.WebForms.PageRequestManagerParserErrorException error pops saying "Error parsing near Begin:VCALENDAR " or something similar... The Export Button above the Scheduler doesn't throw this error, only when clicking on the Export buttons inside the calendar. However when I try to import the .ICS file that is generated, Outlook barks and throws this error:
Microsoft Office Outlook cannot import vCalendar file. This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format. To avoid this error, set the appointment option to Gregorian instead of Lunar.
Can anyone help me get this Export to ICS working?

0
Susan Budnik
Top achievements
Rank 2
answered on 17 Nov 2008, 09:12 PM
In which version was scroll-while-dragging implemented, and is there any documentation for this feature? I am using version 2008.2.1001.35. From Tsvetomir Tsonev's post on Sept 21, 2007, it seems like this feature should already be there, but cannot figure out how to turn it on nor find any documentation on it.

Specifically, when the scheduler height is greater than the window height (causing window scrollbars), I am unable to drag an appointment to a time slot that is not visible in the window. I would like for the window to scroll up when dragging an appointment past the top of the window, and scroll down when dragging an appointment past the bottom of the window. Is this possible?

Thank you.
0
Peter
Telerik team
answered on 18 Nov 2008, 09:52 AM
Hello Donna,

Thank you for your question. While testing the scroll-while-dragging functionality we discovered that it works as expected in Firefox 3, but not in IE7. We will fix the problem for the upcoming service pack on November 25.


All the best,
Peter
the Telerik team

Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
KingPrawn
Top achievements
Rank 1
answered on 11 Jan 2009, 08:35 PM
Hi,

RE: 1.  Horizontal Scrolling
Our application can have over 20 resources.  We must have horizontal scrolling, and horizontal scrolling while dragging must be supported.  (Yes I know we could break up the number of resources on put them on seperate pages, but our clients want to see them all at once.  They need to be able to move an appointment from the first resource to the last by dragging.  )

Has this feature been added to the control(if so where as I can't seem to find it)?  If it not currently in the control does anyone know in what release if any it's likely to be in?  It's something that would be very handy for me at the moment as I currently need to display the resources down the left side and allow time slots to be created/adjusted along the horizontal in a day view.  Sort of like a Gantt chart.

If it's not currently in has anyone got any ideas as to what telerik control would allow me to do what I need?

Thanks
kp
0
Peter
Telerik team
answered on 12 Jan 2009, 09:21 AM
Hi,

This functionality is already supported. For horizontal scrolling you will have to set the ColumnWidth property. For best results I suggest you use the latest build which you can download from here.

Let us know if you have further questions.

Greetings,
Peter
the Telerik team

Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
KingPrawn
Top achievements
Rank 1
answered on 13 Jan 2009, 10:52 AM
Hi Peter,

Thanks for the quick response.

I don't suppose you have any examples of this?  The version I'm working with is:

Runtime Version: v2.0.50727
Version: 2008.3.1105.35

Thanks
kp
0
Peter
Telerik team
answered on 13 Jan 2009, 11:17 AM
Hello KP,

The ColumnWidth property is relatively new, so you need to use the current official version (2008.3.1125) or the latest build to be able to take advantage of it. For example, set

<telerik:RadScheduler ID="RadScheduler1" ColumnWidth="150px" .../>

and you will observe horizontal scrolling in the views for which it is applicable (such as Week view).


Greetings,
Peter
the Telerik team

Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
KingPrawn
Top achievements
Rank 1
answered on 13 Jan 2009, 01:43 PM
Hi Peter,

The coloumnwidth property is in the version I have.  However when I set it all it does is set the width of the resource along the top.

What I'm looking for is getting the Time along the top and the resources down the left hand side.

Is column width suppose to do this or do I have some other properties that I need to set?

Thanks
kp

0
Peter
Telerik team
answered on 13 Jan 2009, 02:20 PM

You need Timeline view with GroupingDirection="Vertical". Please, see this demo for reference.


Peter
the Telerik team

Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
KingPrawn
Top achievements
Rank 1
answered on 13 Jan 2009, 04:48 PM
Hi Peter,

That's nearly what I'm after; however the items along the top are just days.  What I'm after is getting the TimeLine across the top.  Is this possible?

At the moment when I update as you've sugested I get my employee's down the left side and a single date along the top (the day being viewed) when I'm looking at a single day's view. 

Is it possible to get the TimeLine for the day being viewed to display along the top so that I can re-size an appointment along the horizontal?

Thanks
Rob
0
Peter
Telerik team
answered on 15 Jan 2009, 09:31 AM

Okay, I see what you are after. Here is a set of TimelineView properties which will help you get started:

<TimelineView GroupBy="Type" GroupingDirection="Vertical" SlotDuration="01:00" NumberOfSlots="8" ColumnHeaderDateFormat="hh:mm" />

Best wishes,
Peter
the Telerik team

Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
KingPrawn
Top achievements
Rank 1
answered on 16 Jan 2009, 02:17 PM
Hi Peter,

That's great and it's really starting to get to be exactly what I'm after.  I only have one little (hope it's little) problem now.  The appointments don't line up with the time slots correctly; for example if I have an appointment for 10am to 2pm it lines up correctly at 10am but is always a little short of 2pm.  It displays as if the appointment is actually only until 1:45pm. 

Any ideas?

Thanks
Rob
0
Peter
Telerik team
answered on 16 Jan 2009, 03:27 PM


Please, send us the exact steps necessary to replicate the problem. It would be best if you can open a support ticket and send us a small working demo.


Peter
the Telerik team

Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
KingPrawn
Top achievements
Rank 1
answered on 11 Feb 2009, 01:03 PM
Hi,

This is an image of the problem with the end of the Appointment does not line up with the correct time in the timeline view Image of problem

The data is from a BindingList<T>  at the type is a class with a start and finish both datetime, and the other info as in RowId<Guid>, EmployeeName<string>, EmployeeId<Guid>

As you can see the End does not line up to the correct time on the header.  It seems to miss the last half of the slot.

The code below is what I'm using.

Thanks
Rob

This is the ASPX Code:

    <telerik:RadScheduler ID="dayScheduler" EnableViewState="true" Width="100%" Height="40%" runat="server"
        AllowDelete="False"
        AllowInsert="False"
        Font-Names="Verdana, arial, sans-serif" Font-Size="X-Small"
        DataEndField="Finish"
        DataKeyField="RowId"
        DataStartField="Start"
        DataSubjectField="SubjectField"
        StartEditingInAdvancedForm="False" StartInFullTime="false"
        ValidationGroup="dayScheduler" WorkDayEndTime="20:00:00"
        WorkDayStartTime="08:00:00" EnableAdvancedForm="false"
        OnClientAppointmentContextMenu="OnClientAppointmentContextMenu"
        OnClientRecurrenceActionDialogShowing="OnClientRecurrenceActionDialogShowing"
        DayEndTime="23:59:00" DayStartTime="00:00:00"
        onappointmentupdate="dayScheduler_AppointmentUpdate"
        SelectedView="TimelineView" ShowAllDayRow="false" ColumnWidth="40px"
        onformcreating="dayScheduler_FormCreating" RowHeaderWidth="150px" ShowDateHeaders="False" ShowFooter="False">
        <DayView DayEndTime="23:59:00" DayStartTime="00:00:00"
            WorkDayEndTime="20:00:00" WorkDayStartTime="08:00:00" />
        <TimelineView GroupBy="Employee" GroupingDirection="Vertical" SlotDuration="00:30" NumberOfSlots="48" ColumnHeaderDateFormat="HH:mm" />
    </telerik:RadScheduler>


And this is the code that adds the appointments:

private static BindingList<DaySchedule> _dayData = new BindingList<DaySchedule>()


                //Set the culture for the schedule control and other options
                dayScheduler.Culture = CultureInfo.CurrentUICulture;
                dayScheduler.ShowHeader = true;
                dayScheduler.ShowNavigationPane = false;
                dayScheduler.ShowViewTabs = false;
                dayScheduler.ShowDateHeaders = true;
                dayScheduler.ShowAllDayRow = false;
                dayScheduler.ShowHoursColumn = true;
                dayScheduler.ShowFooter = true;
                dayScheduler.TimelineView.HeaderDateFormat = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern;




dayScheduler.Resources.Clear();
                dayScheduler.ResourceTypes.Clear();
                dayScheduler.Appointments.Clear();

                dayScheduler.DataSource = _dayData;

                ResourceType resType = new ResourceType("Employee");

                resType.ForeignKeyField = "RowId";
                dayScheduler.ResourceTypes.Add(resType);
                dayScheduler.Font.Size = FontUnit.Small;
                
                //Build the resources
                foreach (DaySchedule dayItem in _dayData)
                {
                    Resource res = new Resource("Employee", dayItem.RowId, dayItem.EmployeeName);
                    dayScheduler.Resources.Add(res);
                }
                dayScheduler.DataBind();

                dayScheduler.SelectedView = SchedulerViewType.TimelineView;
                dayScheduler.GroupBy = "Employee";
                dayScheduler.GroupingDirection = GroupingDirection.Vertical;




0
Dimitar Milushev
Telerik team
answered on 13 Feb 2009, 05:30 PM
Hello KingPrawn,

Can you please try inserting the following script block right after the <RadScheduler> definition:

<script type="text/javascript"
    (function () { 
        var $ = $telerik.$; 
         
        $("div.rsApt").each(function() { 
            var cellSpan = parseInt($(this).css("width").replace("%","")) / 100; 
             
            var parentCell = $(this).parent().parent(); 
             
            var index = parentCell.parent().children().index(parentCell) 
             
            var endCell = $('table.rsAllDayTable td').eq(index + cellSpan); 
             
            $(this).width(endCell.offset().left - parentCell.offset().left); 
        }) 
    })();             
</script> 

This should fix the problem you are experiencing.

Greetings,
Dimitar Milushev
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
KingPrawn
Top achievements
Rank 1
answered on 16 Feb 2009, 11:42 AM
Hi Dimitar,

That works great on a post pack but when the control is re-painted from an update, say when an appointment is edited is does not run that script to align them again and they go back to the previous example.

Any ideas? 

I've placed the control in a ASP:UpdatePanel to see if I could get the control to refesh correctly but I still get the same issue of the end of the appointment no lining up.

Regards
Rob
0
Accepted
Atanas Korchev
Telerik team
answered on 18 Feb 2009, 11:43 AM
Hi KingPrawn,

In that case you can use the pageLoad routine which executes when an update panel is refreshed:

<script type="text/javascript">  
    function pageLoad() 
    { 
        (function () {  
            var $ = $telerik.$;  
              
            $("div.rsApt").each(function() {  
                var cellSpan = parseInt($(this).css("width").replace("%","")) / 100;  
                  
                var parentCell = $(this).parent().parent();  
                  
                var index = parentCell.parent().children().index(parentCell)  
                  
                var endCell = $('table.rsAllDayTable td').eq(index + cellSpan);  
                  
                $(this).width(endCell.offset().left - parentCell.offset().left);  
            })  
        })(); 
    } 
</script> 

All the best,
Albert
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
KingPrawn
Top achievements
Rank 1
answered on 20 Feb 2009, 02:08 PM
Worked a treat.  Thanks!
Tags
Scheduler
Asked by
Bloodhound
Top achievements
Rank 1
Answers by
Bloodhound
Top achievements
Rank 1
T. Tsonev
Telerik team
Trevor
Top achievements
Rank 1
Susan Budnik
Top achievements
Rank 2
Peter
Telerik team
KingPrawn
Top achievements
Rank 1
Dimitar Milushev
Telerik team
Atanas Korchev
Telerik team
Share this question
or