Lab Journal: Group Collaboration

Author: Geoff Hutchison
Web Site: hutchison.chem.pitt.edu

Two of the big new features in Mac OS X Leopard Server are the new collaboration tools: iCal server, Wiki server, and a Group Directory which all integrate.

I've been waiting for these features for my new group. The wiki allows us to easily keep various bits of group information (e.g., how to run programs on the cluster, etc.). The calendar lets everyone know travel plans, group meeting times, etc.

Getting Started

First off, you must have Leopard Server. In my case, I'm running as an Open Directory Master.

Before you can do anything else, you must enable new web services in Server Admin.app

WebServices Admin

In Server Admin.app, you click on the server, then the "Web" listing. Click on the "Sites" button in the toolbar and select the site you wish to add the wiki and calendar.

Flip to the "Web Services" tab and you can enable services for Users (e.g., webmail and blogging) as well as Groups (e.g., wiki, blog, calendar, and mailing lists). By default, all users in the group can create wikis -- which is what I picked. I'll control members of the group, so I don't need to have access control over the wiki itself.

If you switch to the "Settings" button in the toolbar, you can pick the default theme template for your wiki. Naturally, as a chemist, I chose the molecular theme.

As for groups, you will also need to make sure you have created a group (e.g., in the LDAP directory) using Workgroup Manager.app

Workgroup Admin

Here the key is the popup menu "Enable the following services for this group." Pick the webserver description for your group hosting. Then pick the options you want.

Wiki Away

Once you've set up the webserver and services above, you can log into the web services. If you're using Apple's Leopard Server default web pages, it will automatically enable a link to "group" in the top, and then list groups and group wikis.

For the rest of us, you go to the URL http://example.com/groups/mygroup/ where "mygroup" is the name of your group (from Workgroup Admin).

You will be asked to log in using your username and password. For this reason, I switched to using an HTTPS server for the collaboration features.

Leopard Wiki

Here you can see the main features of the wiki service in Leopard. It offers a nice user-friendly way to edit (click on the pencil button), create new pages (the "+" button), follow recent changes to the wiki, and new events in the calendar.

Honestly, the wiki works much better than any other wiki software I've used before. It's extremely easy to use, which is what you'd expect for something from Apple.

Editing Wiki

When editing pages, you can add tags to the top of the page (for searching on the webserver), change the title of the page, and just type in the main area. I've indicated in this screen shot, that you can select some text, and then click in the little AJAX toolbar to add new links, new pages, etc.

There's even a button to attach any file you want. This will show up on the wiki as a small button to download the file. You're not limited to graphics -- so this is a great way to share input files for programs, shell scripts, really anything. It's a great feature for a group wiki, since I can add instructions on running programs and attach example files.

When you go to save the new edits, the comment field blinks to remind you to describe your changes. These keep a history log of changes to each page over time. If you try to close the window, a JavaScript will warn you if you have unsaved changes.

wiki history

When's a Good Day for You?

The related calendar server integrates extremely well into iCal 3 on the client. There's one caveat. You need to know the correct URL. Fortunately, this DIscussions thread gave the secret.

In iCal, open the Preferences dialog and click on "Accounts." Click the "+" button on the bottom to create a new server account. Enter a general description (e.g., "group calendars") and then your username and password.

iCal config

Finally, click the arrow for server options and set a manual account URL:

http://example.com:8080/principals/groups/mygroup/

Depending on your firewall, you may need to be sure this port is open. I have not had luck with Kerberos v5 or HTTPS authentication yet.

On the other hand, once you've logged in, the group calendars in iCal are great.

group iCal services

You will have a new entry in the sidebar (i.e., "Group" above). The name of this entry is the description you used in the Account Setup dialog. The sidebar will include your default group calendar. You can drag events to that calendar and iCal will automatically sync them to the server. Change the name of the calendar or the color -- it will sync to the server. You can also create new shared calendars, like "Marcus" and "Geoff" above. If you go to the "File" menu, you will see that the "New Calendar" item now offers an option to create on the server.

My group rapidly assigned new calendars. By default iCal will sync every 15 minutes, but you can manually refresh for faster turnaround (e.g., while writing this tutorial!).

One complaint: I have still had repeated problems with the web calendar server, which continues to complain about "error processing calendar data 210" any time I load it. A Discussions thread seems to indicate that some fixes can be found, but they do not seem to work for me. Suggestions would be welcome, but in the meantime, iCal is working great.

Any questions?

Comments

UPDATE: Fixed Web Calendar Problem

I figured out (and solved) the Web Calendar problem. In my case, I run all these services over HTTPS. In the iCal service entry in Server Admin, there's an option to use SSL. What I forgot to do was pick a certificate. (Strangely, the default certificate was not the default choice.)

Once I picked a certificate for HTTPS iCal, everything else works. You can use HTTPS in iCal itself, as well as the web calendar interface over HTTPS.

Personal Calendars via Web Calendar

Hi Geoff,

Good tutorial. One question... Is there a way to view personal calendars (that are published via the iCal server) on the web using Safari or another browser? I can see that you can do it with the group calendars, but it's not obvious to me if it's possible to have one created for an OD account (Workgroup Manager -> Username -> Advanced tab) appear on the web server.

Any ideas?

Dave

Slightly different URL

I think some of this is supposed to be auto-discovered if you're authenticated to an OD master. Admittedly, I haven't hooked my personal desktop up to authenticate to the head node to test that.

For anyone else, the personal user calendars is just a slightly different URL in the iCal accounts preferences.

https://example.com:8443/principals/users/dgohara/

That's it. Other programs like Sunbird, which can read .ics files can also use similar URLs (i.e., add "calendar" to the end of those paths).

So I have an iCal account for the group calendar and I have an iCal account for my personal server calendar.

Calendar issues -- all day events

Thanks for your all your comments on setting up Leopard. I changed over our lab server to Leopard and have had almost no troubles.

However, there is one weird behavior that I would like to solve/understand...

If I make an all day event in ical on a CalDAV served group calendar, it does not show up on the web calendar for that group. Single day events work find. Also, if I make an all day event on the group web calendar, it shows up as a series of individual day events in ical.

I have not been able to find anything on the web regarding this issue.

Have you seen this?

thanks

Known Bug

Yes, I've encountered this. It's a clear bug. As far as I can tell, the problem is in the web calendar, not iCal.

My suggestion is that it needs to be filed with Apple:
http://bugreport.apple.com/

It's probably also worth bringing up on one of the Apple mailing lists, but the bug reporter is the most direct way to report problems like this.