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