Bug 417629 Import ICS file to CalDAV server fails to handle recurrence-id correctly, r=dbo

git-svn-id: svn://10.0.0.236/trunk@250966 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
browning%uwalumni.com
2008-04-30 01:16:46 +00:00
parent 3a518ac447
commit 0deef6dcba

View File

@@ -421,9 +421,7 @@ calDavCalendar.prototype = {
aItem.calendar = this.superCalendar;
aItem.generation = 1;
// LOG("icalString = " + aItem.icalString);
var httpchannel = this.prepChannel(itemUri, aItem.icalString,
var httpchannel = this.prepChannel(itemUri, this.getSerializedItem(aItem),
"text/calendar; charset=utf-8");
@@ -497,16 +495,7 @@ calDavCalendar.prototype = {
var modListener = {};
var thisCalendar = this;
var modifiedItem = getIcsService().createIcalComponent("VCALENDAR");
calSetProdidVersion(modifiedItem);
modifiedItem.addSubcomponent(aNewItem.icalComponent);
if (aNewItem.recurrenceInfo) {
var exceptions = aNewItem.recurrenceInfo.getExceptionIds({});
for each (var exc in exceptions) {
modifiedItem.addSubcomponent(aNewItem.recurrenceInfo.getExceptionFor(exc, true).icalComponent);
}
}
var modifiedItemICS = modifiedItem.serializeToICS();
var modifiedItemICS = this.getSerializedItem(aNewItem);
modListener.onStreamComplete = function(aLoader, aContext, aStatus,
aResultLength, aResult) {
@@ -1817,6 +1806,13 @@ calDavCalendar.prototype = {
return aString;
},
getSerializedItem: function caldav_getSerializedItem(aItem) {
var serializer = Components.classes["@mozilla.org/calendar/ics-serializer;1"]
.createInstance(Components.interfaces.calIIcsSerializer);
serializer.addItems([aItem], 1);
return serializer.serializeToString();
},
// stubs to keep callbacks we don't support yet from throwing errors
// we don't care about
// nsIProgressEventSink