I'm currently using SmartClient_SC_SNAPSHOT-2010-12-27 but have also tried this with SmartClient_70rc2_LGPL. My problem is with a data source that communicates with a server in XML to store and retrieve dates for a Calendar. I can add the initial date and it posts to the server and retrieves and displays it again without any issues. When I add the second calendar entry, the blue box that represents the calendar event shows in the upper left of the calendar with "Untitled Window". If I refresh the page, both entries are retrieved from the server and it shows up ok. I don't see any errors in firebugs error console or in the SmartClient developer console.
This is my datasource and calendar:
any ideas what the problem could be?
This is my datasource and calendar:
Code:
isc.DataSource.create({
ID: "customerCalendarDS",
recordXPath:"//com.dsailer.domain.calendar.Event",
tagName:"com.dsailer.domain.calendar.Event",
fields:[
{name:"id", primaryKey: true, type: "sequence"},
{name:"name"},
{name:"description"},
{name:"startDate", type: "datetime", valueXPath: "timeInterval/start"},
{name:"endDate", type: "datetime", valueXPath: "timeInterval/end"}
],
operationBindings:[
{operationType:"fetch", dataProtocol: "getParams", dataURL:"events"},
{operationType:"add", dataProtocol: "postXML", dataURL:"events"},
{operationType:"update", dataProtocol: "postXML", dataURL:"events", requestProperties:{httpMethod:"PUT"}},
{operationType:"remove", dataProtocol: "postParams", dataURL:"events", requestProperties:{httpMethod:"DELETE"}}
],
transformRequest : function (dsRequest) {
var data = this.Super('transformRequest', arguments);
//What the server wants for an "interval" is something like:
// <timeInterval>
// <start>xxxx</start>
// <end>xxxx</end>
// </timeInterval>
if (dsRequest.operationType == "add" || dsRequest.operationType == "update") {
//save our dates
var startStr = data["startDate"].toXStreamString();
var endStr = data["endDate"].toXStreamString();
//delete them from the data
delete data.startDate;
delete data.endDate;
//add back the format we want
data.timeInterval = {};
data.timeInterval.start = startStr;
data.timeInterval.end = endStr;
}
else if(dsRequest.operationType == "remove"){
//instead of passing an id=2 param just pass /2
//NOT WORKING...
dsRequest.actionURL = data["id"];
}
return data;
}
});
isc.Calendar.create({
ID: "customerCalendar",
width : "50%",
showResizeBar: "true",
minWidth: "400",
dataSource: customerCalendarDS,
autoFetchData: true,
dateChanged : function () {
customerCalendarDS.fetchData({startDate:this.chosenDate});
}
});
any ideas what the problem could be?
Comment