onEventLoad in Timeline View is stuck in infinite loop


I am stuck with Timeline View. I have an onEventLoad function which works fine when in day, week or month view but when I change it to timeline View then it goes into infinite loop. It loads all events and then clears everything and then loads all events again. I am not sure what is causing this as I have tried commenting out portions of my code to see if anything in my code is causing the problem.

Here is what my code looks like for timeline view:

		name:	"timeline",
		x_unit:	"minute",
		x_date:	"%H:%i",
		x_step:	30,
		x_size: 24,
		x_start: 16,
		x_length: 48,
		y_unit:	provideroptions,
		y_property:	"provider",

scheduler.locale.labels.timeline_tab = "Provider"

Is there anything which I am missing. I also tried to change it to Unit View but then I am getting the error as follows:

Original error: d is undefined
Exception error: srcLine is undefined.

The other problem with Unit view is that the blockTime for Sunday in Week view also appears in the Unit View in the fifth column and thus cannot create event for it. How can I stop this as Unit view is not a week view but a day view and only that particular day should be blocked.

Waiting for your earliest reply.


Is there anything which I am missing
Configuration is valid
what is the code in onEventLoad and are you using some other event handlers?
Also, are you using the dyn. loading mode ?

The other problem with Unit view is that the blockTime for Sunday in Week view also appears in the Unit View

Try to update the limit extension with the next js file … own_issues

I suffered the same error, d is undefined using dhtmlcScheduler ( scheduler ) in Units View. The demo dhtmlxScheduler/samples/03_extensions/02_units_view.html worked correctly on my server.

First, I tried to break the demo by adding bits of my code to in, starting with the same set of Javascript includes from my app to the demo. Did not break it. A few more steps on this path and it became increasingly difficult to replicate what I was doing in the (modified) demo.

Then, I tried going the other way. The first thing I did was comment out just about all of the configuration of the scheduler before init() . Hey! No more error. Then I used a binary search to determine which of the ~20 config parameters might be breaking. (Yes, I know a simply binary search is inadequate when there are multiple settings necessary for the error. I only needed to identify one sufficient for the error and take that one out.) The culprit: scheduler.config.mark_now . With that set to false my app ran. When true my app failed in Units View, consistently.

This parameter is not, on its own, sufficient to make the app fail with d is undefined in dhtmlxscheduler_unit.js . Below, I list the set of config parameters used. My total file is >400lines so I’m not including that. But perhaps this bit of info will help someone else, just as the predecessor to this comment got me thinking differently about the problem.

To keep the mark_now red line, I added an event handler to onBeforeViewChange to the scheduler, that examines the target view and sets mark_now to false if the target is “unit” . (It’s not well documented that the handler must return true in order for the view change to proceed.)

Finally, I’d like to thank everyone that has contributed to DHTMLX: what an amazing tool! You provide a phenomenal amount of documentation. One wish: allow users to add comments to the documentation. I’ve spent a couple weeks learning your product and there are things that I would have liked clarified. I now know these tidbits but do not have a good mechanism for sharing.

scheduler.config.mark_now = true; // indicate the current time with a dotted red line in "day" mode

scheduler.config.show_loading = true; // progress bar when dynamically loading data
scheduler.config.drag_resize = true; // change event duration by dragging
scheduler.config.drag_move = true; // change event start time by dragging
scheduler.config.drag_create = true; // create an event by dragging one out
scheduler.config.dblclick_create = false; // double-click also creates an event

scheduler.config.edit_on_create = true; // edit event info on creation
scheduler.config.details_on_create  = true; // edit event details on creation
scheduler.config.update_render = true; // smoother but higher CPU usage
scheduler.config.multi_day = true; // support multi-day events
scheduler.config.event_duration = 60; // default event duration 60min
scheduler.config.auto_end_date = true; // changing the start time of an event also changes the end time to preserve duration

// Cascading Event Display
scheduler.config.cascade_event_display = true; // to enable cascade rendering
scheduler.config.cascade_event_count = 4; // how many levels (maximum) should be used
scheduler.config.cascade_event_margin = 30; // margin in px between levels

scheduler.locale.labels.map_tab = "Map"; // name of the map tab
scheduler.locale.labels.section_location = "Location"; // name of the location section in lightbox
scheduler.locale.labels.marker_geo_success = "It seems you are here."; // message in info window in case of successful geolocation response
scheduler.locale.labels.marker_geo_fail = "Sorry, could not get your position using geolocation."; // message in info window in case of unsuccessful geolocation response

scheduler.config.map_resolve_user_location = true;
scheduler.config.map_initial_position = new google.maps.LatLng(33.100025, -96.805901);

scheduler.config.map_inital_zoom = 12;
scheduler.config.map_zoom_after_resolve = 15;

scheduler.config.xml_date="%Y-%m-%d %H:%i";