from libical changes, and a vastly improved debugging experience.
The requisite data validation is coming once I figure out how best to
get libical to do that validation in any reasonable fashion whatsoever.
- Remove METHOD from calIItemBase, as it's a bit of ICS specificity that should
live elsewhere for manipulation in calling code.
- Remove useless getAttendees/setAttendees from calIIcalComponent, now that
real property/parameter support exists.
- Unify property/x-property interfaces as much as possible.
- Likewise for parameters/x-parameters.
- Real property and parameters support, sufficient at least to whack ATTENDEE
props in interesting ways.
- Properties on calIAttendee (mapped generally to ICS parameters, though
somewhat fragilely).
- Round-trip X-WHATEVER ICS properties and params reliably.
- Attendee serialization/deserialization in calItemBase.
- In various places, SetIsVoid on empty strings returned to signify
missing property/parameters. Nicer from JS, to be sure.
- Fix test cases and one little spot in Sunbird to keep up.
CalDAV event modification works now.
the absence of integer-valued properties consistently.
- Add calIIcalComponent.INVALID_VALUE for just that purpose.
- Use the same constant values for method in calIItemBase as we use in
calIIcalComponent, for the sake of my sanity. (Tempted to just remove them
and have people who care about setting .method do it on the icalComponent
of their choice.)
- Make calIItemBase.generation unsigned, since 0 means not-stored.
- Voidify string properties returned from calICSService to indicate a missing
property.
- Don't propagate null or INVALID_VALUE props when copying to/from ICS.
- calIItemBase.generation has precisely nothing to do with ICS VERSION, so
remove the mapping.
- set prodid and version in generated ICS
- don't set empty-valued properties on the icalcomp; it makes some
parsers sad
- save the listener's "outer this" so that we find it to call the notification
methods on when adding an item is well and truly done.
Can now create events on a CalDAV server.
uri ("calendar.default-calendar.uri", only for caldav and storage types), so
we can all stop hacking createCalendar ourselves. r=dmose.
The default remains a memory-type calendar.