Full Calendar Plugin

Web 2.0 calendar app

Adam Shaw has produced a great Web 2.0 Calendar UI, the jQuery FullCalendar Plugin. This Foswiki plugin provides the backend calendar management code and the js/html interface ontop of the calendar UI for the creation and editing of calendar events.

Features

As well as one-off events, repeating events can be created - daily, weekly, monthly, yearly, every n, every dow, until end-date or no end-date. And exceptions can be created in repeating events.


The FULLCALENDAR macro

You can have multiple calendars per page and the macro can be called with or without parameters.
Parameter Description Default
"..." or calendartopic="..." Optional. This is the topic where created events will be stored and where they will be searched for when displaying events. The format is "[<web>.]<topic>". WebCalendar
reltopic="..." Optional. All objects managed by the ObjectPlugin can have a reltopic parameter that points to a related <web>.<topic>, this is so that a single topic can act as the cache for all objects with the aim of helping performance. The FullCalendarPlugin uses this feature. If the current topic matches the specification of the calendartopic, then there is no specified reltopic. Else, reltopic is the current topic.
viewall="..." Optional. 1 or 0. Depending on the setting of reltopic, all events stored in the calendartopic can be viewed or just the ones that match the reltopic setting.  

The Calendar Event Object

The event attributes are defined in the EventObject topic. The default definition is in the %SYSTEMWEB%, but can be overridden by a new EventObject in the %USERSWEB% and finally by one defined in the current web.

Creating and Editing Calendar Events

Just click on a day in the calendar to create a new event via the input form. Click on an existing event to edit its properties via the input form. If the selected event is part of a repeating sequence, the options are to:
  • Change this instance only (Create a new event)
  • Change all instances (Update the original event record)
  • Change all instances from this point onwards (Create a new event record)

Note that all newly created events will be done so with the matching reltopic setting.

Other Event Sources

All Foswiki Macros defined in the calendartopic topic are expanded. If they produce suitably formatted event records, these are then included in the displayed event set. Note that a dynamic search could have a significant impact on performance when browsing the calendar. The format should be as follows:
%OBJECT{...}%<description>%ENDOBJECT%
Parameter Description
type="event" Required to be recognised as an event object.
uid="..." Required. A unique ID of the event or event group.
category="external" Required as these events will not be editable.
allDay="..." Required. 0 or 1. All day event or not.
durationDays="..." Required. The number of days the event lasts for. Starts at 0.
startDate="..." Required. ISO8601 date format, YYYY-MM-DD.
startTime="..." Required. ISO8601 time format, HH:MM:SS.
endTime="..." Required. ISO8601 time format, HH:MM:SS.
title="..." Required.
url="..." Optional. A URL to launch in a new tab/window if the event is clicked on the calendar.
eventSource="..." Optional. A text string defining the source of the event.

Customisation

The EventObject and FullCalendarEventTemplate topics are provided as the default installation. View WebCalendar to see the result. As indicated above, you can create your own EventObject with attributes relevant to your installation and in UserFullCalEventTemplate? you can customise the userFormElements TMPL to match your new event object.

ALERT! Note, the default FullCalendarEventTemplate expects the %USERGROUP% variable to be set to a Group topic that gets parsed to provide a multi-select list of attendees. You can, off course, change this to be a free text field with auto-complete.

Future Improvements

Integration with ActionTrackerPlugin?

This feature is already coded but currently commented out because it should be configurable via configure .

Multiple event edit forms per page/web

Currently only one event form is ever loaded per page so if you load different calendars from different webs (which can have different edit forms) it's first come, first served.

User Specific Calendars

Each user can have their own calendar on which they can view the events of other calendars they are subscribed to.

Agenda List View

The events displayed on the calendar will also be displayed in a chronological list.

Plugin Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.

Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".

If you have any problems, or if the extension isn't available in configure, then you can still install manually from the command-line. See http://foswiki.org/Support/ManuallyInstallingExtensions for more help.

Plugin Info

Plugin Author: Foswiki:Main/DavidPatterson
License: GPL (Gnu General Public License)
Release: 1.0
Version: 8457 (2010-08-11)
Change History:  
06 Aug 2010 First release
15 Apr 2010 Demo version
Dependencies:
NameVersionDescription
Date::Calc>=6.3Required.
Foswiki::Plugins::ObjectPlugin>=1.0Required.
Home: Foswiki:Extensions/FullCalendarPlugin
Support: Foswiki:Support/FullCalendarPlugin
Print version |  PDF  | History: r0 | 
Topic revision: r1 - 01 Jun 2010 - 15:26:53 - ProjectContributor
 

TUTWiki

This site is powered by FoswikiCopyright © by the contributing authors. All material on this site is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback