DayPilot Pro 4.0

Released on September 3, 2007 (build 1172).

Features

(F) DayPilot Vertical control replaced by DayPilot Scheduler

DayPilot Scheduler started as an improved alternative to DayPilot Vertical in Resources mode (it brought extended time range, date switching including time "zooming", grouped column headers, etc.). In DayPilot Pro 4.0, the Days mode was ported to DayPilot Scheduler making DayPilot Vertical obsolete. DayPilot Vertical was removed from the package (all its features are available in DayPilot Scheduler control).

(F10) All day events (DayPilot Calendar)

All day events appear in a new line that is be inserted between the days/column headers and the scrolling area.

Rendering rules:

  • If the time component of the DataStartField of DataEndField is specified it is shown in the event detail.
  • The date component of the date fields is used to determine the first and the last day of the event (event taking one day will have the same start and end date).

The start and end date values of the sample events:

Event 12:

  • start: "2007-09-03 00:00:00"
  • end: "2007-09-03 00:00:00"

Event 13:

  • start: "2007-09-03 22:36:00"
  • end: "2007-09-04 22:36:00"

All-day events API

DataAllDayField property: Specify the data source column that contains true for all-day events.

  • The following values are recognized as true (case insensitive): "1", "true", "t", "yes", "y".
  • The following values are recognized as false (case insensitive): "0", "false", "f", "no", "n".

ShowAllDayEvents property: Set to true to activate the row that shows all-day events.

AllDayEventHeight property: Set the height of the all-day event box in pixels.

Limitations

  • All-day events cannot be moved.
  • All-day events cannot be resized.
  • All-day events cannot be selected.
  • All-day events cannot be edited inline.

(F44) AJAX events refresh optimization (DayPilot Calendar & DayPilot Scheduler)

The event updating code was completely redesigned. In previous versions, fully prepared HTML code was sent from the server. This solution was convenient but not too efficient. A lot of redundant HTML code (mostly style declarations) was sent back during updates.

DayPilot Pro 4.0 uses JSON (http://www.json.org) as the data format. Only the necessary event data are sent to the client and the HTML code is rendered on the client side using JavaScript. It was a great improvement for both controls but it will be especially useful for DayPilot Scheduler that is used to show many events.

There are two kinds of AJAX updates (not including ASP.NET AJAX UpdatePanel partial PostBack):

  • Events update callback: Updates only the event data. This kind of update happens after EventClick, EventRightClick, EventMove, EventResize, EventDelete, EventMenuClick, and TimeRangeSelected event.
  • Refresh callback: Updates the event data and selected parts of the main table and its headers. This is necessary when switching the date (StartDate property) and visible time range (Days property).

Events update callback
Callback HTTP response Content-Length (in bytes) after event moving at http://www.daypilot.org/demo/Calendar/  and http://www.daypilot.org/demo/Scheduler/.

Version 3.9 Version 4.0 Improvement
DayPilot Calendar 23,744 B 12,806 B -46%
DayPilot Scheduler 17,666 B 11,457 B -35%


Refresh callback
Callback HTTP response Content-Length (in bytes) after zooming at http://www.daypilot.org/demo/Scheduler/ and after "Next week" click at http://www.daypilot.org/demo/Calendar/.

Version 3.9 Version 4.0 Improvement
DayPilot Calendar 29,145 B 14,490 B -50%
DayPilot Scheduler 36,419 B 28,997 B -20%

(F46) Days property changing using AJAX/Refresh event (DayPilot Calendar)

The refreshCallBack() client-side method was extended to support changing the Days property as well (in addition to StartDate).

DayPilotCalendar.Calendar.refreshCallBack(start, days)

start parameter accepts:

  • null (the current StartDate is passed to the server-side event handler)
  • Date object (that date is passed to the server-side event handler)
  • integer (current StartDate changed by the specified number of days is passed to the server-side event handler)

days parameter accepts:

  • null (the current Days value is passed to the server-side event handler)
  • integer (the specified number is passed to the server-side event handler)

Examples:

  • dpc1.refreshCallBack(7); // moves the view one week forward
  • dpc1.refreshCallBack(-7); // moves the view one week backward
  • dpc1.refreshCallBack(null, 1); // switches to Day view (without changing the StartDate)
  • dpc1.refreshCallBack(new Date(), 7); // switched StartDate to today and Days to 7

Fixes

  • Half days (CellDuration="720") colored by work day and not by work hour in DayPilotScheduler (IsBusiness).
  • Time selection context menu (Hold) is working for a single cell.
  • Right click on a time cell activates context menu (when handling set to Hold).

API changes

DayPilot Scheduler

  • EventLeftBarColor property renamed to DurationBarColor.

DayPilot Calendar

  • EventLeftBarColor property renamed to DurationBarColor.
  • EventLeftBarVisible property renamed to DurationBarVisible.

Common

  • BeforeEventRenderEventArgs.EventLeftBarColor property renamed to DurationBarColor.