CalDavZAP Changelog


NOTE: if you are interested in integrated version of CalDavZAP and CardDavMATE (our CardDAV web client) please use InfCloud - http://www.inf-it.com/open-source/clients/infcloud/

version 0.13.1 [2015-09-22]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- changed login screen autocomplete behaviour - we do not prevent browsers from remembering login/password anymore

version 0.13.0 [2015-09-16]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- note: if you use a server with cross-domain setup see the modified Access-Control-Allow-Headers and Access-Control-Expose-Headers in readme.txt (or misc/config_davical.txt or misc/calendarserver.diff); you MUST update these headers, otherwise the client will NOT work
- configuration - added globalEnableRefresh option which enables/disables the new "refresh all resources" icon in the left application menu (disabled by default)
- added Chinese localization (zh_CN) - thanks Fandy
- added shift+login shortcut to ignore settings stored on the server and use the default settings (this functionality was added long time ago, but I forgot to mention about it)
- added support for "Prefer: return=representation" (and related "Preference-Applied: return=representation") for PUT requests (see http://tools.ietf.org/html/rfc7240); this change REQUIRES update of Access-Control-Allow-Headers and Access-Control-Expose-Headers if cross-domain setup is used
- added full RFC2445 support - RRULE processing is now performed by rrule.js (see: https://github.com/jakubroztocil/rrule); thanks to this library we now support/expand all recurrences, although the most exotic ones are "read-only" (for these you will see "Other (modification not supported)" in the interface)
- added DESCRIPTION property for VALARM components to make them RFC compliant
- added check for unsupported XML 1.0 characters in user entered data - these are replaced by a space character (to prevent client and/or server side parsing errors)
- added title with version number for the software name/description (login screen)
- added vCalendar line folding (RFC2445 - section 4.1)
- fixed event processing when multiple VEVENT and VTIMEZONE components are intermingled
- fixed VTODO COMPLETED property (UTC time format)
- fixed alarm window not being localized properly
- fixed an occasional issue where all collections are double loaded on login
- changed version checking - use internal build number for software version comparison to support update notification also for beta and rc builds
- changed format and comments in config.js
- changed storing of user settings (PROPPATCH request) - no server request will be made if there is no change in settings
- updated jQuery to 2.1.4
- updated localizations - thanks Niels Bo Andersen [da_DK], Marten Gajda [de_DE], Damian Vila [es_ES], Gabriela Vattier [fr_FR], Luca Ferrario [it_IT], Muimu Nakayama [ja_JP], Johan Vromans [nl_NL], Selcuk Pultar [tr_TR], Александр Симонов [ru_RU], Serge Yakimchuck [uk_UA]
- updated timezone.js to latest IANA timezone database
- other improvements and fixes

version 0.12.1 [2015-03-16]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- note: you NEED to enable "mod_headers" in Apache (for other servers see your server documentation) which is used to generate proper HTTP headers (required for correct support of HTML5 cache in browsers); the previously used mod_expire is not longer used (see the changelog entry below)
- added support for absolute collection URLs returned in PROPFIND request
- fixed HTML5 cache related problems (especially in Firefox) by returning "Cache-Control: max-age=0, must-revalidate, no-cache, no-transform, private" header instead of "Cache-Control: max-age=0" - this fix requires enabled "mod_headers" (you can disable the previously used "mod_expires") in Apache - for more details see .htaccess
- fixed processing of the language parameter in the title of event/todo
- changed displaying of event/todo calendar list in event/todo form - now it is possible to create new event/todo also into inactive event/todo collection
- updated jQuery-UI to 1.11.4
- other improvements and fixes

version 0.12.0 [2015-01-26]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- configuration - added globalDefaultEventDuration configuration variable - set the default duration (in minutes) for newly created events
- added widened todo list with dynamic number of columns
- added checkboxes for todos in the todo list - now you can change the status of a todo by clicking on its checkbox
- added duplicate button for copying of events/todos
- fixed loading of future/past todos - now the loading of additional future/past todos is performed also by clicking on datepicker calendar (in the todo list view)
- updated jQuery to 2.1.3
- updated jQuery-UI to 1.11.2
- other improvements and fixes

version 0.11.1 [2014-10-07]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- updated timezone.js to latest IANA timezone database
- updated jQuery to 2.1.1
- updated jQuery-UI to 1.11.1
- fixed calendar color change functionality
- other improvements and fixes

version 0.11.0 [2014-10-02]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- note: this release contains new, changed and also removed configuration options (always use the latest config.js)
- configuration - removed showHeader option from globalAccountSettings, globalNetworkCheckSettings and globalNetworkAccountSettings - it is incompatible with new functionality
- configuration - added globalCrossServerSettingsURL configuration option - enable this option if your CalDavZAP installation is accessible from multiple URLs (URL1, URL2), otherwise settings (such as enabled/active collections) stored from the URL1 will be incompatible with settings stored from URL2
- configuration - added globalCalendarColorPropertyXmlns configuration option - used to define the namespace for calendar-color property (see below)
- configuration - changed default value for delegation option to true (in globalAccountSettings, globalNetworkCheckSettings and globalNetworkAccountSettings)
- configuration - changed default value for globalEventStartPastLimit and globalEventStartFutureLimit from 2 to 3
- added Japan localization (ja_JP) - thanks Muimu Nakayama
- added support for loading and unloading of user collections and delegated collections (delegation functionality)
- added support for calendar color change (write support for calendar-color property)
- added arrow icons for agenda views to indicate out of view events
- added currently logged user into the page title
- added hover element for calendar events
- updated localizations - thanks Michael Rasmussen [da_DK], Marten Gajda [de_DE], Damián Vila [es_ES], Jean-Christophe Bach [fr_FR], Luca Ferrario [it_IT], Johan Vromans [nl_NL], Selcuk Pultar [tr_TR], Александр Симонов [ru_RU], Yevgen Martsenyuk [uk_UA]
- fixed occasional wrong UID processing when moving events/todos between different calendar collections
- fixed issues with subscribed calendars
- fixed processing of alarms
- fixed an occasional parseDate bug due to daylight saving time in specific timezones
- various fixes, optimalizations, improvements, visual updates and more

version 0.10.0.5 [2014-04-14]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- updated Russian localization (ru_RU)
- fixed wrong processing of RECURRENCE-ID property in UTC (Z) timezone
- fixed occasional wrong processing of repeating events generated in future

version 0.10.0.4 [2014-03-15]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- added Russian localization (ru_RU) - thanks Александр Симонов
- fixed synchronization of removed events for servers without sync-collection report support
- minor translation fixes

version 0.10.0.3 [2014-03-12]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- added support for LDAP binding in auth/ldap module (see auth/plugins/ldap_conf.inc)
- fixed occasional wrong processing of DTEND attribute
- fixed incorrect creation of recurring events which caused that multiple different UIDs can be present in one calendar object (edit + save of previously created events will split them into multiple objects)

version 0.10.0.2 [2014-02-17]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- added Ukrainian localization (uk_UA) - thanks Serge Yakimchuck
- added misc/readme_baikal_sabredav.txt and misc/baikal-flat-0.2.7.diff to solve issues related to storing CalDavZAP properties on SabreDAV and Baïkal - thanks Johannes Zellner
- fixed invalid XML response processing (SabreDAV and Baïkal)
- fixed invalid XML request if globalEventStartPastLimit and globalEventStartFutureLimit are set to null
- fixed "delegation" XML processing
- updated French [fr_FR] localization - thanks Jean-Christophe Bach

version 0.10.0.1 [2014-02-04]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- added Spanish localization (es_ES) - thanks Damián Vila
- updated jQuery to 2.1.0
- updated jQuery-UI to 1.10.4
- changed various default date formats
- changed alarm behaviour - it is no longer possible to create multiple identical alarms (they are automatically merged into one)
- fixed a visual bug when displaying a simple todo alert
- fixed rare issue where UNTIL attribute of recurrent events was not processed correctly

version 0.10.0 [2014-01-22]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- note: this release contains new, changed and also removed configuration options (always use the latest config.js)
- configuration - added globalEventStartPastLimit and globalEventStartFutureLimit for time-range filtering - note: for servers without time-range filtering support you need to set both variables to null (see config.js)
- configuration - replaced globalInactiveCollections and globalInactiveTodoCollections by globalActiveCalendarCollections and globalActiveTodoCollections (see config.js)
- configuration - removed globalResourceHeaderShowLogin option - it is replaced by much more flexible hrefLabel option in globalAccountSettings and globalNetworkCheckSettings (see config.js)
- configuration - removed syncInterval option from globalAccountSettings and globalNetworkCheckSettings - detection of sync-token changes is now performed by ONE request instead of N (number of collections) - use globalSyncResourcesInterval instead
- configuration - removed crossDomain and withCredentials options from default globalAccountSettings, globalNetworkCheckSettings and globalNetworkAccountSettings - both settings are still available but there is NO REASON to use them (crossDomain is detected automatically, and I've never seen anyone who understand when to use withCredentials /there is NO REASON to set it to true!/)
- major improvements and changes in sychronization code - MUCH reduced number of HTTP request to server
- major design changes (including the open source Roboto font)
- major readme.txt update with detailed descriptions of most common setup problems
- added support for time-range filtering (requires server with time-range filtering support) - EXTREME performance improvements
- added workaround for buggy HTML5 cache handling in the latest Firefox
- added "equivalency" for todo filters (globalAppleRemindersMode) - NEEDS-ACTION, IN-PROGRESS and CANCELLED are processed as NEEDS-ACTION
- added calendar color indicator for event/todo forms (unified with the upcoming CardDavMATE)
- added handling of unsupported settings
- added support for 'headervalue' collection property (namespace: http://inf-it.com/ns/dav/) - useful for collection grouping
- added new overlay with refresh button, when cache manifest change is detected (it forces users to reload the page)
- added support/mapping for alternative timezone names - e.g. 'US/Pacific' (legacy name) is mapped to 'America/Los_Angeles' (current name)
- changed resource list design (unified with the upcoming CardDavMATE)
- changed todo processing if globalAppleRemindersMode is enabled - todos with start and no end are processed as simple todos
- changed displaying of repeating todo confirm question
- changed time-range filtering for todos - all todos from future are loaded from server initially
- updated French [fr_FR] localization - thanks Jean-Christophe Bach
- optimized window resizing functionality
- fixed local timezone processing
- fixed loader hanging after login if subscribed calendar list is empty
- fixed generating of repeating events in future
- fixed RRULE processing if specified in YYYYMMDD format
- fixed displaying of arrows for repeating events
- fixed sorting of resources
- fixed various search issues
- disabled opening of new event/todo form if only read-only collections are present
- removed jQuery source mapping file reference
- LOT of other improvements and fixes

version 0.9.1.2 [2013-08-05]:
- fixed processing of recurrent events (special recurrences - correct BYMONTHDAY processing)
- fixed globalTimeFormatBasic configuration option processing (it is no longer ignored)
- removed old and unused configuration options (globalDefaultDisplayTodo and globalTodoHideExpired)

version 0.9.1.1 [2013-07-30]:
- fixed processing of recurrent events with until date
- fixed saving of until dates values in recurrent events
- fixed parsing of double quoted TZID param values

version 0.9.1 [2013-07-26]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- note: this release contains changed configuration options (always use the latest config.js)
- configuration - changed globalAppleRemindersMode option values - newly supported values are iOS6, iOS7, true (it is set to latest supported iOS - in this case iOS7) and false (see config.js)
- added Turkish localization (tr_TR) - thanks Selcuk Pultar
- updated localizations - thanks Michael Rasmussen [da_DK], Marten Gajda [de_DE], John Fischer [fr_FR], Luca Ferrario [it_IT] and Johan Vromans [nl_NL]
- added additional automatic fixes for invalid events
- added support for STATUS attribute
- added support for CALSCALE attribute (only GREGORIAN is supported; missing attribute = GREGORIAN)
- added automatic change of "time to" after "time from" change (preserve the event/todo duration)
- added support for dynamic height of NOTE field - thanks http://www.jacklmoore.com/autosize/
- fixed problem with always visible completed todos when globalAppleRemindersMode enabled
- fixed window resize callback
- fixed incorrect detection of privileges for binded resources
- fixed processing of RECURRENCE-ID in events/todos
- fixed parsing of todo/event components with same UID in subscribed calendars
- fixed parsing of due date timezone
- fixed processing of DURATION value for allday events
- fixed problem with multiple URL and LOCATION attributes
- fixed handling of VERSION attribute
- fixed repeating todo and event processing
- fixed timezone picker problems
- updated jQuery to 2.0.3
- changed default "due date" for todos to date selected in the todo calendar
- other improvements and fixes

version 0.9.0 [2013-06-27]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache); alternatively you can update the cache.manifest manually - edit the second line beginning with "#V 20" to anything else (this file simple needs "some" change)
- note: if you use DAViCal with cross-domain setup see the modified Apache configuration in misc/config_davical.txt (added Access-Control-Expose-Headers header)
- note: if you use OS X Calendarserver it is recommended to re-patch your installation (added Access-Control-Expose-Headers header; see misc/readme_osx.txt)
- note: this release contains new and also changed configuration options (always use the latest config.js)
- configuration - added globalSettingsType option - set the destination for client settings on server (useful if your server not allows to store properties to "principal-URL" but allows to store them to "calendar-home-set")
- configuration - added checkContentType option into globalAccountSettings and globalNetworkCheckSettings - enables content-type checking for server response (only objects with proper content-type are inserted into interface) - if you cannot see data in the interface you may try to disable it
- configuration - added globalAppleRemindersMode option (enabled by default) - it enables workarounds for Apple clients (see config.js)
- configuration - added globalIgnoreCompletedAlarms option (enabled by default) - it disables alarm for completed todos (see config.js)
- MAJOR performance improvements
- added support for Cyrus server - thanks Ken Murchison
- added support for additional CalDAV servers (should work with the same servers as CardDavMATE)
- added completely new and shiny interface for todos
- added support for additional todo properties and repeating todos
- added support for PRODID property for both events and todos
- added new custom formats for time and day strings based on currently selected localization
- added Hungarian localization (hu_HU)
- changed cache.manifest - cache all image files in HTML5 cache
- changed ordering of calendars in selectbox (globalSortAlphabet is used)
- changed internal logic of resource loading, synchronization and version check functionality (to prepare for integration with CardDavMATE)
- changed minimum height of events to height of "30 minutes" event
- fixed Firefox placeholder colors
- fixed and updated various localization strings
- fixed events and todos sometimes being editable even with forceReadOnly flag enabled
- fixed various timezone processing issues
- fixed visual event form bug when using repeat option with weekend/business days
- fixed current time indicator error during day/week transition
- fixed timezone picker (at the bottom of the resource list) - it is no longer editable using keyboard navigation while editing event/todo
- fixed wrong ajax parameter which may cause warnings in server log
- fixed an issue when timezone picker was not always visible after login
- updated left menu with new icons (thanks Kelecsenyi Timotej - http://timotejos.com/)
- updated jQuery to 2.0.2 (and related fixes)
- updated jQuery-UI to 1.10.3 (and related fixes)
- updated auth module to reflect the latest changes in configuration options
- updated misc directory (it is the same as in CardDavMATE)
- updated localizations - thanks Marten Gajda [de_DE], John Fischer [fr_FR], Luca Ferrario [it_IT] and Johan Vromans [nl_NL] (note: Danish [da_DK] localization contains some untranslated strings)
- LOT of other improvements and fixes

version 0.8.1.1 [2013-02-25]:
- fixed multiple bugs related to processing of recurrent events
- fixed forced lower case problem of some strings in the interface
- other minor fixes

version 0.8.1 [2013-02-21]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache)
- added support for background calendars in day view event list
- added missing misc directory
- fixed syntax error if configured using globalAccountSettings
- fixed issues with delegation proccessing if multiple accounts are configured
- fixed issue with pinned tab in Firefox (manual reloading is not required anymore)
- fixed privileges for binded calendars - these are now strictly read only
- fixed wrong proccessing of number of occurrences for recurrent events
- fixed issue where readonly events could still be edited via drag and drop and resizing
- fixed and optimized the "Revert" button functionality
- fixed issue with saving empty URL property
- fixed incorrect alarm box position
- fixed bad positioning of error image for "repeat end" date field

version 0.8.0 [2013-02-13]:
- note: do not forget to execute the cache_update.sh script every time you update your configuration or any other file (otherwise your browser will use the previous version of files stored in HTML5 cache)
- note: this release contains new configuration option (always use the latest config.js)
- configuration - added globalUseJqueryAuth option - use jQuery .ajax() auth or custom header for HTTP basic auth (default); set this option to true if your server uses digest auth (note: you may experience auth popups on some browsers)
- configuration - added globalRemoveUnknownTimezone (disabled by default) - it removes non-standard/unknown timezones if event/todo is edited (and saved)
- configuration - added delegation option into globalAccountSettings and globalNetworkCheckSettings (sets additional delegated resources - if true then delegation is enabled for all available resources; if false (default) then delegation is disabled; if an array of URL encoded resources or regexes (for example: ['/caldav.php/user/', '/caldav.php/user%40domain.com/', new RegExp('^/caldav.php/a[b-x].+/$', 'i')] then delegation is enabled for all specified resources
- configuration - added ignoreAlarms option into globalAccountSettings and globalNetworkCheckSettings (defines an array calendars with disabled alarm - if true then all alarms are ignored; if false (default) then alarms are enabled; if an array of URL encoded collections or regexes (for example: ['/caldav.php/user/collection/', '/caldav.php/user%40domain.com/collection/', new RegExp('^/caldav.php/user/collection[0-9]/$', 'i')] then alarm is disabled for all specified resources
- configuration - added backgroundCalendars option into globalAccountSettings and globalNetworkCheckSettings - defines an array of background calendars - if there is at least one event defined for the given day in a background calendar, the background color for that day will be pink/light-red; to use this feature define an array of URL encoded collections or regexes (for example: ['/caldav.php/user/collection/', '/caldav.php/user%40domain.com/collection/', new RegExp('^/caldav.php/user/collection[0-9]/$', 'i')])
- configuration - added user defined time format support for events via globalTimeFormatBasic and globalTimeFormatAgenda variables (see config.js)
- configuration - changed forceReadonly property proccessing - URL encoded collections and also regexes are now supported (see config.js)
- configuration - changed globalCalendarSelected variable proccessing - full UID (for example: http://username@domain.com:8080/caldav.php/user/calendar/) and also UID matching regexes are now supported (see config.js)
- configuration - date and time formats are now predefined for each localization - if you want to use custom date and time formats instead of predefined formats (defined by localizations) use globalAMPMFormat and globalDatepickerFormat variables (commented out by default)
- added Danish localization (da_DK) - thanks Niels Bo Andersen
- added German localization (de_DE) - thanks Marten Gajda and Thomas Scheel
- added Italian localization (it_IT) - thanks Luca Ferrario
- added French localization (fr_FR) - thanks John Fischer
- added Dutch localization (nl_NL) - thanks Johan Vromans
- added additional functionality for today button - now it scrolls the calendar to ensure that the today slot is visible in the top of the view
- added support for fallback to PROPFIND if REPORT is not supported and server returns incorrect 403 error code (instead of 400 or 501)
- added support for events without DTEND or DURATION values
- added support for DURATION property
- added support for CLASS property (Privacy)
- added support for TRANSP property (Availability)
- added support for URL property
- updated timezone.js to latest IANA timezone database
- updated auth module to reflect the latest changes in configuration options
- changed button label from "All future events" to "This and all future events" for more clarity
- changed the "repeat end" option text from "after" to "occurences" for more clarity (event ends after X occurences, including the first one)
- changed event listing in day view - now it scrolls to the very top if the currently displayed day is the first day of month (the button for loading the previous month is now visible)
- changed event listing in day view - now it scrolls to the closest following day if the currently displayed day is not found (no events exist for that day)
- fixed login => logout => relogin as different user bug
- fixed "Unable to save" bug when creating/editing an event/todo
- fixed cache_update.sh - replaced sed by ed due to cross OS compatibility problems
- fixed duplicate scrollbar problem in week and day views
- fixed useless revert button - it is no longer visible when creating a new event or todo
- fixed position of the error image in todo completed field
- fixed processing of UNTIL values in repeating events
- fixed EXDATE value processing and saving
- fixed January specific bug
- fixed BYMONTH value processing - anniversaries
- other improvements and fixes

version 0.7.0 [2012-11-20]:
- initial public release