DAViCal Web Client

See also: CalDAV Clients

Web client for DAViCal
In light of users' requests for a web based interface to DAViCal (and to satisfy my own needs) I designed a web- based client for DAViCal last summer.

In its present state it is only able to display events; creating, updating, and deleting is not yet implemented. This should not be a very difficult task, however, due to the widespread use of design patterns and OO-style in general. Use the wise advice from Kernighan and Plaugher: "Program to an interface, not an implementation".

Using my web calendar with Google now works. The settings for using Google Calendar's caldav extension can be found here. The configuration for Mozilla Sunbird also applies for my web calendar.

Here are some screen dumps:

News
Version 0.8.1 has been released. This version contains a critical bug fix which prevent users to logon to webcal if no information exists about LDAP servers. All users are advised to upgrade, especially those users which do not use LDAP authentication.

Bug fixes: 147) fix bug which prevents logon when no LDAP information is to be found. Patch by Adi Kriegisch 148) Ensure the session data is completely removed when logging out. Critical fix for Google Chromium 150) fix the way options a computed to ensure correct redirection

Version 0.8.0 has been released. This is a major feature release upgrade extending features to support creating, editing and deleting events. Support for authentication and automatic creation of user against a LDAP directory server is also part of this release.

New features: 1) Now fully supports create, edit and delete of events 2) Authentification against LDAP. 3) Auto create users authenticated against LDAP 4) Support for yearly recuring rules

Bug fixes: Numerious but the important ones are listed below. 1) fix https test 2) Proper convert to user timezone 3) Fix bug in the handling of all day events 4) Fix bug to prevent the same event to appear more than once in the same timeslot 5) Fix missing webroot 6) Refactored algorithm for handling session timeout 7) fix bug in sqlite addUser

Version 0.7.4 has been released. This is mainly a bug release but postgresql users should be very interested in this release as it contains a number of significant bug fixes to the install process. One particular issue has been solved which caused a failing installation due to a initial install of Postgresql which does not support UTF8. I have therefore added a check to ensure installation bails out if the database server has been initially created with support for ISO character sets only. The fix of the security issue should cause an immediate upgrade.

Bug fixes: 1) In rare circumstances calendar config is lost due to conflict between encryption and storing the result in the database. Fix is to always convert to printed quotable. 2) Fix Postgresql installation. It should now work in all cases. 3) Fix bug to ensure correct detection of HTTPS 4) Fix a security issue which gave unauthorized users permissions to create or delete users 5) Some minor bug fixes

Version 0.7.3 has been released. This release is a maintenance release but since the algorithm for fetching events has been extensively revised users are urged to upgrade. PostgresQL users are strongly adviced to upgrade since the storing of user configuretion to PostgresQL databases in 0.7.2 is severely flawed - userdata will eventually be lost. With this release I beleave that the read-only part is fully implemented and works correct which means I will now turn to implement the writting support.

Enhancements: 1) RRULE algorithm has been refactored. Events outside displayed range and events stretching over more than one day are now displayed correct. 2) A automatic database upgrade functionality has been implemented. To activate it you must login as the administrator and if updates for the database is found you are presented with a screen where you can choose to upgrade or skip upgrade. This of course requires that you have installed the latest release. When ever an upgrade is performed and if this upgrade touches user data a backup of the table in question will be made by making a table copy to another table called backup. When you are convinced that the upgrade was successful you should drop this table or rename it to something more informative. 3) The current version is now display in the UI.

Bug fixes: 1) Fixed issue with very small fonts in all webkit based browseres 2) Fixed issue with saving user configuration in PostgresQL 3) Recuring events are know handled correct. See RRULE enhancements 4) Proberly set include_path in install script to prevent require and include fails under installation 5) Lots of other bug fixes and minor improments

Version 0.7.2 has been released. This release fixes some grave bugs as well as add support for using PostgreSQL as backend.

New features: 1) Added support for PostgreSQL 2) Added feature which enables resetting the password for users

Enhancements: 1) Since posix_getpid is not supported on the MS Windows platform implement random filename using a hash 2) Replaced split function with explode since split is deprecated as of PHP 5.3

Bug fixes: 1) Don't add an extra hour if event ends on an hour border 2) Compensate for calendar's use of 00 for 24 (midnight) 3) Proberly test if time is inside configered calendar time

Version 0.7.1 has been released. This is a maintenance release fixing some critical bugs and adds support for SQLite3 >= 3.19. Existing users should not have to upgrade the database but to insure future compatibility with SQLite3 >= 3.19 you are advised to do so. In the install folder is a shell script to help you migrate your database to the new design. To upgrade to the new database design: 1) Copy the script install/upgrade.sh from the new release to your existing webcal install folder 2) cd to existing webcal install folder 3) Do: ./upgrade export (when requesting the name of the database remember the file is located in the folder above) 4) Copy the resulting files: user.sql and calender.sql to a save place 5) Make a new installation from the new release 6) Copy the files user.sql and calendar.sql to the new installation's install folder 7) cd to new webcal install folder 8) Do ./upgrade import (when requesting the name of the database remember the file is located in the folder above) 9) You should now have a database with the new design populated with the old data

Installation
If you want to try it yourself, go to these installation instructions.

Q & A
Q: Can I create calendars for the admin account? A: No, the admin account is strictly for administration. The access to create calendars will be removed for user admin in the next release. Q: The database is not created under install, I receive error messages like "Uncommitted sessions exists", or calendars seems not to be created. What can I do? A: You are most likely running SQLite3 >= 3.19. SQLite 3.19 is a huge change compared to SQLite3 < 3.19 - eg. SQLite3 now supports AND enforces foreign keys which is incompatible with the database design in the current release. Either downgrade your version of SQLite3 or fetch source directly from my subversion repository. A new release will follow shortly.

Constributing
Information about contributing to this project are here. --Mir 21:54, 25 June 2009 (UTC)