Hi there,
I'm using data binding on the kendo scheduler to call out to our server for reading/creating/updating/destroying events. The only transport url have currently implemented is read, the others just return 404, although I have given paths for them in the scheduler.
I'm currently trying to implement the create event functionality but I'm finding the behaviour of the scheduler erratic.
* When I double click a time-slot to create a new event and just press 'save' without modifying any fields the event is added to the scheduler with no corresponding API call.
* After that, if click again to add a new event (different time slot) and then change the title and press 'save', it calls my 'update' API call (which fails with a 404).
* Lastly, repeating the same thing again (same time slot) results in the scheduler calling my 'create' API call, which is what I would have expected it to do in every case.
Here is the js I'm using to configure the scheduler:
I'd appreciate some advice! :)
Cheers, Paul.
I'm using data binding on the kendo scheduler to call out to our server for reading/creating/updating/destroying events. The only transport url have currently implemented is read, the others just return 404, although I have given paths for them in the scheduler.
I'm currently trying to implement the create event functionality but I'm finding the behaviour of the scheduler erratic.
* When I double click a time-slot to create a new event and just press 'save' without modifying any fields the event is added to the scheduler with no corresponding API call.
* After that, if click again to add a new event (different time slot) and then change the title and press 'save', it calls my 'update' API call (which fails with a 404).
* Lastly, repeating the same thing again (same time slot) results in the scheduler calling my 'create' API call, which is what I would have expected it to do in every case.
Here is the js I'm using to configure the scheduler:
$("#scheduler").kendoScheduler({ date: new Date("2014-07-17"), dataSource: { batch: true, // Enable batch updates transport: { read: { url: "/appointments/get", dataType: "json", type: "POST", contentType: "application/x-www-form-urlencoded", }, create: { url: "/appointments/create", dataType: "json", type: "POST", contentType: "application/x-www-form-urlencoded", }, update: { url: "/appointments/uodate", dataType: "json", type: "POST", contentType: "application/x-www-form-urlencoded", }, destroy: { url: "/appointments/create", dataType: "json", type: "POST", contentType: "application/x-www-form-urlencoded", }, parameterMap: function (options, operation) { if (operation === "read") { // make sure we send the start and end date to the server in unix time, and urlencode them var scheduler = $("#scheduler").data("kendoScheduler"); var startDate = DateToUnixTime(scheduler.view().startDate()); var endDate = DateToUnixTime(scheduler.view().endDate()); // if start and end are the same, bump end by 24 hours if (endDate === startDate) { endDate += gPageConstants.kSecondsIn24h; } var result = {start_time:startDate, end_time:endDate}; return $.param(result); } else if (operation === "create") { console.log(options); } else { return $.param(options); } } }, schema: { model: { id: "uid", // The "id" of the event is the "taskId" field fields: { // Describe the scheduler event fields and map them to the fields returned by the remote service taskId: { from: "uid", // The 'TaskID' server-side field is mapped to the 'taskId' client-side field type: "number" }, start: { type: "date", from: "start" }, end: { type: "date", from: "end" }, title: { from: "notes", defaultValue: "No title", validation: { required: true } }, description: { from: "Description", defaultValue: "No description" }, recurrenceId: { from: "RecurrenceID", defaultValue: null }, recurrenceRule: { from: "RecurrenceRule", defaultValue: null }, recurrenceException: { from: "RecurrenceException", defaultValue: null }, isAllDay: { type: "boolean", from: "IsAllDay", defaultValue: false } } } } } });I'd appreciate some advice! :)
Cheers, Paul.