[GroupDAV] Evolution Connector; Calendar Selection

Helge Hess groupdav@opengroupware.org
Sat, 6 Jan 2007 21:13:39 +0100


On Jan 3, 2007, at 04:55, Shreyas Srinivasan wrote:
> Good question, I see no way in the groupdav protocol to list all the
> possible callendars which are accesible to some one. Is there anyway
> to know this?

No. A WebDAV collection can be arbitarily deep and distributed, so it  
doesn't make a lot of sense to list "all" possible calendars. (it can  
be tens of thousands for calendar providers like Yahoo).

How calendar selection works depends on the client, in Evolution 1.4  
you could browse a hierarchy of typed folders, just like in Outlook.  
So in those cases you just browse the WebDAV hierarchy 1:1 until you  
find the folder you want.

Anyways, since Evo 2.0 or so the hierarchy isn't exposed anymore, but  
just a flat collection of typed folders. The latter is also true for  
Kontact.

My proposal (for those "flat" clients) is that the GroupDAV  
configuration panel of a plugin includes a treeview which can browse  
a WebDAV server (using PROPFIND depth:1) and allows the user to  
select which folders should be displayed.
Another option is to (re)enhance Evolution to show a treeview. AFAIK  
this is what is done by the Exchange connector. The latter should be  
a good source for how to deal with the issue since Exchange also  
contains arbitary hierarchies of folders.


Chris wrote:
> You could try doing a PROPFIND with a depth of 'infinite' to search  
> the entire tree, and look at the results for objects that are  
> tagged as vevent-collection.

Please *never* do depth infinite searches. Those searches are highly  
inefficient for plenty of servers.

> I don't know if oGo or Citadel support infinite depth queries though.

I don't think that OGo supports it currently, not perfectly sure. But  
as mentioned I'm not very motivated to add it because its inherently  
wrong.

> Or you could recursively look down through the tree with depth 1  
> propfinds until you find the collections.

Yes. Though you should only do that on-demand, that is if the user  
actually expands a node in a treeview. Never traverse a full  
hierarchy automagically, it can actually have unlimited depth! (the  
[virtual] collection resources exposed by a server can very well be  
cyclic).

> GroupDAV collections (vevent-collection, vtodo-collection, vcard- 
> collection) should not be nested (from my interpretation of the  
> spec), so once you find one, you should not need to continue  
> searching within that collection for other collections.

Thats correct for CalDAV, but NOT for GroupDAV. GroupDAV collections  
can be arbitarily nested, the scope of the dataset is focused on just  
that folder (just like in Outlook/Exchange).
I can't follow why this is forbidden by CalDAV.

Thanks a lot,
   Helge
-- 
Helge Hess
http://docs.opengroupware.org/Members/helge/