diff --git a/docs/website/clients.php b/docs/website/clients.php index c404fa31..4ae15b49 100644 --- a/docs/website/clients.php +++ b/docs/website/clients.php @@ -1,96 +1,64 @@ -

Evolution

-

Novell Evolution is available in most Linux distributions. The CalDAV support was supposedly written -in a frenzy of hacking one day when the draft specification was at around revision 8. As a result there -was little in the way of a repository available to test against until recently.

-
    -
  1. Type:CalDAV
  2. -
  3. Name:Give the calendar a local name
  4. -
  5. URL:caldav://server.domain.name/caldav.php/$username/
  6. -
  7. Use SSL:if your server is using SSL you should check this, but there may be bugs in Evolution's handling of SSL.
  8. -
  9. Username:$username
  10. -
-

If you have problems with Evolution, you will need to quit evolution, remove the cache file which will be in ~/.evolution/cache/calendar/ and -restart. If you still have problems try doing that, but killing evolution-data-server in addition. -

-

Sometimes evolution writes error messages into the cache file, so if you have ongoing problems you may want to -take a look inside that.

-

There are some quirks with Evolution's handling of CalDAV too, so perhaps take a look at the following -bugs:

- -

Hopefully those will be fixed before too long...

+ $title = "Client Configuration"; + $two_panes = true; + include("inc/page-header.php"); -

Sunbird / Lightning (Mozilla Calendar)

-

The Mozilla calendar project offers their calendar under two different names: Sunbird is a standalone calendar -application, and Lightning is a Thunderbird extension. The two are essentially the same, as far as RSCDS is -concerned, and these instructions should work for either of them.

-
    -
  1. Select "New Calendar" from the "File" menu.
  2. -
  3. Choose "On the Network" (click "Next")
  4. -
  5. Choose a format of "CalDAV" and enter a URL like: "http://calendar.example.net/caldav.php/username/" (click "Next")
  6. -
  7. Give the calendar an appropriate display name, and choose a colour for events on this calendar. (click "Next")
  8. -
  9. click "Finish"
  10. -
-

At version 0.3 the Mozilla calendar does not automatically refresh the calendar view, so if someone else has -added a meeting you will have to manually refresh the view to see that.

-

It is early days yet for the Mozilla calendar in it's current incarnation so no doubt there are other quirks -with Mozilla's handling of CalDAV too, so perhaps take a look at their bugzilla.

-

As at version 0.3, you should be aware of this bug with empty CalDAV calendars which can be -confusing. Add your calendar, create an event and then re-start the program before saying that things -are not working!

+ $dir = "clients"; + $clients = array(); + $screenshots = array(); + $icons = array(); + $details = array(); + if ( is_dir($dir)) { + if ( $dh = opendir($dir) ) { + while (($file = readdir($dh)) !== false ) { + if ( preg_match( '#^([^/]+)-([^/-]+)\.([^/.-]+[^~])$#', $file, $matches ) ) { + switch ( $matches[2] ) { + case 'details': + $details[$matches[1]] = $file; + $clients[] = $matches[1]; + break; -

Mulberry

-

Mulberry is the most well-behaved of the applications I have been able to use. It does have some -bugs, however, and a particular annoyance around it's use of non-standard names for time zones. Mulberry -is the only client I have used so far which can issue a MKCALENDAR command or which will display a -hierarchy of calendars from one configured URL.

-
    -
  1. Select "Preferences" from the "File" menu.
  2. -
  3. Choose the "Accounts" tab
  4. -
  5. Select "New" from the "Account" drop-down and a "Create New Account" dialog will appear.
  6. -
  7. Enter a name for the account, choose "CalDAV Calendar" for the type and click "OK"
  8. -
  9. In the "Server" field enter the domain name of your CalDAV server, such as "calendar.example.net"
  10. -
  11. In the "Authentication" pane of the "Accounts" tab, enter your username.
  12. -
  13. In the "Options" pane of the "Accounts" tab, enter the path, which should be "/caldav.php/"
  14. -
  15. "OK" the preferences dialog
  16. -
  17. A list of the users and resources which you are allowed to access should appear. Some may contain calendars.
  18. -
  19. If you don't already have a calendar for your own user, ensure your username is highlighted and choose "Create" from the "Calendar" menu.
  20. -
  21. Once you have a calendar created, you need to subscribe to it. One way is to right-click on it and choose 'Subscribe'.
  22. -
+ case 'icon': $icons[$matches[1]] = $file; break; + case 'screenshot': $screenshots[$matches[1]] = $file; break; -

Unfortunately Mulberry is not open-source, though it is free, so we must wait on the developer to fix -the user interface niggles when he gets around to it.

-

Note that Mulberry has a complex user interface. When I wrote this I went back into Mulberry and initially thought that RSCDS had regressed -somewhat and that these instructions didn't exactly work... :-) It turned out that these instructions worked just fine when I followed -them to the letter the next day. Go figure. I think I need to record some screenshots of this one...

+ default: + break; + } + } + } + closedir($dh); + } + } -

Cross-client Interoperability Considerations

-

If you intend to have users accessing the Really Simple CalDAV Store with more than one client -then you should attempt to structure the URLs which they use to access the system in the way -that Mulberry does it.

-

Basically, Mulberry breaks the URL into three parts:

- -

The host name is, of course, up to you. The 'root path' should be /caldav.php/ and anything following that is the calendar namespace.

-

Within the calendar namespace RSCDS uses the first element of the path as the user or resource name, so that a client connecting at the root path -can see all of the (accessible) users and resources available to them (Mulberry displays this hierarchy) with any calendars below that.

-

Effectively this means that in Evolution, Sunbird and Lightning you should really specify a calendar URL which is something like:

-
-caldav://calendar.example.net/caldav.php/username/home/
-
-

Then, when more calendar client software sees it as useful to be able to browse that hierarchy, you won't be up for any heavy database manipulation.

-

I may well enforce this standard in some way before release 1.0, as well as auto-creating the collection records when Evolution, Lightning -or Sunbird attempt to store to a non-existent collection.

+ $client_page = "Interoperability"; + if ( isset( $_GET['client'] ) ) { + if ( isset( $details[$_GET['client']] ) ) { + $client_page = $_GET['client']; + } + } -Interoperability

', $style ); + + sort($clients); + foreach( $clients AS $k => $v ) { + if ( $v == "Interoperability" ) continue; + $style = (strcmp($client_page,$v) == 0 ? ' class="selected"' : '' ); + printf( '', $style, urlencode($v) ); + if ( isset($icons[$v]) ) { + printf( '
', urlencode($icons[$v]) ); + } + echo "$v

\n"; + } + + include("inc/page-middle.php"); + + include("clients/".$details[$client_page]); + + if ( isset($screenshots[$client_page]) ) { + printf( '

', urlencode($screenshots[$client_page]) ); + $tags_to_be_closed = "\n"; + } + + include("inc/page-footer.php"); ?> \ No newline at end of file diff --git a/docs/website/clients/Chandler-details.php b/docs/website/clients/Chandler-details.php new file mode 100644 index 00000000..9f2913dc --- /dev/null +++ b/docs/website/clients/Chandler-details.php @@ -0,0 +1,24 @@ +

Chandler

+

The Open Source Applications Foundation are developing Cosmo, which is a CalDAV server +written in Java and Chandler, which is a CalDAV capable mail and calendaring application +written in Python.

+

Basic setup is as follows:

+
    +
  1. Select "Subscribe" from the "Collection" menu.
  2. +
  3. Enter a URL like: "http://calendar.example.net/caldav.php/username/home/" (click "Subscribe")
     
  4. +
  5. You will then be prompted for a username/password with in an expanded dialog. Enter these and click "Subscribe" again.
     
  6. +
  7. You should now have a new calendar showing.
  8. +
+

Caveats

+

At version 0.7alpha3 the calendar is subscribed and displayed, but the 'displayname' property +which the server sends is not used and the calendar is displayed with a blank name. Double-click +on your new calendar and enter a name in the space available.

+ +

Chandler describes itself as 'an experimentally usable calendar', and it certainly feels that +way. It also will only synchronise to the CalDAV server either when you press the "Sync" +button or with a default frequency of hourly. This is quite different to the other clients I +have used which all aggressively push new and changed items to the server as soon as possible, +but which may be lazy about fetching updates.

+ +

Operation with RSCDS is not yet perfect but basic operation is satisfactory. I will be +concentrating on making RSCDS interoperate with Chandler over coming releases.

diff --git a/docs/website/clients/Chandler-dialog1.png b/docs/website/clients/Chandler-dialog1.png new file mode 100644 index 00000000..c9b81778 Binary files /dev/null and b/docs/website/clients/Chandler-dialog1.png differ diff --git a/docs/website/clients/Chandler-dialog2.png b/docs/website/clients/Chandler-dialog2.png new file mode 100644 index 00000000..85a97786 Binary files /dev/null and b/docs/website/clients/Chandler-dialog2.png differ diff --git a/docs/website/clients/Chandler-dialog3.png b/docs/website/clients/Chandler-dialog3.png new file mode 100644 index 00000000..c7132774 Binary files /dev/null and b/docs/website/clients/Chandler-dialog3.png differ diff --git a/docs/website/clients/Chandler-icon.png b/docs/website/clients/Chandler-icon.png new file mode 100644 index 00000000..689fa67f Binary files /dev/null and b/docs/website/clients/Chandler-icon.png differ diff --git a/docs/website/clients/Chandler-screenshot.png b/docs/website/clients/Chandler-screenshot.png new file mode 100644 index 00000000..3bc9c11f Binary files /dev/null and b/docs/website/clients/Chandler-screenshot.png differ diff --git a/docs/website/clients/Evolution-details.php b/docs/website/clients/Evolution-details.php new file mode 100644 index 00000000..992d3412 --- /dev/null +++ b/docs/website/clients/Evolution-details.php @@ -0,0 +1,23 @@ +

Evolution

+

Evolution is available in most Linux distributions. The CalDAV support was supposedly written +in a frenzy of hacking one day when the draft specification was at around revision 8. As a result there +was little in the way of a repository available to test against until recently.

+ +
    +
  1. Select "File" then "New" then "Calendar" from the menus.
  2. +
  3. Choose a type of "CalDAV", enter a name, and a URL such as caldav://server.domain.name/caldav.php/username/home/, enter your user name for RSCDS and click "OK".
     
  4. +
  5. You should now be prompted for a password for that username. Enter the password and your calendar should now show.
  6. +
+

If you have problems with Evolution, you will need to quit evolution, remove the cache file which will be in ~/.evolution/cache/calendar/ and +restart. If you still have problems try doing that, but killing evolution-data-server in addition. +

+

Sometimes evolution writes error messages into the cache file, so if you have ongoing problems you may want to +take a look inside that.

+

There are some quirks with Evolution's handling of CalDAV too, so perhaps take a look at the following +bugs:

+ +

There may also be bugs in Evolution's handling of SSL with CalDAV - I couldn't get it to work reliably.

+

Hopefully those will be fixed before too long...

diff --git a/docs/website/clients/Evolution-dialog1.png b/docs/website/clients/Evolution-dialog1.png new file mode 100644 index 00000000..66be50a0 Binary files /dev/null and b/docs/website/clients/Evolution-dialog1.png differ diff --git a/docs/website/clients/Evolution-icon.png b/docs/website/clients/Evolution-icon.png new file mode 100644 index 00000000..1c045b96 Binary files /dev/null and b/docs/website/clients/Evolution-icon.png differ diff --git a/docs/website/clients/Evolution-screenshot.png b/docs/website/clients/Evolution-screenshot.png new file mode 100644 index 00000000..1db09cbf Binary files /dev/null and b/docs/website/clients/Evolution-screenshot.png differ diff --git a/docs/website/clients/Interoperability-details.php b/docs/website/clients/Interoperability-details.php new file mode 100644 index 00000000..45084b95 --- /dev/null +++ b/docs/website/clients/Interoperability-details.php @@ -0,0 +1,20 @@ +

Cross-client Interoperability Considerations

+

If you intend to have users accessing the Really Simple CalDAV Store with more than one client +then you should attempt to structure the URLs which they use to access the system in the way +that Mulberry does it.

+

Basically, Mulberry breaks the URL into three parts:

+ +

The host name is, of course, up to you. The 'root path' should be /caldav.php/ and anything following that is the calendar namespace.

+

Within the calendar namespace RSCDS uses the first element of the path as the user or resource name, so that a client connecting at the root path +can see all of the (accessible) users and resources available to them (Mulberry displays this hierarchy) with any calendars below that.

+

Effectively this means that in Evolution, Sunbird and Lightning you should really specify a calendar URL which is something like:

+
+caldav://calendar.example.net/caldav.php/username/home/
+
+

Then, when more calendar client software sees it as useful to be able to browse that hierarchy, you won't be up for any heavy database manipulation.

+

I may well enforce this standard in some way before release 1.0, as well as auto-creating the collection records when Evolution, Lightning +or Sunbird attempt to store to a non-existent collection.

diff --git a/docs/website/clients/Mozilla-details.php b/docs/website/clients/Mozilla-details.php new file mode 100644 index 00000000..1280f287 --- /dev/null +++ b/docs/website/clients/Mozilla-details.php @@ -0,0 +1,21 @@ +

Sunbird / Lightning (Mozilla Calendar)

+

The Mozilla Calendar project offers their calendar under two different names: + Sunbird is a standalone calendar + application, and Lightning is a Thunderbird extension. + The two are essentially the same, as far as RSCDS is + concerned, and these instructions should work for either of them.

+
    +
  1. Select "New Calendar" from the "File" menu.
  2. +
  3. Choose "On the Network" (click "Next")
     
  4. +
  5. Choose a format of "CalDAV" and enter a URL like: "http://calendar.example.net/caldav.php/username/" (click "Next")
     
  6. +
  7. Give the calendar an appropriate display name, and choose a colour for events on this calendar. (click "Next")
     
  8. +
  9. click "Finish"
  10. +
+

Caveats

+

At version 0.3 the Mozilla calendar does not automatically refresh the calendar view, so if someone else has +added a meeting you will have to manually refresh the view to see that.

+

It is early days yet for the Mozilla calendar in it's current incarnation so no doubt there are other quirks +with Mozilla's handling of CalDAV too, so perhaps take a look at their bugzilla.

+

As at version 0.3, you should be aware of this bug with empty CalDAV calendars which can be +confusing. Add your calendar, create an event and then re-start the program before saying that things +are not working!

diff --git a/docs/website/clients/Mozilla-dialog1.png b/docs/website/clients/Mozilla-dialog1.png new file mode 100644 index 00000000..cc47d944 Binary files /dev/null and b/docs/website/clients/Mozilla-dialog1.png differ diff --git a/docs/website/clients/Mozilla-dialog2.png b/docs/website/clients/Mozilla-dialog2.png new file mode 100644 index 00000000..679a916c Binary files /dev/null and b/docs/website/clients/Mozilla-dialog2.png differ diff --git a/docs/website/clients/Mozilla-dialog3.png b/docs/website/clients/Mozilla-dialog3.png new file mode 100644 index 00000000..c1fd1ee2 Binary files /dev/null and b/docs/website/clients/Mozilla-dialog3.png differ diff --git a/docs/website/clients/Mozilla-icon.png b/docs/website/clients/Mozilla-icon.png new file mode 100644 index 00000000..6c498871 Binary files /dev/null and b/docs/website/clients/Mozilla-icon.png differ diff --git a/docs/website/clients/Mozilla-screenshot.png b/docs/website/clients/Mozilla-screenshot.png new file mode 100644 index 00000000..cd370858 Binary files /dev/null and b/docs/website/clients/Mozilla-screenshot.png differ diff --git a/docs/website/clients/Mulberry-details.php b/docs/website/clients/Mulberry-details.php new file mode 100644 index 00000000..3da57e17 --- /dev/null +++ b/docs/website/clients/Mulberry-details.php @@ -0,0 +1,29 @@ +

Mulberry

+

Mulberry is the most well-behaved of the applications I have been +able to use. It does have some bugs, however, and a particular annoyance around it's use of non-standard names +for time zones. Mulberry is the only client I have used so far which can issue a MKCALENDAR command or which +will display a hierarchy of calendars from a single configured URL, dicovering the calendars through recursive +PROPFIND requests.

+ +
    +
  1. Select "Preferences" from the "File" menu.
  2. +
  3. Choose the "Accounts" tab
  4. +
  5. Select "New" from the "Account" drop-down and a "Create New Account" dialog will appear.
  6. +
  7. Enter a name for the account, choose "CalDAV Calendar" for the type and click "OK"
  8. +
  9. In the "Server" field enter the domain name of your CalDAV server, such as "calendar.example.net"
  10. +
  11. In the "Authentication" pane of the "Accounts" tab, enter your username.
     
  12. +
  13. In the "Options" pane of the "Accounts" tab, enter the path, which should be "/caldav.php/"
     
  14. +
  15. "OK" the preferences dialog
  16. +
  17. A list of the users and resources which you are allowed to access should appear. Some may contain calendars.
  18. +
  19. If you don't already have a calendar for your own user, ensure your username is highlighted and choose "Create" from the "Calendar" menu.
  20. +
  21. Once you have a calendar created, you need to subscribe to it. One way is to right-click on it and choose 'Subscribe'.
  22. +
+ +

Caveats

+

Unfortunately Mulberry is not (yet) open-source, though it is free, so we must wait on the developer to fix +the user interface niggles when he gets around to it.

+

Note that Mulberry has a complex user interface. When I wrote this I went back into Mulberry and initially +thought that RSCDS had regressed somewhat and that these instructions didn't exactly work... :-) It turned out +that these instructions worked just fine when I followed them to the letter the next day. Go figure. +I think I need to record some screenshots of this one...

+ diff --git a/docs/website/clients/Mulberry-dialog1.png b/docs/website/clients/Mulberry-dialog1.png new file mode 100644 index 00000000..32004b2c Binary files /dev/null and b/docs/website/clients/Mulberry-dialog1.png differ diff --git a/docs/website/clients/Mulberry-dialog2.png b/docs/website/clients/Mulberry-dialog2.png new file mode 100644 index 00000000..0c9c2088 Binary files /dev/null and b/docs/website/clients/Mulberry-dialog2.png differ diff --git a/docs/website/clients/Mulberry-icon.png b/docs/website/clients/Mulberry-icon.png new file mode 100644 index 00000000..4aa74d04 Binary files /dev/null and b/docs/website/clients/Mulberry-icon.png differ diff --git a/docs/website/clients/Mulberry-screenshot.png b/docs/website/clients/Mulberry-screenshot.png new file mode 100644 index 00000000..0a4e0211 Binary files /dev/null and b/docs/website/clients/Mulberry-screenshot.png differ diff --git a/docs/website/inc/page-footer.php b/docs/website/inc/page-footer.php index b2463703..28722b45 100644 --- a/docs/website/inc/page-footer.php +++ b/docs/website/inc/page-footer.php @@ -1,4 +1,8 @@ - +
+\n"; + if ( $two_panes ) { + $tags_to_be_closed .= $tags_to_be_closed; + echo '
'; + } +?>
diff --git a/docs/website/inc/page-middle.php b/docs/website/inc/page-middle.php new file mode 100644 index 00000000..54e519db --- /dev/null +++ b/docs/website/inc/page-middle.php @@ -0,0 +1,3 @@ +
+
+
diff --git a/docs/website/style.css b/docs/website/style.css index 365229c4..aacdf9c1 100644 --- a/docs/website/style.css +++ b/docs/website/style.css @@ -42,6 +42,7 @@ hr { font-size: 80%; padding-top: 64px; padding-right: 5px; + display:block; } .hlink:link { @@ -122,6 +123,7 @@ li { margin-left: 2em; font-family: helvetica, arial, sans-serif; font-size: 90%; + margin-bottom: 5px; } code { @@ -150,10 +152,9 @@ pre { float: left; color: #FFFFFF; padding-left: 100px; - margin-top: 10px; + margin-top: 1px; font-family: helvetica, arial, sans-serif; - font-size: 24pt; - font-size: 200%; + font-size: 190%; } #subTitle { @@ -163,8 +164,8 @@ pre { padding-left: 102px; font-family: helvetica, arial, sans-serif; font-size: 8pt; - font-size: 80%; - } + font-size: 75%; +} .right { float: right; @@ -217,3 +218,35 @@ pre { width: 4em; } +#leftSide { + width: 170px; + float: left; +} + +#leftSide p { + text-align: center; + margin-bottom: 1em; + padding:0.3em 0; + font-weight: bold; + background-color: #d2d2d2; +} + +#leftSide p.selected { + background-color: #bb1f1f; + color: white; +} + +#leftSide img { + border: none; +} + +#leftSide a { + text-decoration: none; + color: inherit; +} + +#rightSide { + width: 530px; + float: right; +} + diff --git a/rscds.webprj b/rscds.webprj index c2fb1066..2d9894fd 100644 --- a/rscds.webprj +++ b/rscds.webprj @@ -147,5 +147,12 @@ + + + + + + +