diff -Nru davical-0.9.9.7/ChangeLog davical-1.0.2/ChangeLog --- davical-0.9.9.7/ChangeLog 2011-10-24 06:14:55.000000000 +0000 +++ davical-1.0.2/ChangeLog 2012-01-13 10:41:50.000000000 +0000 @@ -1,3 +1,114 @@ +2012-01-13 Andrew McMillan + * Handle VCARD adr/tel/email which have multiple types. + * Set the default URL to the default calendar name rather than /home/ + * Enable the file upload for addressbook collections. + * Handle addressbook import along with calendar import. + * Write UID and REV property n VCARD if they are missing. + * Fix bug in scheduling on POST request. + * Fix permissions on user create via external auth. + +2012-01-12 Andrew McMillan + * Allow for silly programs that send content-type XML with a GET request. + * Support use of HTTP_AUTHORIZATION in addition to AUTHORIZATION cgi. + * Add a default min_age for external binds. + +2012-01-06 Rob Ostensen + * Prevent external binds from being created/updated if curl is missing. + * Add check to setup page to test whether curl is installed. + +2012-01-05 Andrew McMillan + * Release 1.0.1 + +2012-01-04 Andrew McMillan + * Release 1.0 + +2011-12-14 Andrew McMillan + * Handle bound resources correctly in sync-collection report. + * Catch missing-xml in request separately from invalid-xml. + +2011-12-07 Andrew McMillan + * Add the "CardDAV" word into DAViCal's description. + * Improve expand performance by only doing expansion if we know we need it. + +2011-12-03 Andrew McMillan + * Use supplied content_type even on zero-length requests. + +2011-12-03 Rob Ostensen + * When creating an external bind don't consider local host as external + +2011-11-30 Andrew McMillan + * Strip URL-unfriendly characters from UID before using it as URL segment. + +2011-11-29 Andrew McMillan + * Slightly more helpful 403 response. + +2011-11-27 Andrew McMillan + * Fix logic error in hide_TODO setting. + * Make hide_alarm work on bound resources. + +2011-11-26 Andrew McMillan + * Correct bug in sync-collection report response. + * Fix BIT24 casting for the LDAP driver. + +2011-11-25 Andrew McMillan + * Remove password from LDAP log messages. + +2011-11-22 Andrew McMillan + * Fix for MOVE into a bound location. + +2011-11-21 Andrew McMillan + * Tooltips for schedule-deliver and schedule-send. + * Current localisations from Transifex. + * The tooltips for schedule-send and schedule-deliver should be different! + * Correctly calculate the next alarm time. + * Update e-mail address to current one, mention wiki. + +2011-11-09 Andrew McMillan + * Make sync-collection handle new format for sync token. + * Don't allow a / in the UID to infect the path on import. + +2011-11-09 Rob Ostensen + * Fix propfind depth:1 on bind to external url + +2011-11-02 Andrew McMillan + * Handle DELETE scheduling actions. + * Force output buffers to be flushed, if they're turned on. + * Correct handling of empty CardDAV:address-data element in request. + +2011-11-01 Andrew McMillan + * Update refresh-alarms script to newer style initialisation. + * Fix handling of active flag for general external authentication mechanisms. + * Update website to reflect new default calendar name. + +2011-10-31 Andrew McMillan + * Rationalise confidential event rewriting. + +2011-10-30 Andrew McMillan + * Add the $c->hide_alarms functionality into DAVResource class. + +2011-10-28 Andrew McMillan + * Allow LDAP sync to work if the date is reasonable and no 'format_updated' is set. + * We don't need to test for the PostgreSQL non-PDO drivers now. + * Switch out deprecated LDAP mappings before we use them anywhere. + * Fix LDAP user creation where memcached support is off. + +2011-10-27 Andrew McMillan + * Add test for PHP filter module and wiki links for each test. + +2011-10-25 Andrew McMillan + * Updates to Brazilian Portuguese, German and Dutch translations. + * We need $c to be global here. + * A couple more places restricting numeric usernames. + +2011-10-25 Rob Ostensen + * External bind changes, added a clean up button, urls now show for + external collections and added a few strings for translation + +2011-10-24 Andrew McMillan + * Release 0.9.9.7 + * More fixes to CalDAV Scheduling + - Handle REPLY from ATTENDEE accepting/declining meeting. + - Handle processing on ORGANIZER further changing meeting. 2011-10-24 Andrew McMillan * Release 0.9.9.7 * More work on CalDAV Scheduling diff -Nru davical-0.9.9.7/dba/supported_locales.sql davical-1.0.2/dba/supported_locales.sql --- davical-0.9.9.7/dba/supported_locales.sql 2011-09-26 22:30:09.000000000 +0000 +++ davical-1.0.2/dba/supported_locales.sql 2011-11-20 21:59:37.000000000 +0000 @@ -6,6 +6,8 @@ INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale ) VALUES( 'es_AR', 'Spanish (Argentina)', 'Español (Argentina)' ); INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale ) + VALUES( 'es_ES', 'Spanish (Spain)', 'Español (Espana)' ); +INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale ) VALUES( 'es_MX', 'Spanish (Mexico)', 'Español (Mexico)' ); INSERT INTO supported_locales ( locale, locale_name_en, locale_name_locale ) VALUES( 'es_VE', 'Spanish (Venezuela)', 'Español (Venezuela)' ); diff -Nru davical-0.9.9.7/debian/changelog davical-1.0.2/debian/changelog --- davical-0.9.9.7/debian/changelog 2011-10-24 07:09:10.000000000 +0000 +++ davical-1.0.2/debian/changelog 2012-01-13 10:44:36.000000000 +0000 @@ -1,3 +1,22 @@ +davical (1.0.2-1) unstable; urgency=low + + * New upstream release. + * New release to Debian (closes:#643809, #618957). + + -- Andrew McMillan Fri, 13 Jan 2012 23:44:36 +1300 + +davical (1.0.1-1) unstable; urgency=low + + * New upstream release. + + -- Andrew McMillan Thu, 05 Jan 2012 12:07:18 +1300 + +davical (1.0.0-1) unstable; urgency=low + + * New upstream release. + + -- Andrew McMillan Wed, 04 Jan 2012 16:41:50 +1300 + davical (0.9.9.7-1) unstable; urgency=low * New upstream release. diff -Nru davical-0.9.9.7/debian/control davical-1.0.2/debian/control --- davical-0.9.9.7/debian/control 2011-10-19 23:24:08.000000000 +0000 +++ davical-1.0.2/debian/control 2012-01-13 10:43:39.000000000 +0000 @@ -2,7 +2,7 @@ Section: web Priority: extra Maintainer: Andrew McMillan -Standards-Version: 3.9.1 +Standards-Version: 3.9.2 Build-Depends: debhelper (>= 7), libawl-php, gettext Vcs-git: git://repo.or.cz/davical.git Vcs-browser: http://repo.or.cz/w/davical.git @@ -10,24 +10,25 @@ Package: davical Architecture: all -Depends: ${misc:Depends}, debconf (>= 1.0.32), php5-pgsql, postgresql-client (>= 8.1), libawl-php (>= 0.49-1~), libawl-php (<< 0.50), libdbd-pg-perl, libyaml-perl +Depends: ${misc:Depends}, debconf (>= 1.0.32), php5-pgsql, postgresql-client (>= 8.1), libawl-php (>= 0.51-1~), libawl-php (<< 0.52), libdbd-pg-perl, libyaml-perl Recommends: postgresql (>= 8.3) -Description: The DAViCal CalDAV Server - The DAViCal CalDAV Server is designed to trivially store - CalDAV calendars, such as those from Evolution, Sunbird/Lightning, +Description: The DAViCal CalDAV & CardDAV Server + The DAViCal CalDAV Server is designed to store CalDAV calendars and + CardDAV addressbooks, such as those from Evolution, Sunbird/Lightning, Mulberry, iCal, iPhone or SOHO Organizer, in a central location, - providing shared calendars, free/busy publication and a basic - administration interface. + providing shared calendars, free/busy publication and a + basic administration interface. Package: davical-doc Section: doc Architecture: all Depends: ${misc:Depends} -Description: The DAViCal CalDAV Server - documentation - The DAViCal CalDAV Server is designed to trivially store - CalDAV calendars, such as those from Evolution, Sunbird/Lightning, - Mulberry, iCal or SOHO Organizer, in a central location, providing - shared calendars, free/busy publication and basic administration +Description: The DAViCal CalDAV & CardDAV Server - technical documentation + The DAViCal CalDAV Server is designed to store CalDAV calendars and + CardDAV addressbooks, such as those from Evolution, Sunbird/Lightning, + Mulberry, iCal, iPhone or SOHO Organizer, in a central location, + providing shared calendars, free/busy publication and a + basic administration interface. . This package contains detailed technical documentation for the classes and methods in the DAViCal programs. Some user-centric diff -Nru davical-0.9.9.7/docs/api/awl/caldav/CalDAVClient.html davical-1.0.2/docs/api/awl/caldav/CalDAVClient.html --- davical-0.9.9.7/docs/api/awl/caldav/CalDAVClient.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/CalDAVClient.html 2012-01-13 10:44:52.000000000 +0000 @@ -1270,7 +1270,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/CalendarInfo.html davical-1.0.2/docs/api/awl/caldav/CalendarInfo.html --- davical-0.9.9.7/docs/api/awl/caldav/CalendarInfo.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/CalendarInfo.html 2012-01-13 10:44:52.000000000 +0000 @@ -251,7 +251,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/iCalDate.html davical-1.0.2/docs/api/awl/caldav/iCalDate.html --- davical-0.9.9.7/docs/api/awl/caldav/iCalDate.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/iCalDate.html 2012-01-13 10:44:56.000000000 +0000 @@ -943,7 +943,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/_inc---caldav-client.php.html davical-1.0.2/docs/api/awl/caldav/_inc---caldav-client.php.html --- davical-0.9.9.7/docs/api/awl/caldav/_inc---caldav-client.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/_inc---caldav-client.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -63,7 +63,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/_inc---caldav-client-v2.php.html davical-1.0.2/docs/api/awl/caldav/_inc---caldav-client-v2.php.html --- davical-0.9.9.7/docs/api/awl/caldav/_inc---caldav-client-v2.php.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/_inc---caldav-client-v2.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -108,7 +108,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/_inc---RRule.php.html davical-1.0.2/docs/api/awl/caldav/_inc---RRule.php.html --- davical-0.9.9.7/docs/api/awl/caldav/_inc---RRule.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/_inc---RRule.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -74,7 +74,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/_inc---RRule-v2.php.html davical-1.0.2/docs/api/awl/caldav/_inc---RRule-v2.php.html --- davical-0.9.9.7/docs/api/awl/caldav/_inc---RRule-v2.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/_inc---RRule-v2.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -393,7 +393,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/RepeatRuleDateRange.html davical-1.0.2/docs/api/awl/caldav/RepeatRuleDateRange.html --- davical-0.9.9.7/docs/api/awl/caldav/RepeatRuleDateRange.html 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/RepeatRuleDateRange.html 2012-01-13 10:44:56.000000000 +0000 @@ -0,0 +1,267 @@ + + + + + + Docs For Class RepeatRuleDateRange + + + + +
+

 Class RepeatRuleDateRange

+ + +
+
Description
+ +
+ +

This class is used to hold a pair of dates defining a range. The range may be open-ended by including a null for one end or the other, or both.

+ +

+ Located in /inc/RRule-v2.php (line 522) +

+ + +

+	
+			
+
+ + + + +
+
Variable Summary
+ +
+
+
+  + mixed + $from +
+
+  + mixed + $until +
+
+
+
+ + +
+
Method Summary
+ +
+
+
+  + RepeatRuleDateRange + __construct + (RepeatRuleDateTime $date1, RepeatRuleDateTime $date2) +
+
+  + NULL|Rfc5545Duration + getDuration + () +
+
+  + boolean + overlaps + (RepeatRuleDateRange $other) +
+
+
+
+ + +
+
Variables
+ +
+ + +
+ +
+ + + mixed + $from + (line 523) + +
+ + +
    +
  • access: public
  • +
+ + + + + +
+ +
+ +
+ + + mixed + $until + (line 524) + +
+ + +
    +
  • access: public
  • +
+ + + + + +
+ +
+
+ + +
+
Methods
+ +
+ + +
+ +
+ + Constructor __construct (line 535) +
+ + +

Construct a new RepeatRuleDateRange which will be the range between $date1 and $date2. The earliest of the two dates will be used as the start of the period, the latest as the end. If one of the dates is null then the order of the parameters is significant, with the null treated as -infinity if it is first, or +infinity if it is second.

+

If both parameters are null then the range is from -infinity to +infinity.

+ +
+ RepeatRuleDateRange + + __construct + + (RepeatRuleDateTime $date1, RepeatRuleDateTime $date2) +
+ + + + +
+ +
+ +
+ + getDuration (line 570) +
+ + +

Get an Rfc5545Duration from this date range. If the from date is null it will be null.

+

If the until date is null the duration will either be 1 day (if the from is a date) or 0 otherwise.

+ +
+ NULL|Rfc5545Duration + + getDuration + + () +
+ + + +
+ +
+ +
+ + overlaps (line 551) +
+ + +

Assess whether this range overlaps the supplied range. null values are treated as infinity.

+ +
+ boolean + + overlaps + + (RepeatRuleDateRange $other) +
+ + + + +
+ +
+
+ + +

+ Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3 +

+
+ \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/RepeatRuleDateTime.html davical-1.0.2/docs/api/awl/caldav/RepeatRuleDateTime.html --- davical-0.9.9.7/docs/api/awl/caldav/RepeatRuleDateTime.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/RepeatRuleDateTime.html 2012-01-13 10:44:56.000000000 +0000 @@ -1043,7 +1043,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/RepeatRule.html davical-1.0.2/docs/api/awl/caldav/RepeatRule.html --- davical-0.9.9.7/docs/api/awl/caldav/RepeatRule.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/RepeatRule.html 2012-01-13 10:44:56.000000000 +0000 @@ -472,7 +472,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/RepeatRuleTimeZone.html davical-1.0.2/docs/api/awl/caldav/RepeatRuleTimeZone.html --- davical-0.9.9.7/docs/api/awl/caldav/RepeatRuleTimeZone.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/RepeatRuleTimeZone.html 2012-01-13 10:44:56.000000000 +0000 @@ -238,7 +238,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/Rfc5545Duration.html davical-1.0.2/docs/api/awl/caldav/Rfc5545Duration.html --- davical-0.9.9.7/docs/api/awl/caldav/Rfc5545Duration.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/Rfc5545Duration.html 2012-01-13 10:44:56.000000000 +0000 @@ -234,7 +234,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/awl/caldav/RRule.html davical-1.0.2/docs/api/awl/caldav/RRule.html --- davical-0.9.9.7/docs/api/awl/caldav/RRule.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/awl/caldav/RRule.html 2012-01-13 10:44:56.000000000 +0000 @@ -170,7 +170,7 @@

- Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/classtrees_awl.html davical-1.0.2/docs/api/classtrees_awl.html --- davical-0.9.9.7/docs/api/classtrees_awl.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/classtrees_awl.html 2012-01-13 10:44:51.000000000 +0000 @@ -54,7 +54,7 @@
  • RepeatRuleTimeZone
  • - Documentation generated on Mon, 24 Oct 2011 20:09:24 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/classtrees_davical.html davical-1.0.2/docs/api/classtrees_davical.html --- davical-0.9.9.7/docs/api/classtrees_davical.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/classtrees_davical.html 2012-01-13 10:44:51.000000000 +0000 @@ -106,7 +106,7 @@
  • AtomFeed
  • - Documentation generated on Mon, 24 Oct 2011 20:09:24 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/AtomEntry.html davical-1.0.2/docs/api/davical/AtomEntry.html --- davical-0.9.9.7/docs/api/davical/AtomEntry.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/AtomEntry.html 2012-01-13 10:44:51.000000000 +0000 @@ -550,7 +550,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/AtomFeed.html davical-1.0.2/docs/api/davical/AtomFeed.html --- davical-0.9.9.7/docs/api/davical/AtomFeed.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/AtomFeed.html 2012-01-13 10:44:52.000000000 +0000 @@ -519,7 +519,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/AtomXHTMLContent.html davical-1.0.2/docs/api/davical/AtomXHTMLContent.html --- davical-0.9.9.7/docs/api/davical/AtomXHTMLContent.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/AtomXHTMLContent.html 2012-01-13 10:44:52.000000000 +0000 @@ -142,7 +142,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/authentication/_inc---auth-functions.php.html davical-1.0.2/docs/api/davical/authentication/_inc---auth-functions.php.html --- davical-0.9.9.7/docs/api/davical/authentication/_inc---auth-functions.php.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/authentication/_inc---auth-functions.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -359,7 +359,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_htdocs---caldav.php.html davical-1.0.2/docs/api/davical/caldav/_htdocs---caldav.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_htdocs---caldav.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_htdocs---caldav.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -498,7 +498,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_htdocs---public.php.html davical-1.0.2/docs/api/davical/caldav/_htdocs---public.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_htdocs---public.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_htdocs---public.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -188,7 +188,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-ACL.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-ACL.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-ACL.php.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-ACL.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -109,7 +109,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-BIND.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-BIND.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-BIND.php.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-BIND.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -92,7 +92,7 @@ require_once ('external-fetch.php') - (line 51) + (line 54) @@ -106,7 +106,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-DELETE.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-DELETE.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-DELETE.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-DELETE.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -62,6 +62,21 @@ + +
    + +
    +  + + require_once + ('schedule-functions.php') + (line 20) + +
    + + + +
    @@ -77,11 +92,11 @@
    -
    +
    - delete_collection (line 21) + delete_collection (line 22)
    @@ -105,7 +120,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -41,7 +41,7 @@
    -
    +
     @@ -62,7 +62,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-GET.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-GET.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-GET.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-GET.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -42,7 +42,7 @@
    -
    +
     @@ -57,7 +57,7 @@
    -
    +
     @@ -86,7 +86,7 @@
    -
    +
    @@ -114,7 +114,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -61,7 +61,7 @@
    -
    +
     @@ -76,7 +76,7 @@
    -
    +
     @@ -97,7 +97,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -41,7 +41,7 @@
    -
    +
     @@ -63,7 +63,7 @@
    -
    +
     @@ -84,7 +84,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-MOVE.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-MOVE.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-MOVE.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-MOVE.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -42,7 +42,7 @@
    -
    +
     @@ -71,7 +71,7 @@
    -
    +
    @@ -101,7 +101,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -67,7 +67,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-POST.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-POST.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-POST.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-POST.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -42,7 +42,7 @@
    -
    +
     @@ -57,7 +57,7 @@
    -
    +
     @@ -72,7 +72,7 @@
    -
    +
     @@ -107,7 +107,7 @@
    -
    +
    @@ -132,7 +132,7 @@
    -
    +
    @@ -160,7 +160,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -61,7 +61,7 @@
    -
    +
     @@ -82,7 +82,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -61,7 +61,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -41,45 +41,45 @@ | Functions
    - -
    + +
     require_once - ('vCalendar.php') - (line 20) + ('vComponent.php') + (line 19)
    - -
    + +
     require_once - ('vComponent.php') - (line 19) + ('WritableCollection.php') + (line 21)
    - -
    + +
     require_once - ('WritableCollection.php') - (line 21) + ('vCalendar.php') + (line 20)
    @@ -87,7 +87,7 @@
    -
    +
     @@ -118,7 +118,7 @@
    -
    +
    @@ -156,7 +156,7 @@
    -
    +
    @@ -185,7 +185,7 @@
    -
    +
    @@ -220,7 +220,7 @@
    -
    +
    @@ -249,7 +249,7 @@
    -
    +
    @@ -278,7 +278,7 @@
    -
    +
    @@ -303,12 +303,53 @@
    - + +
    + +
    + + import_addressbook_collection (line 597) +
    + + +

    This function will import a whole calendar

    +
    + void + + import_addressbook_collection + + ( $vcard_content, int $user_no, string $path, boolean $caldav_context, [ $appending = false], string $ics_content) +
    + +
      +
    • + string + $ics_content: the ics file to import
    • +
    • + int + $user_no: the user wich will receive this ics file
    • +
    • + string + $path: the $path where it will be store such as /user_foo/home/
    • +
    • + boolean + $caldav_context:

      Whether we are responding via CalDAV or interactively

      Any VEVENTs with the same UID will be concatenated together

    • +
    • + + $vcard_content
    • +
    • + + $appending
    • +
    + + +
    +
    - import_collection (line 561) + import_calendar_collection (line 694)
    @@ -316,7 +357,7 @@
    void - import_collection + import_calendar_collection (string $ics_content, int $user_no, string $path, boolean $caldav_context, [ $appending = false])
    @@ -341,11 +382,52 @@
    - +
    + import_collection (line 561) +
    + + +

    This function will import a whole collection

    +
    + void + + import_collection + + ( $import_content, int $user_no, string $path, boolean $caldav_context, [ $appending = false], string $ics_content) +
    + +
      +
    • + string + $ics_content: the ics file to import
    • +
    • + int + $user_no: the user wich will receive this ics file
    • +
    • + string + $path: the $path where it will be store such as /user_foo/home/
    • +
    • + boolean + $caldav_context:

      Whether we are responding via CalDAV or interactively

      The work is either done by

    • +
    • + + $import_content
    • +
    • + + $appending
    • +
    + + +
    + +
    + +
    + public_events_only (line 144)
    @@ -374,7 +456,7 @@
    -
    +
    @@ -412,11 +494,11 @@
    -
    +
    - simple_write_resource (line 1186) + simple_write_resource (line 1306)
    @@ -450,11 +532,11 @@
    -
    +
    - write_alarms (line 795) + write_alarms (line 915)
    @@ -479,11 +561,11 @@
    -
    +
    - write_attendees (line 852) + write_attendees (line 972)
    @@ -508,11 +590,11 @@
    -
    +
    - write_resource (line 901) + write_resource (line 1021)
    @@ -567,7 +649,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -55,7 +55,7 @@
    -
    +
     @@ -76,7 +76,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -55,14 +55,14 @@
    -
    +
     require_once ('vcard.php') - (line 87) + (line 59)
    @@ -76,7 +76,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-REPORT.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-REPORT.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-REPORT.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-REPORT.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -41,30 +41,30 @@ | Functions
    - -
    + +
     include - ("caldav-REPORT-cardquery.php") - (line 345) + ("caldav-REPORT-sync-collection.php") + (line 68)
    - -
    + +
     include - ("caldav-REPORT-pps-set.php") - (line 61) + ("caldav-REPORT-freebusy.php") + (line 51)
    @@ -72,7 +72,7 @@
    -
    +
     @@ -86,60 +86,75 @@
    - + +
    + +
    +  + + include + ("caldav-REPORT-expand-property.php") + (line 75) + +
    + + + +
    +
     include - ("caldav-REPORT-calquery.php") - (line 331) + ("caldav-REPORT-pps-set.php") + (line 61)
    - +
     include - ("caldav-REPORT-freebusy.php") - (line 51) + ("caldav-REPORT-cardquery.php") + (line 238)
    - +
     include - ("caldav-REPORT-expand-property.php") - (line 75) + ("caldav-REPORT-calquery.php") + (line 224)
    - +
    @@ -154,37 +169,37 @@ include ("caldav-REPORT-multiget.php") - (line 336) + (line 229)
    - +
     include - ("caldav-REPORT-principal-match.php") - (line 78) + ("caldav-REPORT-multiget.php") + (line 234)
    - +
     - include - ("caldav-REPORT-multiget.php") - (line 341) + require_once + ("external-fetch.php") + (line 65)
    @@ -220,37 +235,22 @@ require_once ("external-fetch.php") - (line 325) + (line 72)
    - +
     require_once - ("external-fetch.php") - (line 65) - -
    - - - -
    - -
    - -
    -  - - require_once - ("external-fetch.php") - (line 72) + ("vCalendar.php") + (line 42)
    @@ -258,7 +258,7 @@
    -
    +
     @@ -273,7 +273,7 @@
    -
    +
     @@ -287,15 +287,15 @@
    - -
    + +
     require_once - ("iCalendar.php") - (line 42) + ("external-fetch.php") + (line 218)
    @@ -316,44 +316,12 @@ | Functions
    - -
    - -
    - - calendar_to_xml (line 91) -
    - - -

    Return XML for a single calendar (or todo) entry from the DB

    -
      -
    • return: An XML document which is the response for the calendar
    • -
    -
    - string - - calendar_to_xml - - (array $properties, string $item) -
    - -
      -
    • - array - $properties: The properties for this calendar
    • -
    • - string - $item: The calendar data for this calendar
    • -
    - - -
    - +
    - component_to_xml (line 196) + component_to_xml (line 92)
    @@ -384,7 +352,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -43,7 +43,7 @@
    -
    +
    @@ -75,7 +75,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html davical-1.0.2/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -43,7 +43,7 @@
    -
    +
    @@ -72,7 +72,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/caldav/_inc---schedule-functions.php.html davical-1.0.2/docs/api/davical/caldav/_inc---schedule-functions.php.html --- davical-0.9.9.7/docs/api/davical/caldav/_inc---schedule-functions.php.html 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/docs/api/davical/caldav/_inc---schedule-functions.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -0,0 +1,303 @@ + + + + + + Docs for page schedule-functions.php + + + + +
    +

    File/inc/schedule-functions.php

    + + +
    +
    Description
    + +
    + +

    Functions for handling CalDAV Scheduling.

    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ('RRule-v2.php') + (line 14) + +
    + + + +
    + +
    + +
    +  + + require_once + ('WritableCollection.php') + (line 13) + +
    + + + +
    + +
    + +
    +  + + require_once + ('vCalendar.php') + (line 12) + +
    + + +

    Functions for handling CalDAV Scheduling.

    + + +
    +
    +
    + + + + +
    +
    Functions
    + +
    + +
    + +
    + + deliverItipCancel (line 312) +
    + + +

    Delivers the iTIP CANCEL message to an ATTENDEE's Scheduling Inbox Collection.

    +

    This is pretty simple at present, but could be extended in the future to do the sending of e-mail to a remote attendee.

    +
    + void + + deliverItipCancel + + ( $iTIP,  $attendee, WritableCollection $attendee_inbox) +
    + +
      +
    • + vCalendar + $iTIP
    • +
    • + vProperty + $attendee
    • +
    • + WritableCollection + $attendee_inbox
    • +
    + + +
    + +
    + +
    + + doItipAttendeeReply (line 67) +
    + + +

    Do the scheduling adjustments for a REPLY when an ATTENDEE updates their status.

    +
    + void + + doItipAttendeeReply + + ( $resource,  $partstat, vCalendar $vcal, string $organizer) +
    + +
      +
    • + vCalendar + $vcal: The resource that the ATTENDEE is writing to their calendar
    • +
    • + string + $organizer: The property which is the event ORGANIZER.
    • +
    • + vCalendar + $resource
    • +
    • + + $partstat
    • +
    + + +
    + +
    + +
    + + doItipOrganizerCancel (line 207) +
    + + +

    Handles sending the iTIP CANCEL messages to each ATTENDEE by the ORGANIZER.

    +
    + void + + doItipOrganizerCancel + + ( $vcal) +
    + +
      +
    • + vCalendar + $vcal: What's being cancelled.
    • +
    + + +
    + +
    + +
    + + do_scheduling_for_delete (line 24) +
    + + +

    Entry point for scheduling on DELETE, for which there are thee outcomes:

    • We don't do scheduling (disabled, no organizer, ...)
    • We are an ATTENDEE declining the meeting.

    +

    • We are the ORGANIZER canceling the meeting.

    +
    + void + + do_scheduling_for_delete + + (DAVResource $deleted_resource) +
    + +
      +
    • + DAVResource + $deleted_resource: The resource which has already been deleted
    • +
    + + +
    + +
    + +
    + + GetItip (line 178) +
    + + +
    + void + + GetItip + + ( $vcal,  $method,  $attendee_value) +
    + +
      +
    • + VCalendar + $vcal
    • +
    • + + $method
    • +
    • + + $attendee_value
    • +
    + + +
    + +
    + +
    + + processItipCancel (line 265) +
    + + +

    Does the actual processing of the iTIP CANCEL message on behalf of an ATTENDEE, which generally means writing it into the ATTENDEE's default calendar.

    +
    + void + + processItipCancel + + ( $vcal,  $attendee, WritableCollection $attendee_calendar, Principal $attendee_principal) +
    + +
      +
    • + vCalendar + $vcal: The message.
    • +
    • + vProperty + $attendee
    • +
    • + WritableCollection + $attendee_calendar
    • +
    • + Principal + $attendee_principal
    • +
    + + +
    +
    +
    + +

    + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/CheckResult.html davical-1.0.2/docs/api/davical/CheckResult.html --- davical-0.9.9.7/docs/api/davical/CheckResult.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/CheckResult.html 2012-01-13 10:44:56.000000000 +0000 @@ -98,7 +98,7 @@
    -
    +
    @@ -130,7 +130,7 @@
    -
    +
    @@ -154,7 +154,7 @@
    -
    +
    @@ -178,7 +178,7 @@
    -
    +
    @@ -202,7 +202,7 @@
    -
    +
    @@ -231,7 +231,7 @@
    -
    +
    @@ -265,7 +265,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/DAViCalSession/DAViCalSession.html davical-1.0.2/docs/api/davical/DAViCalSession/DAViCalSession.html --- davical-0.9.9.7/docs/api/davical/DAViCalSession/DAViCalSession.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/DAViCalSession/DAViCalSession.html 2012-01-13 10:44:54.000000000 +0000 @@ -202,7 +202,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/DAViCalSession/_htdocs---tools.php.html davical-1.0.2/docs/api/davical/DAViCalSession/_htdocs---tools.php.html --- davical-0.9.9.7/docs/api/davical/DAViCalSession/_htdocs---tools.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/DAViCalSession/_htdocs---tools.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -70,7 +70,7 @@
    -
    +
     @@ -85,7 +85,7 @@
    -
    +
     @@ -100,7 +100,7 @@
    -
    +
     @@ -115,7 +115,7 @@
    -
    +
     @@ -130,7 +130,7 @@
    -
    +
     @@ -145,7 +145,7 @@
    -
    +
     @@ -166,7 +166,7 @@
    -
    +
     @@ -181,7 +181,7 @@
    -
    +
     @@ -196,7 +196,7 @@
    -
    +
     @@ -217,7 +217,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html davical-1.0.2/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html --- davical-0.9.9.7/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -170,7 +170,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/DAViCalSession/Tools.html davical-1.0.2/docs/api/davical/DAViCalSession/Tools.html --- davical-0.9.9.7/docs/api/davical/DAViCalSession/Tools.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/DAViCalSession/Tools.html 2012-01-13 10:44:57.000000000 +0000 @@ -86,7 +86,7 @@
    -
    +
    @@ -107,7 +107,7 @@
    -
    +
    @@ -128,7 +128,7 @@
    -
    +
    @@ -149,7 +149,7 @@
    -
    +
    @@ -175,7 +175,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/DAVTicket/DAVTicket.html davical-1.0.2/docs/api/davical/DAVTicket/DAVTicket.html --- davical-0.9.9.7/docs/api/davical/DAVTicket/DAVTicket.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/DAVTicket/DAVTicket.html 2012-01-13 10:44:54.000000000 +0000 @@ -246,7 +246,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html davical-1.0.2/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html --- davical-0.9.9.7/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -97,7 +97,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/external-bind/_inc---external-fetch.php.html davical-1.0.2/docs/api/davical/external-bind/_inc---external-fetch.php.html --- davical-0.9.9.7/docs/api/davical/external-bind/_inc---external-fetch.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/external-bind/_inc---external-fetch.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -84,7 +84,7 @@
    - fetch_external (line 37) + fetch_external (line 42)
    @@ -93,7 +93,7 @@ fetch_external - ( $bind_id,  $min_age) + ( $bind_id, [ $min_age = '1 hour'])
      @@ -112,7 +112,7 @@
      - update_external (line 81) + update_external (line 91)
      @@ -136,7 +136,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---admin.php.html davical-1.0.2/docs/api/davical/_htdocs---admin.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---admin.php.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---admin.php.html 2012-01-13 10:44:51.000000000 +0000 @@ -206,7 +206,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:24 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---always.php.html davical-1.0.2/docs/api/davical/_htdocs---always.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---always.php.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---always.php.html 2012-01-13 10:44:51.000000000 +0000 @@ -50,7 +50,7 @@ include ('../config/config.php') - (line 141) + (line 142)
    @@ -65,7 +65,7 @@ include ('/usr/local/etc/davical/'.$_SERVER['SERVER_NAME'].'-conf.php') - (line 135) + (line 136)
    @@ -80,7 +80,7 @@ include ('/usr/local/etc/davical/config.php') - (line 138) + (line 139)
    @@ -95,7 +95,7 @@ include ('/etc/davical/'.$_SERVER['SERVER_NAME'].'-conf.php') - (line 129) + (line 130)
    @@ -111,7 +111,7 @@ include ('config/config.php') - (line 144) + (line 145)
    @@ -126,7 +126,7 @@ include (davical_configuration_missing.php) - (line 147) + (line 148)
    @@ -141,7 +141,7 @@ include ('/etc/davical/config.php') - (line 132) + (line 133)
    @@ -156,7 +156,7 @@ include_once ('AWLUtilities.php') - (line 90) + (line 91)
    @@ -171,7 +171,7 @@ include_once ('AWLUtilities.php') - (line 77) + (line 78)
    @@ -186,7 +186,7 @@ require_once ('AwlQuery.php') - (line 193) + (line 194)
    @@ -202,7 +202,7 @@ require_once (Principal.php) - (line 211) + (line 212)
    @@ -229,7 +229,7 @@ DAVICAL_ADDRESSBOOK_MAXPRIV = "1023" - (line 357) + (line 358)
    @@ -244,7 +244,7 @@ DAVICAL_MAXPRIV = "65535" - (line 356) + (line 357)
    @@ -275,7 +275,7 @@
    - bits_to_privilege (line 409) + bits_to_privilege (line 410)
    @@ -307,7 +307,7 @@
    - ConstructURL (line 275) + ConstructURL (line 276)
    @@ -336,7 +336,7 @@
    - DateToISODate (line 344) + DateToISODate (line 345)
    @@ -365,7 +365,7 @@
    - DeconstructURL (line 304) + DeconstructURL (line 305)
    @@ -427,7 +427,7 @@
    - getStatusMessage (line 218) + getStatusMessage (line 219)
    @@ -456,7 +456,7 @@
    - ISODateToHTTPDate (line 335) + ISODateToHTTPDate (line 336)
    @@ -482,7 +482,7 @@
    - privileges_to_XML (line 456) + privileges_to_XML (line 457)
    @@ -511,7 +511,7 @@
    - privilege_to_bits (line 358) + privilege_to_bits (line 359)
    @@ -535,7 +535,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:24 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---createdb.php.html davical-1.0.2/docs/api/davical/_htdocs---createdb.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---createdb.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---createdb.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -93,7 +93,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---dbexec.php.html davical-1.0.2/docs/api/davical/_htdocs---dbexec.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---dbexec.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---dbexec.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -57,7 +57,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---feed.php.html davical-1.0.2/docs/api/davical/_htdocs---feed.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---feed.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---feed.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -204,7 +204,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---freebusy.php.html davical-1.0.2/docs/api/davical/_htdocs---freebusy.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---freebusy.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---freebusy.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -116,7 +116,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---help.php.html davical-1.0.2/docs/api/davical/_htdocs---help.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---help.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---help.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -115,7 +115,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---index.php.html davical-1.0.2/docs/api/davical/_htdocs---index.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---index.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---index.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -131,7 +131,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---newfile.php.html davical-1.0.2/docs/api/davical/_htdocs---newfile.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---newfile.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---newfile.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -55,7 +55,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---setup.php.html davical-1.0.2/docs/api/davical/_htdocs---setup.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---setup.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---setup.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -66,30 +66,30 @@ | Functions
    - -
    + +
     include - (page-footer.php) - (line 387) + ("./always.php") + (line 144)
    - -
    + +
     include - ("./always.php") - (line 130) + (page-footer.php) + (line 405)
    @@ -97,14 +97,14 @@
    -
    +
     include (page-header.php) - (line 140) + (line 154)
    @@ -112,14 +112,14 @@
    -
    +
     include (interactive-page.php) - (line 139) + (line 153)
    @@ -127,14 +127,14 @@
    -
    +
     include (DAViCalSession.php) - (line 131) + (line 145)
    @@ -142,14 +142,14 @@
    -
    +
     require_once ("AwlQuery.php") - (line 142) + (line 156)
    @@ -172,11 +172,11 @@
    -
    +
    - build_dependencies_table (line 234) + build_dependencies_table (line 248)
    @@ -192,11 +192,11 @@
    -
    +
    - build_site_statistics (line 206) + build_site_statistics (line 220)
    @@ -212,11 +212,11 @@
    -
    +
    - check_awl_version (line 191) + check_awl_version (line 205)
    @@ -232,11 +232,11 @@
    -
    +
    - check_calendar (line 81) + check_calendar (line 88)
    @@ -251,12 +251,32 @@
    + +
    + +
    + + check_curl (line 110) +
    + + +
    + void + + check_curl + + () +
    + + + +
    - check_datetime (line 145) + check_datetime (line 159)
    @@ -276,7 +296,7 @@
    - check_davical_version (line 175) + check_davical_version (line 189)
    @@ -356,7 +376,7 @@
    - check_magic_quotes_gpc (line 95) + check_magic_quotes_gpc (line 102)
    @@ -376,7 +396,7 @@
    - check_magic_quotes_runtime (line 99) + check_magic_quotes_runtime (line 106)
    @@ -452,12 +472,32 @@
    - +
    - check_schema_version (line 153) + check_real_php (line 81) +
    + + +
    + void + + check_real_php + + () +
    + + + +
    + +
    + +
    + + check_schema_version (line 167)
    @@ -473,11 +513,11 @@
    -
    +
    - check_suhosin_server_strip (line 88) + check_suhosin_server_strip (line 95)
    @@ -493,11 +533,11 @@
    -
    +
    - do_error (line 106) + do_error (line 120)
    @@ -518,11 +558,11 @@
    -
    +
    - get_phpinfo (line 118) + get_phpinfo (line 132)
    @@ -538,7 +578,7 @@
    -
    +
    @@ -567,7 +607,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---SqlToArray.php.html davical-1.0.2/docs/api/davical/_htdocs---SqlToArray.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---SqlToArray.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---SqlToArray.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -57,7 +57,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---test.php.html davical-1.0.2/docs/api/davical/_htdocs---test.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---test.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---test.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_htdocs---upgrade.php.html davical-1.0.2/docs/api/davical/_htdocs---upgrade.php.html --- davical-0.9.9.7/docs/api/davical/_htdocs---upgrade.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_htdocs---upgrade.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -34,7 +34,7 @@
    -
    +
     @@ -49,7 +49,7 @@
    -
    +
     @@ -64,7 +64,7 @@
    -
    +
     @@ -79,7 +79,7 @@
    -
    +
     @@ -94,7 +94,7 @@
    -
    +
     @@ -110,7 +110,7 @@
    -
    +
     @@ -125,7 +125,7 @@
    -
    +
     @@ -146,7 +146,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html davical-1.0.2/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html --- davical-0.9.9.7/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html 2012-01-13 10:44:55.000000000 +0000 @@ -296,7 +296,7 @@
    - AllowedTo (line 318) + AllowedTo (line 329)
    @@ -327,7 +327,7 @@
    - AssignSessionDetails (line 342) + AssignSessionDetails (line 353)
    @@ -406,7 +406,7 @@
    - CheckPassword (line 273) + CheckPassword (line 280)
    @@ -436,7 +436,7 @@
    - DigestAuthSession (line 178) + DigestAuthSession (line 185)
    @@ -459,7 +459,7 @@
    - GetRoles (line 326) + GetRoles (line 337)
    @@ -481,7 +481,7 @@
    - ParseDigestHeader (line 240) + ParseDigestHeader (line 247)
    @@ -510,7 +510,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html davical-1.0.2/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html --- davical-0.9.9.7/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -63,7 +63,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---AtomFeed.php.html davical-1.0.2/docs/api/davical/_inc---AtomFeed.php.html --- davical-0.9.9.7/docs/api/davical/_inc---AtomFeed.php.html 2011-10-24 07:09:25.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---AtomFeed.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -152,7 +152,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:25 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:51 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---autodiscover-handler.php.html davical-1.0.2/docs/api/davical/_inc---autodiscover-handler.php.html --- davical-0.9.9.7/docs/api/davical/_inc---autodiscover-handler.php.html 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---autodiscover-handler.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -0,0 +1,121 @@ + + + + + + Docs for page autodiscover-handler.php + + + + +
    +

    File/inc/autodiscover-handler.php

    + + +
    +
    Description
    + +
    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ('HTTPAuthSession.php') + (line 9) + +
    + + +

    Errors are sent as an XML document.

    + +
    + +
    + +
    +  + + require_once + ('CalDAVRequest.php') + (line 12) + +
    + + + +
    +
    +
    + + + + +
    +
    Functions
    + +
    + +
    + +
    + + errorResponse (line 24) +
    + + +
    + void + + errorResponse + + ( $code,  $message, [ $debugdata = '']) +
    + +
      +
    • + + $code
    • +
    • + + $message
    • +
    • + + $debugdata
    • +
    + + +
    +
    +
    + +

    + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-LOCK.php.html davical-1.0.2/docs/api/davical/_inc---caldav-LOCK.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-LOCK.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-LOCK.php.html 2012-01-13 10:44:52.000000000 +0000 @@ -34,7 +34,7 @@
    -
    +
     @@ -56,7 +56,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-calquery.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-calquery.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-calquery.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-calquery.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -36,7 +36,7 @@
    -
    +
     @@ -65,7 +65,7 @@
    -
    +
    @@ -100,7 +100,7 @@
    -
    +
    @@ -132,7 +132,7 @@
    -
    +
    @@ -157,7 +157,7 @@
    -
    +
    @@ -195,7 +195,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -36,7 +36,7 @@
    -
    +
     @@ -65,7 +65,7 @@
    -
    +
    @@ -90,11 +90,11 @@
    -
    +
    - SqlFilterCardDAV (line 83) + SqlFilterCardDAV (line 84)
    @@ -128,7 +128,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -37,7 +37,7 @@
    -
    +
    @@ -72,7 +72,7 @@
    -
    +
    @@ -101,7 +101,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -34,7 +34,7 @@
    -
    +
     @@ -56,7 +56,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-multiget.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-multiget.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-multiget.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-multiget.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-principal.php.html davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-principal.php.html --- davical-0.9.9.7/docs/api/davical/_inc---caldav-REPORT-principal.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---caldav-REPORT-principal.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -29,7 +29,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---check_UTF8.php.html davical-1.0.2/docs/api/davical/_inc---check_UTF8.php.html --- davical-0.9.9.7/docs/api/davical/_inc---check_UTF8.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---check_UTF8.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -119,7 +119,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---davical_configuration_missing.php.html davical-1.0.2/docs/api/davical/_inc---davical_configuration_missing.php.html --- davical-0.9.9.7/docs/api/davical/_inc---davical_configuration_missing.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---davical_configuration_missing.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -70,7 +70,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---freebusy-functions.php.html davical-1.0.2/docs/api/davical/_inc---freebusy-functions.php.html --- davical-0.9.9.7/docs/api/davical/_inc---freebusy-functions.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---freebusy-functions.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -118,7 +118,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---interactive-page.php.html davical-1.0.2/docs/api/davical/_inc---interactive-page.php.html --- davical-0.9.9.7/docs/api/davical/_inc---interactive-page.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---interactive-page.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -55,7 +55,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---other_translated_strings.php.html davical-1.0.2/docs/api/davical/_inc---other_translated_strings.php.html --- davical-0.9.9.7/docs/api/davical/_inc---other_translated_strings.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---other_translated_strings.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---page-footer.php.html davical-1.0.2/docs/api/davical/_inc---page-footer.php.html --- davical-0.9.9.7/docs/api/davical/_inc---page-footer.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---page-footer.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---page-header.php.html davical-1.0.2/docs/api/davical/_inc---page-header.php.html --- davical-0.9.9.7/docs/api/davical/_inc---page-header.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---page-header.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -85,7 +85,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---pubsub.php.html davical-1.0.2/docs/api/davical/_inc---pubsub.php.html --- davical-0.9.9.7/docs/api/davical/_inc---pubsub.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---pubsub.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---test-RRULE.php.html davical-1.0.2/docs/api/davical/_inc---test-RRULE.php.html --- davical-0.9.9.7/docs/api/davical/_inc---test-RRULE.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---test-RRULE.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -64,7 +64,7 @@
    -
    +
     @@ -79,7 +79,7 @@
    -
    +
     @@ -100,7 +100,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---test-RRULE-v2.php.html davical-1.0.2/docs/api/davical/_inc---test-RRULE-v2.php.html --- davical-0.9.9.7/docs/api/davical/_inc---test-RRULE-v2.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---test-RRULE-v2.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -64,7 +64,7 @@
    -
    +
     @@ -79,7 +79,7 @@
    -
    +
     @@ -94,7 +94,7 @@
    -
    +
     @@ -115,7 +115,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---ui---collection-edit.php.html davical-1.0.2/docs/api/davical/_inc---ui---collection-edit.php.html --- davical-0.9.9.7/docs/api/davical/_inc---ui---collection-edit.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---ui---collection-edit.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -86,7 +86,7 @@
    - edit_grant_row (line 395) + edit_grant_row (line 404)
    @@ -111,7 +111,7 @@
    - privilege_format_function (line 179) + privilege_format_function (line 188)
    @@ -146,7 +146,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---ui---external-browse.php.html davical-1.0.2/docs/api/davical/_inc---ui---external-browse.php.html --- davical-0.9.9.7/docs/api/davical/_inc---ui---external-browse.php.html 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---ui---external-browse.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -0,0 +1,34 @@ + + + + + + Docs for page external-browse.php + + + + +
    +

    File/inc/ui/external-browse.php

    + + +
    +
    Description
    + +
    + + +
    +
    + + + + + + +

    + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---ui---principal-browse.php.html davical-1.0.2/docs/api/davical/_inc---ui---principal-browse.php.html --- davical-0.9.9.7/docs/api/davical/_inc---ui---principal-browse.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---ui---principal-browse.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -28,7 +28,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---ui---principal-edit.php.html davical-1.0.2/docs/api/davical/_inc---ui---principal-edit.php.html --- davical-0.9.9.7/docs/api/davical/_inc---ui---principal-edit.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---ui---principal-edit.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -491,7 +491,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---vcard.php.html davical-1.0.2/docs/api/davical/_inc---vcard.php.html --- davical-0.9.9.7/docs/api/davical/_inc---vcard.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---vcard.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -64,7 +64,7 @@
    -
    +
     @@ -80,7 +80,7 @@
    -
    +
     @@ -101,7 +101,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---well-known.php.html davical-1.0.2/docs/api/davical/_inc---well-known.php.html --- davical-0.9.9.7/docs/api/davical/_inc---well-known.php.html 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---well-known.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -0,0 +1,124 @@ + + + + + + Docs for page well-known.php + + + + +
    +

    File/inc/well-known.php

    + + +
    +
    Description
    + +
    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + include + ('iSchedule.php') + (line 44) + +
    + + + +
    + +
    + +
    +  + + require_once + ('HTTPAuthSession.php') + (line 5) + +
    + + + +
    + +
    + +
    +  + + require_once + ('CalDAVRequest.php') + (line 10) + +
    + + + +
    +
    +
    + + + + +
    +
    Functions
    + +
    + +
    + +
    + + ischedule_get (line 58) +
    + + +
    + void + + ischedule_get + + () +
    + + + +
    +
    +
    + +

    + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/_inc---WritableCollection.php.html davical-1.0.2/docs/api/davical/_inc---WritableCollection.php.html --- davical-0.9.9.7/docs/api/davical/_inc---WritableCollection.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/_inc---WritableCollection.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -85,7 +85,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/iSchedule/_inc---iSchedule.php.html davical-1.0.2/docs/api/davical/iSchedule/_inc---iSchedule.php.html --- davical-0.9.9.7/docs/api/davical/iSchedule/_inc---iSchedule.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/iSchedule/_inc---iSchedule.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -116,7 +116,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/iSchedule/iSchedule.html davical-1.0.2/docs/api/davical/iSchedule/iSchedule.html --- davical-0.9.9.7/docs/api/davical/iSchedule/iSchedule.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/iSchedule/iSchedule.html 2012-01-13 10:44:55.000000000 +0000 @@ -511,7 +511,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/imapPamDrivers.html davical-1.0.2/docs/api/davical/ldap/imapPamDrivers.html --- davical-0.9.9.7/docs/api/davical/ldap/imapPamDrivers.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/imapPamDrivers.html 2012-01-13 10:44:55.000000000 +0000 @@ -133,7 +133,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html davical-1.0.2/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html --- davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -141,7 +141,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_ldap.php.html davical-1.0.2/docs/api/davical/ldap/_inc---drivers_ldap.php.html --- davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_ldap.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/_inc---drivers_ldap.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -134,7 +134,7 @@
    - LDAP_check (line 302) + LDAP_check (line 292)
    @@ -239,7 +239,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_rimap.php.html davical-1.0.2/docs/api/davical/ldap/_inc---drivers_rimap.php.html --- davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_rimap.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/_inc---drivers_rimap.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -141,7 +141,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html davical-1.0.2/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html --- davical-0.9.9.7/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -141,7 +141,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/ldapDrivers.html davical-1.0.2/docs/api/davical/ldap/ldapDrivers.html --- davical-0.9.9.7/docs/api/davical/ldap/ldapDrivers.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/ldapDrivers.html 2012-01-13 10:44:55.000000000 +0000 @@ -211,7 +211,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/ldap/squidPamDrivers.html davical-1.0.2/docs/api/davical/ldap/squidPamDrivers.html --- davical-0.9.9.7/docs/api/davical/ldap/squidPamDrivers.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/ldap/squidPamDrivers.html 2012-01-13 10:44:55.000000000 +0000 @@ -100,7 +100,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/logging/_inc---log_caldav_action.php.html davical-1.0.2/docs/api/davical/logging/_inc---log_caldav_action.php.html --- davical-0.9.9.7/docs/api/davical/logging/_inc---log_caldav_action.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/logging/_inc---log_caldav_action.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -88,7 +88,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Principal/DAVPrincipal.html davical-1.0.2/docs/api/davical/Principal/DAVPrincipal.html --- davical-0.9.9.7/docs/api/davical/Principal/DAVPrincipal.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Principal/DAVPrincipal.html 2012-01-13 10:44:54.000000000 +0000 @@ -27,7 +27,7 @@

    A class for things to do with a DAV Principal

    - Located in /inc/DAVPrincipal.php (line 18) + Located in /inc/DAVPrincipal.php (line 19)

    @@ -213,7 +213,7 @@ RFC3744: $_is_group - (line 41) + (line 42)
    @@ -369,7 +369,7 @@
    - Constructor __construct (line 94) + Constructor __construct (line 95)
    @@ -405,7 +405,7 @@
    - addressbook_home_set (line 358) + addressbook_home_set (line 359)
    @@ -427,7 +427,7 @@
    - AsCollection (line 419) + AsCollection (line 420)
    @@ -449,7 +449,7 @@
    - calendar_free_busy_set (line 381) + calendar_free_busy_set (line 382)
    @@ -471,7 +471,7 @@
    - calendar_home_set (line 335) + calendar_home_set (line 336)
    @@ -493,7 +493,7 @@
    - FetchProxyGroups (line 193) + FetchProxyGroups (line 194)
    @@ -515,7 +515,7 @@
    - GetProperty (line 302) + GetProperty (line 303)
    @@ -545,7 +545,7 @@
    - GroupMemberSet (line 283) + GroupMemberSet (line 284)
    @@ -567,7 +567,7 @@
    - GroupMembership (line 274) + GroupMembership (line 275)
    @@ -589,7 +589,7 @@
    - InitialiseRecord (line 143) + InitialiseRecord (line 144)
    @@ -616,7 +616,7 @@
    - IsGroup (line 293) + IsGroup (line 294)
    @@ -641,7 +641,7 @@
    - PrincipalProperty (line 450) + PrincipalProperty (line 451)
    @@ -677,7 +677,7 @@
    - Privileges (line 403) + Privileges (line 404)
    @@ -699,7 +699,7 @@
    - PropertySearch (line 443) + PropertySearch (line 444)
    @@ -725,7 +725,7 @@
    - ProxyFor (line 264) + ProxyFor (line 265)
    @@ -752,7 +752,7 @@
    - ReadProxyGroup (line 245) + ReadProxyGroup (line 246)
    @@ -774,7 +774,7 @@
    - RenderAsXML (line 568) + RenderAsXML (line 569)
    @@ -813,7 +813,7 @@
    - unique_tag (line 323) + unique_tag (line 324)
    @@ -838,7 +838,7 @@
    - WriteProxyGroup (line 254) + WriteProxyGroup (line 255)
    @@ -911,7 +911,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Principal/_inc---DAVPrincipal.php.html davical-1.0.2/docs/api/davical/Principal/_inc---DAVPrincipal.php.html --- davical-0.9.9.7/docs/api/davical/Principal/_inc---DAVPrincipal.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Principal/_inc---DAVPrincipal.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -17,7 +17,8 @@ + | Includes +

    An object representing a DAV 'Principal'

    @@ -36,7 +37,8 @@ + | Includes +
    @@ -58,12 +60,44 @@ + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ('Principal.php') + (line 12) + +
    + + +

    An object representing a DAV 'Principal'

    + + +
    +
    +

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Principal/_inc---Principal.php.html davical-1.0.2/docs/api/davical/Principal/_inc---Principal.php.html --- davical-0.9.9.7/docs/api/davical/Principal/_inc---Principal.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Principal/_inc---Principal.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -97,7 +97,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Principal/Principal.html davical-1.0.2/docs/api/davical/Principal/Principal.html --- davical-0.9.9.7/docs/api/davical/Principal/Principal.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Principal/Principal.html 2012-01-13 10:44:56.000000000 +0000 @@ -1060,7 +1060,7 @@
    - static cacheDelete (line 588) + static cacheDelete (line 597)
    @@ -1092,7 +1092,7 @@
    - static cacheFlush (line 577) + static cacheFlush (line 586)
    @@ -1193,7 +1193,7 @@
    - byEmail (line 284) + byEmail (line 288)
    @@ -1217,7 +1217,7 @@
    - Create (line 566) + Create (line 575)
    @@ -1246,7 +1246,7 @@
    - dav_name (line 376) + dav_name (line 380)
    @@ -1271,7 +1271,7 @@
    - default_calendar (line 424) + default_calendar (line 428)
    @@ -1296,7 +1296,7 @@
    - email (line 367) + email (line 371)
    @@ -1321,7 +1321,7 @@
    - Exists (line 279) + Exists (line 283)
    @@ -1345,7 +1345,7 @@
    - FetchCollections (line 407) + FetchCollections (line 411)
    @@ -1371,7 +1371,7 @@
    - FetchDeadProperties (line 390) + FetchDeadProperties (line 394)
    @@ -1396,7 +1396,7 @@
    - internal_url (line 490) + internal_url (line 494)
    @@ -1425,7 +1425,7 @@
    - principal_id (line 358) + principal_id (line 362)
    @@ -1450,7 +1450,7 @@
    - setUsername (line 338) + setUsername (line 342)
    @@ -1480,7 +1480,7 @@
    - unCache (line 495) + unCache (line 499)
    @@ -1504,7 +1504,7 @@
    - Update (line 570) + Update (line 579)
    @@ -1533,7 +1533,7 @@
    - url (line 464) + url (line 468)
    @@ -1567,7 +1567,7 @@
    - username (line 329) + username (line 333)
    @@ -1592,7 +1592,7 @@
    - user_no (line 349) + user_no (line 353)
    @@ -1617,7 +1617,7 @@
    - __get (line 246) + __get (line 251)
    @@ -1647,7 +1647,7 @@
    - __isset (line 256) + __isset (line 261)
    @@ -1678,7 +1678,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html davical-1.0.2/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html --- davical-0.9.9.7/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html 2011-10-24 07:09:26.000000000 +0000 +++ davical-1.0.2/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -42,7 +42,7 @@
    -
    +
     @@ -57,7 +57,7 @@
    -
    +
     @@ -72,7 +72,7 @@
    -
    +
     @@ -88,7 +88,7 @@
    -
    +
     @@ -117,7 +117,7 @@
    -
    +
    @@ -146,7 +146,7 @@
    -
    +
    @@ -181,7 +181,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:52 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/PublicSession/_inc---PublicSession.php.html davical-1.0.2/docs/api/davical/PublicSession/_inc---PublicSession.php.html --- davical-0.9.9.7/docs/api/davical/PublicSession/_inc---PublicSession.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/PublicSession/_inc---PublicSession.php.html 2012-01-13 10:44:56.000000000 +0000 @@ -63,7 +63,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/PublicSession/PublicSession.html davical-1.0.2/docs/api/davical/PublicSession/PublicSession.html --- davical-0.9.9.7/docs/api/davical/PublicSession/PublicSession.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/PublicSession/PublicSession.html 2012-01-13 10:44:56.000000000 +0000 @@ -133,7 +133,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html davical-1.0.2/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html --- davical-0.9.9.7/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -145,7 +145,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/pwauth/pwauthPamDrivers.html davical-1.0.2/docs/api/davical/pwauth/pwauthPamDrivers.html --- davical-0.9.9.7/docs/api/davical/pwauth/pwauthPamDrivers.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/pwauth/pwauthPamDrivers.html 2012-01-13 10:44:55.000000000 +0000 @@ -100,7 +100,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Request/CalDAVRequest.html davical-1.0.2/docs/api/davical/Request/CalDAVRequest.html --- davical-0.9.9.7/docs/api/davical/Request/CalDAVRequest.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Request/CalDAVRequest.html 2012-01-13 10:44:53.000000000 +0000 @@ -690,7 +690,7 @@
    - AllowedTo (line 992) + AllowedTo (line 1002)
    @@ -718,7 +718,7 @@
    - BuildSupportedPrivileges (line 954) + BuildSupportedPrivileges (line 964)
    @@ -748,7 +748,7 @@
    - CoerceContentType (line 846) + CoerceContentType (line 856)
    @@ -770,7 +770,7 @@
    - CollectionId (line 946) + CollectionId (line 956)
    @@ -792,7 +792,7 @@
    - dav_name (line 712) + dav_name (line 722)
    @@ -814,7 +814,7 @@
    - DepthRegexTail (line 730) + DepthRegexTail (line 740)
    @@ -836,7 +836,7 @@
    - DoResponse (line 1169) + DoResponse (line 1179)
    @@ -869,7 +869,7 @@
    - FailIfLocked (line 811) + FailIfLocked (line 821)
    @@ -894,7 +894,7 @@
    - GetDepthName (line 721) + GetDepthName (line 731)
    @@ -916,7 +916,7 @@
    - GetLockDetails (line 797) + GetLockDetails (line 807)
    @@ -943,7 +943,7 @@
    - GetLockRow (line 741) + GetLockRow (line 751)
    @@ -973,7 +973,7 @@
    - HavePrivilegeTo (line 1065) + HavePrivilegeTo (line 1075)
    @@ -1000,7 +1000,7 @@
    - IsAddressBook (line 907) + IsAddressBook (line 917)
    @@ -1022,7 +1022,7 @@
    - IsCalendar (line 898) + IsCalendar (line 908)
    @@ -1044,7 +1044,7 @@
    - IsCollection (line 887) + IsCollection (line 897)
    @@ -1066,7 +1066,7 @@
    - IsInfiniteDepth (line 938) + IsInfiniteDepth (line 948)
    @@ -1088,7 +1088,7 @@
    - IsLocked (line 633) + IsLocked (line 643)
    @@ -1113,7 +1113,7 @@
    - IsPrincipal (line 916) + IsPrincipal (line 926)
    @@ -1135,7 +1135,7 @@
    - IsProxyRequest (line 927) + IsProxyRequest (line 937)
    @@ -1157,7 +1157,7 @@
    - IsPublic (line 670) + IsPublic (line 680)
    @@ -1179,7 +1179,7 @@
    - MalformedRequest (line 1142) + MalformedRequest (line 1152)
    @@ -1206,7 +1206,7 @@
    - NeedPrivilege (line 1101) + NeedPrivilege (line 1111)
    @@ -1239,7 +1239,7 @@
    - PreconditionFailed (line 1126) + PreconditionFailed (line 1136)
    @@ -1275,7 +1275,7 @@
    - Privileges (line 1057) + Privileges (line 1067)
    @@ -1297,7 +1297,7 @@
    - setPermissions (line 565) + setPermissions (line 575)
    @@ -1327,7 +1327,7 @@
    - UnsupportedRequest (line 1078) + UnsupportedRequest (line 1088)
    @@ -1354,7 +1354,7 @@
    - ValidateLockToken (line 766) + ValidateLockToken (line 776)
    @@ -1381,7 +1381,7 @@
    - XMLResponse (line 1154) + XMLResponse (line 1164)
    @@ -1412,7 +1412,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Request/_inc---CalDAVRequest.php.html davical-1.0.2/docs/api/davical/Request/_inc---CalDAVRequest.php.html --- davical-0.9.9.7/docs/api/davical/Request/_inc---CalDAVRequest.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Request/_inc---CalDAVRequest.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -168,7 +168,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:26 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Resource/DAVResource.html davical-1.0.2/docs/api/davical/Resource/DAVResource.html --- davical-0.9.9.7/docs/api/davical/Resource/DAVResource.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Resource/DAVResource.html 2012-01-13 10:44:54.000000000 +0000 @@ -28,7 +28,7 @@

    A class for things to do with a DAV Resource

    - Located in /inc/DAVResource.php (line 23) + Located in /inc/DAVResource.php (line 24)

    @@ -140,7 +140,7 @@
    -
    +
     DAVResource __construct @@ -347,6 +347,12 @@
     void + IsInSchedulingCollection + ([string $type = 'any']) +
    +
    +  + void IsLocked ([ $depth = 0])
    @@ -365,6 +371,12 @@
     void + IsPublicOnly + () +
    +
    +  + void IsSchedulingCollection ([string $type = 'any'])
    @@ -460,14 +472,14 @@
    -
    +
    The $bound_from - (line 63) + (line 64)
    @@ -483,14 +495,14 @@
    -
    +
    The $contenttype - (line 58) + (line 59)
    @@ -506,14 +518,14 @@
    -
    +
    The $dav_name - (line 28) + (line 29)
    @@ -529,14 +541,14 @@
    -
    +
    Boolean: $exists - (line 33) + (line 34)
    @@ -552,14 +564,14 @@
    -
    +
    The $parent - (line 48) + (line 49)
    @@ -575,14 +587,14 @@
    -
    +
    The $resource - (line 43) + (line 44)
    @@ -598,14 +610,14 @@
    -
    +
    The $resourcetypes - (line 53) + (line 54)
    @@ -621,14 +633,14 @@
    -
    +
    The $unique_tag - (line 38) + (line 39)
    @@ -660,11 +672,11 @@
    -
    +
    - Constructor __construct (line 146) + Constructor __construct (line 147)
    @@ -687,11 +699,11 @@
    -
    +
    - bound_from (line 1138) + bound_from (line 1161)
    @@ -709,11 +721,11 @@
    -
    +
    - BuildACE (line 1284) + BuildACE (line 1315)
    @@ -742,11 +754,11 @@
    -
    +
    - BuildPrivileges (line 762) + BuildPrivileges (line 773)
    @@ -772,11 +784,11 @@
    -
    +
    - BuildSupportedMethods (line 851) + BuildSupportedMethods (line 862)
    @@ -794,11 +806,11 @@
    -
    +
    - BuildSupportedReports (line 903) + BuildSupportedReports (line 914)
    @@ -821,11 +833,11 @@
    -
    +
    - BuildTicketinfo (line 964) + BuildTicketinfo (line 975)
    @@ -855,11 +867,11 @@
    -
    +
    - collection_id (line 1193) + collection_id (line 1216)
    @@ -877,11 +889,11 @@
    -
    +
    - ContainerExists (line 1106) + ContainerExists (line 1129)
    @@ -899,11 +911,11 @@
    -
    +
    - ContainerType (line 1250) + ContainerType (line 1281)
    @@ -921,11 +933,11 @@
    -
    +
    - DAV_AllProperties (line 1413) + DAV_AllProperties (line 1449)
    @@ -943,11 +955,11 @@
    -
    +
    - dav_name (line 1129) + dav_name (line 1152)
    @@ -965,11 +977,11 @@
    -
    +
    - Exists (line 1088) + Exists (line 1111)
    @@ -987,11 +999,11 @@
    -
    +
    - FetchCollection (line 470) + FetchCollection (line 481)
    @@ -1012,11 +1024,11 @@
    -
    +
    - FetchDeadProperties (line 609) + FetchDeadProperties (line 620)
    @@ -1037,15 +1049,15 @@
    -
    +
    - FetchParentContainer (line 704) + FetchParentContainer (line 715)
    -

    Fetch the parent to this resource.

    +

    Fetch the parent to this resource. This is deprecated - use GetParentContainer() instead.

    void @@ -1059,11 +1071,11 @@
    -
    +
    - FetchPrincipal (line 557) + FetchPrincipal (line 568)
    @@ -1084,11 +1096,11 @@
    -
    +
    - FetchPrivileges (line 627) + FetchPrivileges (line 638)
    @@ -1109,11 +1121,11 @@
    -
    +
    - FetchResource (line 580) + FetchResource (line 591)
    @@ -1134,11 +1146,11 @@
    -
    +
    - FetchSupportedMethods (line 774) + FetchSupportedMethods (line 785)
    @@ -1156,11 +1168,11 @@
    -
    +
    - FetchSupportedReports (line 865) + FetchSupportedReports (line 876)
    @@ -1178,11 +1190,11 @@
    -
    +
    - FetchTickets (line 919) + FetchTickets (line 930)
    @@ -1200,11 +1212,11 @@
    -
    +
    - FromPath (line 301) + FromPath (line 313)
    @@ -1227,11 +1239,11 @@
    -
    +
    - FromRow (line 187) + FromRow (line 188)
    @@ -1254,11 +1266,11 @@
    -
    +
    - GetACL (line 1305) + GetACL (line 1336)
    @@ -1281,11 +1293,11 @@
    -
    +
    - GetParentContainer (line 685) + GetParentContainer (line 696)
    @@ -1303,11 +1315,11 @@
    -
    +
    - GetProperty (line 1337) + GetProperty (line 1368)
    @@ -1330,11 +1342,11 @@
    -
    +
    - GetPropStat (line 1724) + GetPropStat (line 1765)
    @@ -1366,11 +1378,11 @@
    -
    +
    - HavePrivilegeTo (line 725) + HavePrivilegeTo (line 736)
    @@ -1399,11 +1411,11 @@
    -
    +
    - IsAddressbook (line 1064) + IsAddressbook (line 1087)
    @@ -1421,11 +1433,11 @@
    -
    +
    - IsBinding (line 1072) + IsBinding (line 1095)
    @@ -1443,11 +1455,11 @@
    -
    +
    - IsCalendar (line 1044) + IsCalendar (line 1055)
    @@ -1465,11 +1477,11 @@
    -
    +
    - IsCollection (line 1028) + IsCollection (line 1039)
    @@ -1487,11 +1499,11 @@
    -
    +
    - IsExternal (line 1080) + IsExternal (line 1103)
    @@ -1508,12 +1520,39 @@
    + +
    + +
    + + IsInSchedulingCollection (line 1076) +
    + + +

    Checks whether this resource is IN a scheduling inbox/outbox collection

    + +
    + void + + IsInSchedulingCollection + + ([string $type = 'any']) +
    + +
      +
    • + string + $type: The type of scheduling collection, 'inbox', 'outbox' or 'any'
    • +
    + + +
    - IsLocked (line 996) + IsLocked (line 1007)
    @@ -1543,7 +1582,7 @@
    - IsPrincipal (line 1036) + IsPrincipal (line 1047)
    @@ -1565,7 +1604,7 @@
    - IsPublic (line 1242) + IsPublic (line 1265)
    @@ -1582,16 +1621,38 @@
    - +
    - IsSchedulingCollection (line 1053) + IsPublicOnly (line 1273)
    -

    Checks whether this resource is a calendar

    +

    Checks whether the target collection is for public events only

    + +
    + void + + IsPublicOnly + + () +
    + + + +
    + +
    + +
    + + IsSchedulingCollection (line 1064) +
    + + +

    Checks whether this resource is a scheduling inbox/outbox collection

    void @@ -1604,17 +1665,17 @@
    • string - $type: The type of scheduling collection, 'read', 'write' or 'any'
    • + $type: The type of scheduling collection, 'inbox', 'outbox' or 'any'
    -
    +
    - NeedPrivilege (line 747) + NeedPrivilege (line 758)
    @@ -1640,11 +1701,11 @@
    -
    +
    - parent_path (line 1159) + parent_path (line 1182)
    @@ -1662,11 +1723,11 @@
    -
    +
    - principal_url (line 1175) + principal_url (line 1198)
    @@ -1684,11 +1745,11 @@
    -
    +
    - Privileges (line 713) + Privileges (line 724)
    @@ -1706,11 +1767,11 @@
    -
    +
    - RenderAsXML (line 1782) + RenderAsXML (line 1823)
    @@ -1745,11 +1806,11 @@
    -
    +
    - resource (line 1202) + resource (line 1225)
    @@ -1767,11 +1828,11 @@
    -
    +
    - ResourceProperty (line 1432) + ResourceProperty (line 1468)
    @@ -1803,11 +1864,11 @@
    -
    +
    - resource_id (line 1228) + resource_id (line 1251)
    @@ -1825,11 +1886,11 @@
    -
    +
    - set_bind_location (line 1147) + set_bind_location (line 1170)
    @@ -1852,11 +1913,11 @@
    -
    +
    - unique_tag (line 1211) + unique_tag (line 1234)
    @@ -1874,11 +1935,11 @@
    -
    +
    - url (line 1118) + url (line 1141)
    @@ -1896,11 +1957,11 @@
    -
    +
    - user_no (line 1184) + user_no (line 1207)
    @@ -1923,7 +1984,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Resource/_inc---DAVResource.php.html davical-1.0.2/docs/api/davical/Resource/_inc---DAVResource.php.html --- davical-0.9.9.7/docs/api/davical/Resource/_inc---DAVResource.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Resource/_inc---DAVResource.php.html 2012-01-13 10:44:54.000000000 +0000 @@ -70,7 +70,7 @@
    -
    +
     @@ -91,7 +91,7 @@
    -
    +
     @@ -105,6 +105,21 @@
    + +
    + +
    +  + + require_once + ('DAVPrincipal.php') + (line 14) + +
    + + + +
    @@ -113,7 +128,7 @@ require_once ('DAVTicket.php') - (line 14) + (line 15)
    @@ -128,7 +143,7 @@ require_once ('iCalendar.php') - (line 15) + (line 16)
    @@ -142,7 +157,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:54 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/Resource/WritableCollection.html davical-1.0.2/docs/api/davical/Resource/WritableCollection.html --- davical-0.9.9.7/docs/api/davical/Resource/WritableCollection.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/Resource/WritableCollection.html 2012-01-13 10:44:57.000000000 +0000 @@ -53,7 +53,25 @@
    -
    +
    +  + boolean + actualDeleteCalendarMember + (vCalendar $member_dav_name) +
    +
    +  + null + WriteCalendarAlarms + ( $dav_id,  $vcal) +
    +
    +  + null + WriteCalendarAttendees + (int $dav_id,  $vcal) +
    +
     string WriteCalendarMember @@ -135,6 +153,96 @@
    + +
    + +
    + + actualDeleteCalendarMember (line 412) +
    + + +

    Writes the data to a member in the collection and returns the segment_name of the resource in our internal namespace.

    +
      +
    • return: Success is true, or false on failure.
    • +
    + +
    + boolean + + actualDeleteCalendarMember + + (vCalendar $member_dav_name) +
    + +
      +
    • + vCalendar + $member_dav_name: The path to the resource to be deleted.
    • +
    + + +
    + +
    + +
    + + WriteCalendarAlarms (line 312) +
    + + +

    Given a dav_id and an original vCalendar, pull out each of the VALARMs and write the values into the calendar_alarm table.

    + +
    + null + + WriteCalendarAlarms + + ( $dav_id,  $vcal) +
    + +
      +
    • + + $dav_id
    • +
    • + vCalendar + $vcal
    • +
    + + +
    + +
    + +
    + + WriteCalendarAttendees (line 374) +
    + + +

    Parse out the attendee property and write a row to the calendar_attendee table for each one.

    + +
    + null + + WriteCalendarAttendees + + (int $dav_id,  $vcal) +
    + +
      +
    • + int + $dav_id: The dav_id of the caldav_data we're processing
    • +
    • + vComponent + $vcal: The VEVENT or VTODO containing the ATTENDEEs
    • +
    + + +
    @@ -182,7 +290,7 @@
    - WriteMember (line 301) + WriteMember (line 286)
    @@ -291,12 +399,16 @@  DAVResource::IsExternal()
     + DAVResource::IsInSchedulingCollection()
    +  DAVResource::IsLocked()
     DAVResource::IsPrincipal()
     DAVResource::IsPublic()
     + DAVResource::IsPublicOnly()
    +  DAVResource::IsSchedulingCollection()
     DAVResource::NeedPrivilege()
    @@ -329,7 +441,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/RRuleTest.html davical-1.0.2/docs/api/davical/RRuleTest.html --- davical-0.9.9.7/docs/api/davical/RRuleTest.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/RRuleTest.html 2012-01-13 10:44:57.000000000 +0000 @@ -122,7 +122,7 @@
    -
    +
    @@ -141,7 +141,7 @@
    -
    +
    @@ -160,7 +160,7 @@
    -
    +
    @@ -179,7 +179,7 @@
    -
    +
    @@ -213,7 +213,7 @@
    -
    +
    @@ -248,7 +248,7 @@
    -
    +
    @@ -269,7 +269,7 @@
    -
    +
    @@ -295,7 +295,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/SqlToArray.html davical-1.0.2/docs/api/davical/SqlToArray.html --- davical-0.9.9.7/docs/api/davical/SqlToArray.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/SqlToArray.html 2012-01-13 10:44:57.000000000 +0000 @@ -117,7 +117,7 @@
    -
    +
    @@ -136,7 +136,7 @@
    -
    +
    @@ -155,7 +155,7 @@
    -
    +
    @@ -189,7 +189,7 @@
    -
    +
    @@ -215,7 +215,7 @@
    -
    +
    @@ -241,7 +241,7 @@
    -
    +
    @@ -267,7 +267,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:56 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/tzservice/_htdocs---tz.php.html davical-1.0.2/docs/api/davical/tzservice/_htdocs---tz.php.html --- davical-0.9.9.7/docs/api/davical/tzservice/_htdocs---tz.php.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/tzservice/_htdocs---tz.php.html 2012-01-13 10:44:57.000000000 +0000 @@ -40,7 +40,7 @@
    -
    +
     @@ -55,7 +55,7 @@
    -
    +
     @@ -76,7 +76,7 @@
    -
    +
     @@ -91,7 +91,7 @@
    -
    +
     @@ -112,7 +112,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---capabilities.php.html davical-1.0.2/docs/api/davical/tzservice/_inc---tz---capabilities.php.html --- davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---capabilities.php.html 2011-10-24 07:09:27.000000000 +0000 +++ davical-1.0.2/docs/api/davical/tzservice/_inc---tz---capabilities.php.html 2012-01-13 10:44:53.000000000 +0000 @@ -34,7 +34,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:27 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:53 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---expand.php.html davical-1.0.2/docs/api/davical/tzservice/_inc---tz---expand.php.html --- davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---expand.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/tzservice/_inc---tz---expand.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -163,7 +163,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---get.php.html davical-1.0.2/docs/api/davical/tzservice/_inc---tz---get.php.html --- davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---get.php.html 2011-10-24 07:09:28.000000000 +0000 +++ davical-1.0.2/docs/api/davical/tzservice/_inc---tz---get.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -67,7 +67,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:28 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---list.php.html davical-1.0.2/docs/api/davical/tzservice/_inc---tz---list.php.html --- davical-0.9.9.7/docs/api/davical/tzservice/_inc---tz---list.php.html 2011-10-24 07:09:29.000000000 +0000 +++ davical-1.0.2/docs/api/davical/tzservice/_inc---tz---list.php.html 2012-01-13 10:44:55.000000000 +0000 @@ -67,7 +67,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:29 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:55 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/davical/VCard.html davical-1.0.2/docs/api/davical/VCard.html --- davical-0.9.9.7/docs/api/davical/VCard.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/davical/VCard.html 2012-01-13 10:44:57.000000000 +0000 @@ -88,7 +88,7 @@
    -
    +
    @@ -117,7 +117,7 @@
    -
    +
    @@ -143,11 +143,11 @@
    -
    +
    - WriteEmails (line 149) + WriteEmails (line 153)
    @@ -169,11 +169,11 @@
    -
    +
    - WritePhones (line 120) + WritePhones (line 122)
    @@ -200,7 +200,7 @@

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/elementindex_davical.html davical-1.0.2/docs/api/elementindex_davical.html --- davical-0.9.9.7/docs/api/elementindex_davical.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/elementindex_davical.html 2012-01-13 10:44:51.000000000 +0000 @@ -409,6 +409,14 @@
    CalDAVRequest::AllowedTo() in CalDAVRequest.php
    Are we allowed to do the requested activity
    +
    + Method + actualDeleteCalendarMember +
    +
    + +
    Writes the data to a member in the collection and returns the segment_name of the resource in our internal namespace.
    +
    @@ -592,6 +600,13 @@
    Function + check_curl +
    +
    +
    check_curl() in setup.php
    +
    +
    + Function check_datetime
    @@ -670,6 +685,13 @@
    Function + check_real_php +
    +
    +
    check_real_php() in setup.php
    +
    +
    + Function check_schema_version
    @@ -842,14 +864,6 @@
    Function - calendar_to_xml -
    -
    -
    calendar_to_xml() in caldav-REPORT.php
    -
    Return XML for a single calendar (or todo) entry from the DB
    -
    -
    - Function component_to_xml
    @@ -1269,6 +1283,14 @@
    Function + deliverItipCancel +
    +
    +
    deliverItipCancel() in schedule-functions.php
    +
    Delivers the iTIP CANCEL message to an ATTENDEE's Scheduling Inbox Collection.
    +
    +
    + Function display_status
    @@ -1277,6 +1299,30 @@
    Function + doItipAttendeeReply +
    +
    +
    doItipAttendeeReply() in schedule-functions.php
    +
    Do the scheduling adjustments for a REPLY when an ATTENDEE updates their status.
    +
    +
    + Function + doItipOrganizerCancel +
    +
    +
    doItipOrganizerCancel() in schedule-functions.php
    +
    Handles sending the iTIP CANCEL messages to each ATTENDEE by the ORGANIZER.
    +
    +
    + Function + do_scheduling_for_delete +
    +
    +
    do_scheduling_for_delete() in schedule-functions.php
    +
    Entry point for scheduling on DELETE, for which there are thee outcomes:
    • We don't do scheduling (disabled, no organizer, ...)
    • We are an ATTENDEE declining the meeting.
    +
    +
    + Function do_scheduling_reply
    @@ -1803,7 +1849,7 @@
    -
    Fetch the parent to this resource.
    +
    Fetch the parent to this resource. This is deprecated - use GetParentContainer() instead.
    Method @@ -2007,6 +2053,13 @@
    Function + GetItip +
    +
    +
    GetItip() in schedule-functions.php
    +
    +
    + Function GetTZID
    @@ -2326,11 +2379,27 @@
    Function + import_addressbook_collection +
    +
    +
    import_addressbook_collection() in caldav-PUT-functions.php
    +
    This function will import a whole calendar
    +
    +
    + Function + import_calendar_collection +
    +
    +
    import_calendar_collection() in caldav-PUT-functions.php
    +
    This function will import a whole calendar
    +
    +
    + Function import_collection
    import_collection() in caldav-PUT-functions.php
    -
    This function will import a whole calendar
    +
    This function will import a whole collection
    Method @@ -2534,6 +2603,14 @@
    Method + IsInSchedulingCollection +
    +
    + +
    Checks whether this resource is IN a scheduling inbox/outbox collection
    +
    +
    + Method IsLocked
    @@ -2558,11 +2635,19 @@
    Method + IsPublicOnly +
    +
    +
    DAVResource::IsPublicOnly() in DAVResource.php
    +
    Checks whether the target collection is for public events only
    +
    +
    + Method IsSchedulingCollection
    -
    Checks whether this resource is a calendar
    +
    Checks whether this resource is a scheduling inbox/outbox collection
    @@ -2860,6 +2945,14 @@
    Function + processItipCancel +
    +
    +
    processItipCancel() in schedule-functions.php
    +
    Does the actual processing of the iTIP CANCEL message on behalf of an ATTENDEE, which generally means writing it into the ATTENDEE's default calendar.
    +
    +
    + Function process_ace
    @@ -3478,6 +3571,13 @@
    SqlToArray in SqlToArray.php
    + Page + schedule-functions.php +
    +
    +
    schedule-functions.php in schedule-functions.php
    +
    +
    Function send_dav_header
    @@ -3989,6 +4089,22 @@
    Method + WriteCalendarAlarms +
    +
    + +
    Given a dav_id and an original vCalendar, pull out each of the VALARMs and write the values into the calendar_alarm table.
    +
    +
    + Method + WriteCalendarAttendees +
    +
    + +
    Parse out the attendee property and write a row to the calendar_attendee table for each one.
    +
    +
    + Method WriteCalendarMember
    diff -Nru davical-0.9.9.7/docs/api/elementindex.html davical-1.0.2/docs/api/elementindex.html --- davical-0.9.9.7/docs/api/elementindex.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/elementindex.html 2012-01-13 10:44:51.000000000 +0000 @@ -59,10 +59,11 @@
    Method - addAuthor + actualDeleteCalendarMember
    -
    AtomEntry::addAuthor() in AtomFeed.php
    + +
    Writes the data to a member in the collection and returns the segment_name of the resource in our internal namespace.
    Method @@ -73,6 +74,13 @@
    Method + addAuthor +
    +
    +
    AtomEntry::addAuthor() in AtomFeed.php
    +
    +
    + Method addCategory
    @@ -144,23 +152,23 @@ AllowedTo
    -
    CalDAVRequest::AllowedTo() in CalDAVRequest.php
    -
    Are we allowed to do the requested activity
    +
    PublicSession::AllowedTo() in PublicSession.php
    +
    Checks whether a user is allowed to do something.
    Method AllowedTo
    -
    HTTPAuthSession::AllowedTo() in HTTPAuthSession.php
    -
    Checks whether a user is allowed to do something.
    +
    CalDAVRequest::AllowedTo() in CalDAVRequest.php
    +
    Are we allowed to do the requested activity
    Method AllowedTo
    -
    PublicSession::AllowedTo() in PublicSession.php
    +
    HTTPAuthSession::AllowedTo() in HTTPAuthSession.php
    Checks whether a user is allowed to do something.
    @@ -207,7 +215,7 @@ AssignSessionDetails
    - +
    Internal function used to assign the session details to a user's new session.
    @@ -215,7 +223,7 @@ AssignSessionDetails
    - +
    Internal function used to assign the session details to a user's new session.
    @@ -555,14 +563,6 @@
    Principal::cacheFlush() in Principal.php
    - Class - CalDAVClient -
    -
    -
    CalDAVClient in caldav-client.php
    -
    A class for accessing DAViCal via CalDAV, as a client
    -
    -
    Method CalDAVClient
    @@ -572,6 +572,14 @@
    Class + CalDAVClient +
    +
    +
    CalDAVClient in caldav-client.php
    +
    A class for accessing DAViCal via CalDAV, as a client
    +
    +
    + Class CalDAVRequest
    @@ -610,14 +618,6 @@
    Get the calendar_home_set, as lazily as possible
    - Function - calendar_to_xml -
    -
    -
    calendar_to_xml() in caldav-REPORT.php
    -
    Return XML for a single calendar (or todo) entry from the DB
    -
    -
    Method CheckPassword
    @@ -648,6 +648,13 @@
    Function + check_curl +
    +
    +
    check_curl() in setup.php
    +
    +
    + Function check_datetime
    @@ -726,6 +733,13 @@
    Function + check_real_php +
    +
    +
    check_real_php() in setup.php
    +
    +
    + Function check_schema_version
    @@ -1361,19 +1375,19 @@
    Method - DaysInMonth + daysInMonth
    - -
    No of days in a month 1(Jan) - 12(Dec)
    + +
    Returns the number of days in a year/month pair
    Method - daysInMonth + DaysInMonth
    - -
    Returns the number of days in a year/month pair
    + +
    No of days in a month 1(Jan) - 12(Dec)
    Constant @@ -1413,6 +1427,14 @@
    delete_collection() in caldav-DELETE.php
    + Function + deliverItipCancel +
    +
    +
    deliverItipCancel() in schedule-functions.php
    +
    Delivers the iTIP CANCEL message to an ATTENDEE's Scheduling Inbox Collection.
    +
    +
    Method DepthRegexTail
    @@ -1468,6 +1490,22 @@
    Get a single item from the server.
    + Function + doItipAttendeeReply +
    +
    +
    doItipAttendeeReply() in schedule-functions.php
    +
    Do the scheduling adjustments for a REPLY when an ATTENDEE updates their status.
    +
    +
    + Function + doItipOrganizerCancel +
    +
    +
    doItipOrganizerCancel() in schedule-functions.php
    +
    Handles sending the iTIP CANCEL messages to each ATTENDEE by the ORGANIZER.
    +
    +
    Method doNormalLine
    @@ -1523,6 +1561,14 @@
    Function + do_scheduling_for_delete +
    +
    +
    do_scheduling_for_delete() in schedule-functions.php
    +
    Entry point for scheduling on DELETE, for which there are thee outcomes:
    • We don't do scheduling (disabled, no organizer, ...)
    • We are an ATTENDEE declining the meeting.
    +
    +
    + Function do_scheduling_reply
    @@ -1882,7 +1928,7 @@
    -
    Fetch the parent to this resource.
    +
    Fetch the parent to this resource. This is deprecated - use GetParentContainer() instead.
    Method @@ -2134,6 +2180,13 @@
    Output http response headers
    + Function + GetItip +
    +
    +
    GetItip() in schedule-functions.php
    +
    +
    Method GetLockDetails
    @@ -2200,16 +2253,16 @@ GetProperty
    -
    DAVResource::GetProperty() in DAVResource.php
    -
    Return general server-related properties, in plain form
    +
    DAVPrincipal::GetProperty() in DAVPrincipal.php
    +
    Return an arbitrary property
    Method GetProperty
    -
    DAVPrincipal::GetProperty() in DAVPrincipal.php
    -
    Return an arbitrary property
    +
    DAVResource::GetProperty() in DAVResource.php
    +
    Return general server-related properties, in plain form
    Method @@ -2641,14 +2694,6 @@
    todo work out something more than true/false returns for dependency checks
    - Class - iCalDate -
    -
    -
    iCalDate in RRule.php
    -
    A Class for handling dates in iCalendar format. We do make the simplifying assumption that all date handling in here is normalised to GMT. One day we might provide some functions to do that, but for now it is done externally.
    -
    -
    Method iCalDate
    @@ -2657,6 +2702,14 @@
    The constructor takes either an iCalendar date, a text string formatted as an iCalendar date, or epoch seconds.
    + Class + iCalDate +
    +
    +
    iCalDate in RRule.php
    +
    A Class for handling dates in iCalendar format. We do make the simplifying assumption that all date handling in here is normalised to GMT. One day we might provide some functions to do that, but for now it is done externally.
    +
    +
    Method id
    @@ -2695,11 +2748,27 @@
    Function + import_addressbook_collection +
    +
    +
    import_addressbook_collection() in caldav-PUT-functions.php
    +
    This function will import a whole calendar
    +
    +
    + Function + import_calendar_collection +
    +
    +
    import_calendar_collection() in caldav-PUT-functions.php
    +
    This function will import a whole calendar
    +
    +
    + Function import_collection
    import_collection() in caldav-PUT-functions.php
    -
    This function will import a whole calendar
    +
    This function will import a whole collection
    Page @@ -2732,19 +2801,19 @@
    Method - IsAddressBook + IsAddressbook
    -
    CalDAVRequest::IsAddressBook() in CalDAVRequest.php
    -
    Returns true if the URL referenced by this request points at an addressbook collection.
    +
    DAVResource::IsAddressbook() in DAVResource.php
    +
    Checks whether this resource is an addressbook
    Method - IsAddressbook + IsAddressBook
    -
    DAVResource::IsAddressbook() in DAVResource.php
    -
    Checks whether this resource is an addressbook
    +
    CalDAVRequest::IsAddressBook() in CalDAVRequest.php
    +
    Returns true if the URL referenced by this request points at an addressbook collection.
    Method @@ -2759,16 +2828,16 @@ IsCalendar
    -
    DAVResource::IsCalendar() in DAVResource.php
    -
    Checks whether this resource is a calendar
    +
    CalDAVRequest::IsCalendar() in CalDAVRequest.php
    +
    Returns true if the URL referenced by this request points at a calendar collection.
    Method IsCalendar
    -
    CalDAVRequest::IsCalendar() in CalDAVRequest.php
    -
    Returns true if the URL referenced by this request points at a calendar collection.
    +
    DAVResource::IsCalendar() in DAVResource.php
    +
    Checks whether this resource is a calendar
    Class @@ -2841,6 +2910,14 @@
    Method + IsInSchedulingCollection +
    +
    + +
    Checks whether this resource is IN a scheduling inbox/outbox collection
    +
    +
    + Method IsLocked
    @@ -2905,11 +2982,19 @@
    Method + IsPublicOnly +
    +
    +
    DAVResource::IsPublicOnly() in DAVResource.php
    +
    Checks whether the target collection is for public events only
    +
    +
    + Method IsSchedulingCollection
    -
    Checks whether this resource is a calendar
    +
    Checks whether this resource is a scheduling inbox/outbox collection
    @@ -3243,15 +3328,15 @@ $privileges
    -
    CalDAVRequest::$privileges in CalDAVRequest.php
    -
    The decimal privileges allowed by this user to the identified resource.
    +
    Principal::$privileges in Principal.php
    Variable $privileges
    -
    Principal::$privileges in Principal.php
    +
    CalDAVRequest::$privileges in CalDAVRequest.php
    +
    The decimal privileges allowed by this user to the identified resource.
    Variable @@ -3444,7 +3529,7 @@ Privileges
    -
    CalDAVRequest::Privileges() in CalDAVRequest.php
    +
    DAVResource::Privileges() in DAVResource.php
    Return the privileges bits for the current session user to this resource
    @@ -3452,7 +3537,7 @@ Privileges
    -
    DAVResource::Privileges() in DAVResource.php
    +
    CalDAVRequest::Privileges() in CalDAVRequest.php
    Return the privileges bits for the current session user to this resource
    @@ -3488,6 +3573,14 @@
    Function + processItipCancel +
    +
    +
    processItipCancel() in schedule-functions.php
    +
    Does the actual processing of the iTIP CANCEL message on behalf of an ATTENDEE, which generally means writing it into the ATTENDEE's default calendar.
    +
    +
    + Function process_ace
    @@ -3518,14 +3611,6 @@
    Accessor for read or write proxy
    - Class - PublicSession -
    -
    -
    PublicSession in PublicSession.php
    -
    A Class for handling a public (anonymous) session
    -
    -
    Method PublicSession
    @@ -3534,6 +3619,14 @@
    The constructor, which just calls the actual type configured
    + Class + PublicSession +
    +
    +
    PublicSession in PublicSession.php
    +
    A Class for handling a public (anonymous) session
    +
    +
    Function public_events_only
    @@ -3598,14 +3691,14 @@ $resourcetypes
    -
    DAVResource::$resourcetypes in DAVResource.php
    +
    Principal::$resourcetypes in Principal.php
    Variable $resourcetypes
    -
    Principal::$resourcetypes in Principal.php
    +
    DAVResource::$resourcetypes in DAVResource.php
    Variable @@ -3653,25 +3746,25 @@
    Method - render + Render
    -
    Tools::render() in tools.php
    +
    iCalDate::Render() in RRule.php
    +
    Set the day of week used for calculation of week starts
    Method Render
    -
    iCalDate::Render() in RRule.php
    -
    Set the day of week used for calculation of week starts
    +
    Method - Render + render
    - +
    Tools::render() in tools.php
    Method @@ -3943,6 +4036,13 @@
    SqlToArray.php in SqlToArray.php
    + Page + schedule-functions.php +
    +
    +
    schedule-functions.php in schedule-functions.php
    +
    +
    Method second
    @@ -4004,14 +4104,14 @@ setDate
    -
    AtomEntry::setDate() in AtomFeed.php
    +
    Method setDate
    - +
    AtomEntry::setDate() in AtomFeed.php
    Method @@ -4025,14 +4125,14 @@ setDateModified
    - +
    Method setDateModified
    - +
    Method @@ -4053,14 +4153,14 @@ setDescription
    - +
    Method setDescription
    - +
    Method @@ -4091,14 +4191,14 @@ setId
    -
    AtomEntry::setId() in AtomFeed.php
    +
    AtomFeed::setId() in AtomFeed.php
    Method setId
    -
    AtomFeed::setId() in AtomFeed.php
    +
    AtomEntry::setId() in AtomFeed.php
    Method @@ -4727,6 +4827,22 @@
    Method + WriteCalendarAlarms +
    +
    + +
    Given a dav_id and an original vCalendar, pull out each of the VALARMs and write the values into the calendar_alarm table.
    +
    +
    + Method + WriteCalendarAttendees +
    +
    + +
    Parse out the attendee property and write a row to the calendar_attendee table for each one.
    +
    +
    + Method WriteCalendarMember
    diff -Nru davical-0.9.9.7/docs/api/errors.html davical-1.0.2/docs/api/errors.html --- davical-0.9.9.7/docs/api/errors.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/errors.html 2012-01-13 10:44:57.000000000 +0000 @@ -44,6 +44,7 @@ collection-edit.php
    createdb.php
    davical_configuration_missing.php
    +DAVPrincipal.php
    DAVResource.php
    DAVTicket.php
    dbexec.php
    @@ -75,6 +76,7 @@ public.php
    pubsub.php
    RRule-v2.php
    +schedule-functions.php
    setup.php
    SqlToArray.php
    test-RRULE-v2.php
    @@ -122,9 +124,9 @@

    always.php

    Warnings:


    -Warning on line 28 - Page-level DocBlock precedes "function early_exception_handler", use another DocBlock to document the source element
    +Warning on line 29 - Page-level DocBlock precedes "function early_exception_handler", use another DocBlock to document the source element

    Errors:


    -Error on line 28 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 29 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    AtomFeed.php

    Warnings:


    @@ -137,8 +139,8 @@

    Warnings:


    Warning on line 27 - Page-level DocBlock precedes "require_once "DataUpdate.php"", use another DocBlock to document the source element

    Errors:


    -Error on line 27 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage authentication"
    Error on line 27 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 27 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage authentication"

    autodiscover-handler.php

    Warnings:


    @@ -183,16 +185,16 @@

    Warnings:


    Warning on line 11 - Page-level DocBlock precedes "require_once 'AwlQuery.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    caldav-MKTICKET.php

    Warnings:


    Warning on line 19 - package davical is already in category Technical, will now replace with category Documentation
    Warning on line 20 - Page-level DocBlock precedes "require_once 'DAVResource.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 20 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 20 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 20 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    caldav-MOVE.php

    Warnings:


    @@ -209,8 +211,8 @@

    Warnings:


    Warning on line 12 - Page-level DocBlock precedes "require_once "XMLDocument.php"", use another DocBlock to document the source element

    Errors:


    -Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    caldav-PROPFIND.php

    Warnings:


    @@ -237,11 +239,11 @@

    caldav-REPORT-calquery.php

    Warnings:


    -Warning on line 360 - File "/home/karora/projects/davical/inc/caldav-REPORT-calquery.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 365 - File "/home/karora/projects/davical/inc/caldav-REPORT-calquery.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    caldav-REPORT-cardquery.php

    Warnings:


    -Warning on line 232 - File "/home/karora/projects/davical/inc/caldav-REPORT-cardquery.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 233 - File "/home/karora/projects/davical/inc/caldav-REPORT-cardquery.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    caldav-REPORT-expand-property.php

    Warnings:


    @@ -253,8 +255,8 @@

    caldav-REPORT-multiget.php

    Warnings:


    -Warning on line 107 - Unknown tag "@todo:" used
    -Warning on line 125 - File "/home/karora/projects/davical/inc/caldav-REPORT-multiget.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 106 - Unknown tag "@todo:" used
    +Warning on line 124 - File "/home/karora/projects/davical/inc/caldav-REPORT-multiget.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    caldav-REPORT-principal-match.php

    Warnings:


    @@ -268,8 +270,8 @@

    Warnings:


    Warning on line 12 - Page-level DocBlock precedes "require_once "XMLDocument.php"", use another DocBlock to document the source element

    Errors:


    -Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    caldav.php

    Warnings:


    @@ -288,7 +290,7 @@

    collection-edit.php

    Warnings:


    -Warning on line 538 - File "/home/karora/projects/davical/inc/ui/collection-edit.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 547 - File "/home/karora/projects/davical/inc/ui/collection-edit.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    createdb.php

    Warnings:


    @@ -297,6 +299,13 @@

    davical_configuration_missing.php

    Warnings:


    Warning on line 31 - File "/home/karora/projects/davical/inc/davical_configuration_missing.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    + +

    DAVPrincipal.php

    +

    Warnings:


    +Warning on line 11 - Page-level DocBlock precedes "require_once 'Principal.php'", use another DocBlock to document the source element
    +

    Errors:


    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage Principal"

    DAVResource.php

    Warnings:


    @@ -331,8 +340,8 @@ Warning on line 13 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
    Warning on line 16 - no @package tag was used in a DocBlock for class ldapDrivers

    Errors:


    -Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"
    +Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    drivers_pwauth_pam.php

    Warnings:


    @@ -344,8 +353,8 @@

    drivers_rimap.php

    Warnings:


    -Warning on line 13 - package davical is already in category Documentation, will now replace with category Technical
    Warning on line 13 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
    +Warning on line 13 - package davical is already in category Documentation, will now replace with category Technical
    Warning on line 16 - no @package tag was used in a DocBlock for class imapPamDrivers

    Errors:


    Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    @@ -356,26 +365,26 @@ Warning on line 13 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
    Warning on line 16 - no @package tag was used in a DocBlock for class squidPamDrivers

    Errors:


    -Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"
    Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"

    expand.php

    Warnings:


    Warning on line 11 - Page-level DocBlock precedes "require_once 'vCalendar.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage tzservice"
    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    external-browse.php

    Warnings:


    -Warning on line 26 - File "/home/karora/projects/davical/inc/ui/external-browse.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 37 - File "/home/karora/projects/davical/inc/ui/external-browse.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    external-fetch.php

    Warnings:


    -Warning on line 34 - Page-level DocBlock precedes "function create_external", use another DocBlock to document the source element
    +Warning on line 39 - Page-level DocBlock precedes "function create_external", use another DocBlock to document the source element

    Errors:


    -Error on line 34 - "function" create_external's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage external-bind"
    -Error on line 34 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 39 - "function" create_external's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage external-bind"
    +Error on line 39 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    feed.php

    Warnings:


    @@ -455,15 +464,15 @@

    Warnings:


    Warning on line 11 - Page-level DocBlock precedes "require_once 'AwlCache.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage Principal"
    Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage Principal"

    public.php

    Warnings:


    Warning on line 10 - Page-level DocBlock precedes "require "./always.php"", use another DocBlock to document the source element

    Errors:


    -Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 10 - "include" require's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    +Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    pubsub.php

    Warnings:


    @@ -477,11 +486,18 @@ Warning on line 521 - no @package tag was used in a DocBlock for class RepeatRuleDateRange
    Warning on line 589 - no @package tag was used in a DocBlock for class RepeatRule
    Warning on line 1448 - Unknown tag "@todo:" used
    + +

    schedule-functions.php

    +

    Warnings:


    +Warning on line 11 - Page-level DocBlock precedes "require_once 'vCalendar.php'", use another DocBlock to document the source element
    +

    Errors:


    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    setup.php

    Warnings:


    Warning on line 7 - no @package tag was used in a DocBlock for class CheckResult
    -Warning on line 386 - File "/home/karora/projects/davical/htdocs/setup.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 404 - File "/home/karora/projects/davical/htdocs/setup.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    SqlToArray.php

    Warnings:


    @@ -507,8 +523,8 @@ Warning on line 11 - Page-level DocBlock precedes "require_once "./always.php"", use another DocBlock to document the source element
    Warning on line 38 - no @package tag was used in a DocBlock for class Tools

    Errors:


    -Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage DAViCalSession"
    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    tz.php

    Warnings:


    @@ -524,18 +540,18 @@

    vcard.php

    Warnings:


    Warning on line 8 - no @package tag was used in a DocBlock for class VCard
    -Warning on line 167 - File "/home/karora/projects/davical/inc/vcard.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 173 - File "/home/karora/projects/davical/inc/vcard.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    well-known.php

    Warnings:


    -Warning on line 106 - File "/home/karora/projects/davical/inc/well-known.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 107 - File "/home/karora/projects/davical/inc/well-known.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    WritableCollection.php

    Warnings:


    Warning on line 3 - no @package tag was used in a DocBlock for class WritableCollection
    -Warning on line 319 - File "/home/karora/projects/davical/inc/WritableCollection.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 444 - File "/home/karora/projects/davical/inc/WritableCollection.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/api/index.html davical-1.0.2/docs/api/index.html --- davical-0.9.9.7/docs/api/index.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/index.html 2012-01-13 10:44:51.000000000 +0000 @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> - + DAViCal diff -Nru davical-0.9.9.7/docs/api/li_davical.html davical-1.0.2/docs/api/li_davical.html --- davical-0.9.9.7/docs/api/li_davical.html 2011-10-24 07:09:24.000000000 +0000 +++ davical-1.0.2/docs/api/li_davical.html 2012-01-13 10:44:51.000000000 +0000 @@ -43,6 +43,7 @@
    Functioncaldav_get_feed
    Functioncheck_awl_version
    Functioncheck_calendar
    +
    Functioncheck_curl
    Functioncheck_datetime
    Functioncheck_davical_version
    Functioncheck_for_expansion
    @@ -54,6 +55,7 @@
    Functioncheck_pdo
    Functioncheck_pdo_pgsql
    Functioncheck_pgsql
    +
    Functioncheck_real_php
    Functioncheck_schema_version
    Functioncheck_string
    Functioncheck_suhosin_server_strip
    @@ -171,21 +173,28 @@
     Functions
    -
    Functioncalendar_to_xml
    Functioncomponent_to_xml
    FunctioncontrolRequestContainer
    Functiondelete_collection
    +
    FunctiondeliverItipCancel
    Functiondisplay_status
    +
    FunctiondoItipAttendeeReply
    +
    FunctiondoItipOrganizerCancel
    +
    Functiondo_scheduling_for_delete
    Functiondo_scheduling_reply
    Functiondo_scheduling_requests
    +
    FunctionGetItip
    FunctionGetTZID
    Functionhandle_cancel_request
    Functionhandle_freebusy_request
    Functionhandle_schedule_reply
    Functionhandle_schedule_request
    +
    Functionimport_addressbook_collection
    +
    Functionimport_calendar_collection
    Functionimport_collection
    FunctionlogRequestHeaders
    Functionobfuscated_event
    +
    FunctionprocessItipCancel
    Functionprocess_ace
    Functionproperty_response
    Functionpublic_events_only
    @@ -217,6 +226,7 @@
    Filecaldav-REPORT.php
    Filecaldav.php
    Filepublic.php
    +
    Fileschedule-functions.php
    diff -Nru davical-0.9.9.7/docs/api/todolist.html davical-1.0.2/docs/api/todolist.html --- davical-0.9.9.7/docs/api/todolist.html 2011-10-24 07:09:30.000000000 +0000 +++ davical-1.0.2/docs/api/todolist.html 2012-01-13 10:44:57.000000000 +0000 @@ -28,7 +28,7 @@
  • Improve this to calculate the days difference and then the clock time diff and work from there.
  • - Documentation generated on Mon, 24 Oct 2011 20:09:30 +1300 by phpDocumentor 1.4.3 + Documentation generated on Fri, 13 Jan 2012 23:44:57 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff -Nru davical-0.9.9.7/docs/website/clients/Chandler-details.php davical-1.0.2/docs/website/clients/Chandler-details.php --- davical-0.9.9.7/docs/website/clients/Chandler-details.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/docs/website/clients/Chandler-details.php 2011-11-01 01:21:10.000000000 +0000 @@ -7,7 +7,7 @@
    1. Select "Subscribe" from the "Share" menu (or in older builds it was in the "Collection" menu).
    2. -
    3. Enter a URL like: "http://calendar.example.net/caldav.php/username/home/" (click "Subscribe")
       
    4. +
    5. Enter a URL like: "http://calendar.example.net/caldav.php/username/calendar/" (click "Subscribe")
       
    6. You will then be prompted for a username/password with in an expanded dialog. Enter these and click "Subscribe" again.
       
    7. You should now have a new calendar showing.
    diff -Nru davical-0.9.9.7/docs/website/clients/Evolution-details.php davical-1.0.2/docs/website/clients/Evolution-details.php --- davical-0.9.9.7/docs/website/clients/Evolution-details.php 2009-04-11 00:11:39.000000000 +0000 +++ davical-1.0.2/docs/website/clients/Evolution-details.php 2011-11-01 01:20:57.000000000 +0000 @@ -5,7 +5,7 @@
    1. Select "File" then "New" then "Calendar" from the menus.
    2. -
    3. Choose a type of "CalDAV", enter a name, and a URL such as caldav://server.domain.name/caldav.php/username/home/, enter your user name for DAViCal and click "OK".
       
    4. +
    5. Choose a type of "CalDAV", enter a name, and a URL such as caldav://server.domain.name/caldav.php/username/calendar/, enter your user name for DAViCal and click "OK".
       
    6. You should now be prompted for a password for that username. Enter the password and your calendar should now show.
    diff -Nru davical-0.9.9.7/docs/website/clients/Interoperability-details.php davical-1.0.2/docs/website/clients/Interoperability-details.php --- davical-0.9.9.7/docs/website/clients/Interoperability-details.php 2009-04-11 00:11:39.000000000 +0000 +++ davical-1.0.2/docs/website/clients/Interoperability-details.php 2011-11-01 02:55:35.000000000 +0000 @@ -10,13 +10,25 @@
  • Calendar namespace
  • -

    The host name is, of course, up to you. The 'root path' should be /caldav.php/ and anything following that is the calendar namespace.

    -

    Within the calendar namespace DAViCal uses the first element of the path as the user or resource name, so that a client connecting at the root path -can see all of the (accessible) users and resources available to them (Mulberry displays this hierarchy) with any calendars below that.

    -

    Effectively this means that in Evolution, Sunbird and Lightning you should really specify a calendar URL which is something like:

    +

    The host name is, of course, up to you. The 'root path' should be +/caldav.php/ and anything following that is the calendar +namespace.

    + +

    Within the calendar namespace DAViCal uses the first element of the +path as the user or 'princpal' name, so that a client connecting at the +root path can see all of the (accessible) users and resources available +to them (Mulberry displays this hierarchy) with any calendars below that.

    + +

    This means that in Evolution, Lightning and other software wanting a +'calendar' URL you should specify a URL which is something like:

    -http://calendar.example.net/caldav.php/username/home/
    +http://calendar.example.net/caldav.php/username/calendar/
     
    -

    Then, when more calendar client software sees it as useful to be able to browse that hierarchy, you won't be up for any heavy database manipulation.

    -

    I may well enforce this standard in some way before release 1.0, as well as auto-creating the collection records when Evolution, Lightning -or Sunbird attempt to store to a non-existent collection.

    + +

    DAViCal creates two collections automatically when a user is created. In +recent versions these are called 'calendar' and 'addressbook'. Some software +also makes it easy to create more calendars and addressbooks, or you can create +more through DAViCal's web interface, also.

    + +

    In older versions of DAViCal (pre 0.9.9.5) the default calendar was named 'home' +and there was no default addressbook.

    diff -Nru davical-0.9.9.7/docs/website/clients/Mozilla-details.php davical-1.0.2/docs/website/clients/Mozilla-details.php --- davical-0.9.9.7/docs/website/clients/Mozilla-details.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/docs/website/clients/Mozilla-details.php 2011-11-01 01:20:17.000000000 +0000 @@ -8,7 +8,7 @@
    1. Select "New Calendar" from the "File" menu.
    2. Choose "On the Network" (click "Next")
       
    3. -
    4. Choose a format of "CalDAV" and enter a URL like: "http://calendar.example.net/caldav.php/username/home/" (click "Next")
       
    5. +
    6. Choose a format of "CalDAV" and enter a URL like: "http://calendar.example.net/caldav.php/username/calendar/" (click "Next")
       
    7. Give the calendar an appropriate display name, and choose a colour for events on this calendar. (click "Next")
       
    8. click "Finish"
    diff -Nru davical-0.9.9.7/docs/website/clients/Other-details.php davical-1.0.2/docs/website/clients/Other-details.php --- davical-0.9.9.7/docs/website/clients/Other-details.php 2009-04-11 00:11:39.000000000 +0000 +++ davical-1.0.2/docs/website/clients/Other-details.php 2011-11-01 01:35:16.000000000 +0000 @@ -6,3 +6,24 @@

    If you want to point me at more free software that supports CalDAV, or send me free copies of such proprietary software, then I will add it to the list as well as make DAViCal work with it.

    + +

    In the general CalDAV terminology, client software will want to know +several facts about the CalDAV server. Some (like iCal and iOS) will try +and discover these facts for themselves, and others (like Lightning and +Evolution) will require you to enter some information. When they ask for +that information they will be asking for the following things:

    +
      +
    1. Where is the user's "home" collection?
    2. +
    3. Where is the user's "calendar" collection?
    4. +
    5. What is the server's domain name
    6. +
    + +

    Typically the answers, in DAViCal's case, are:

    +
      +
    1. .../caldav.php/username/
    2. +
    3. .../caldav.php/username/calendar/ (although in older versions the default calendar was called 'home' rather than 'calendar')
    4. +
    5. I can't help here - whatever you called it, I guess!
    6. +
    + +

    There could well be a wider range of information about many and varied client + software on the DAViCal Wiki as well. \ No newline at end of file diff -Nru davical-0.9.9.7/docs/website/index.php davical-1.0.2/docs/website/index.php --- davical-0.9.9.7/docs/website/index.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/docs/website/index.php 2011-11-09 07:03:27.000000000 +0000 @@ -65,10 +65,10 @@

    Contributing to DAViCal

    -

    We welcome contributions from interested people. You don't need to be able to write code - there are lots of +

    DAViCal LogoWe welcome contributions from interested people. You don't need to be able to write code - there are lots of small tasks around the project that can be done. CalDAV server:

    -Here are some things you could do that will help us to concentrate on making DAViCal a better:
      +

      Here are some things you could do that will help us to concentrate on making DAViCal better:

      • writing documentation
      • helping people on IRC, on the mailing list or sf.net forums
      • translating the DAViCal interface to another language
      • diff -Nru davical-0.9.9.7/docs/website/style.css davical-1.0.2/docs/website/style.css --- davical-0.9.9.7/docs/website/style.css 2009-09-14 02:02:10.000000000 +0000 +++ davical-1.0.2/docs/website/style.css 2011-11-09 07:04:38.000000000 +0000 @@ -202,6 +202,11 @@ vertical-align: text-top; } +.gone { + width: 0.01em; + height: 0.01em; +} + .prompt { font-weight: 700; width: 4em; diff -Nru davical-0.9.9.7/htdocs/admin.php davical-1.0.2/htdocs/admin.php --- davical-0.9.9.7/htdocs/admin.php 2010-12-27 11:25:21.000000000 +0000 +++ davical-1.0.2/htdocs/admin.php 2011-11-02 05:10:34.000000000 +0000 @@ -24,7 +24,7 @@ $c->messages[] = sprintf('No page found to %s %s%s%s', $action, ($action == 'browse' ? '' : 'a '), $component, ($action == 'browse' ? 's' : '')); include('page-header.php'); include('page-footer.php'); - exit(0); + @ob_flush(); exit(0); } include('page-header.php'); diff -Nru davical-0.9.9.7/htdocs/always.php davical-1.0.2/htdocs/always.php --- davical-0.9.9.7/htdocs/always.php 2011-10-19 23:24:52.000000000 +0000 +++ davical-1.0.2/htdocs/always.php 2012-01-13 10:44:36.000000000 +0000 @@ -26,6 +26,7 @@ foreach( $trace AS $k => $v ) { printf( "%s[%d] %s%s%s()\n", $v['file'], $v['line'], (isset($v['class'])?$v['class']:''), (isset($v['type'])?$v['type']:''), (isset($v['function'])?$v['function']:'') ); } + @ob_flush(); } set_exception_handler('early_exception_handler'); @@ -89,7 +90,7 @@ } if ( ! @include_once('AWLUtilities.php') ) { echo "Could not find the AWL libraries. Are they installed? Check your include_path in php.ini!\n"; - exit; + @ob_flush(); exit(0); } } @@ -145,7 +146,7 @@ } else { include('davical_configuration_missing.php'); - exit; + @ob_flush(); exit(0); } $config_warnings = trim(ob_get_contents()); ob_end_clean(); @@ -174,8 +175,8 @@ * */ $c->code_version = 0; -$c->want_awl_version = '0.49'; -$c->version_string = '0.9.9.7'; // The actual version # is replaced into that during the build /release process +$c->want_awl_version = '0.51'; +$c->version_string = '1.0.2'; // The actual version # is replaced into that during the build /release process if ( isset($c->version_string) && preg_match( '/(\d+)\.(\d+)\.(\d+)(.*)/', $c->version_string, $matches) ) { $c->code_major = $matches[1]; $c->code_minor = $matches[2]; diff -Nru davical-0.9.9.7/htdocs/caldav.php davical-1.0.2/htdocs/caldav.php --- davical-0.9.9.7/htdocs/caldav.php 2011-10-07 07:55:26.000000000 +0000 +++ davical-1.0.2/htdocs/caldav.php 2011-12-07 01:54:30.000000000 +0000 @@ -17,17 +17,17 @@ else { fpassthru($fh); } - exit(0); + @ob_flush(); exit(0); } require_once('./always.php'); if ( isset($_SERVER['PATH_INFO']) && preg_match( '{^/\.well-known/(.+)$}', $_SERVER['PATH_INFO'], $matches ) ) { require ('well-known.php'); - exit(0); + @ob_flush(); exit(0); } elseif ( isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/autodiscover/autodiscover.xml' ) { require ('autodiscover-handler.php'); - exit(0); + @ob_flush(); exit(0); } function logRequestHeaders() { @@ -102,7 +102,7 @@ $redirect_url = ConstructURL('/caldav.php'.$matches[1]); dbg_error_log( 'LOG WARNING', 'Redirecting %s for "%s" to "%s"', $request->method, $request->path, $redirect_url ); header('Location: '.$redirect_url ); - exit(0); + @ob_flush(); exit(0); } } diff -Nru davical-0.9.9.7/htdocs/index.php davical-1.0.2/htdocs/index.php --- davical-0.9.9.7/htdocs/index.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/htdocs/index.php 2011-11-02 05:11:09.000000000 +0000 @@ -4,7 +4,7 @@ * If the request is not a GET or POST then they must really want caldav.php! */ include("./caldav.php"); - exit; // Not that it should return from that! + @ob_flush(); exit(0); // Not that it should return from that! } include("./always.php"); diff -Nru davical-0.9.9.7/htdocs/setup.php davical-1.0.2/htdocs/setup.php --- davical-0.9.9.7/htdocs/setup.php 2011-09-13 23:25:54.000000000 +0000 +++ davical-1.0.2/htdocs/setup.php 2012-01-07 01:38:58.000000000 +0000 @@ -78,6 +78,13 @@ return new CheckResult(isset($loaded_extensions['ldap'])); } +function check_real_php() { + global $phpinfo, $loaded_extensions; + // Looking for "Server API
    + '; foreach( $dependencies AS $k => $v ) { $check_result = $v(); $dependencies_table .= sprintf( $dep_tpl, $check_result->getClass(), $k, - $check_result->getDescription() + $check_result->getDescription(), + rawurlencode($k) ); } diff -Nru davical-0.9.9.7/htdocs/tools.php davical-1.0.2/htdocs/tools.php --- davical-0.9.9.7/htdocs/tools.php 2011-10-18 18:39:06.000000000 +0000 +++ davical-1.0.2/htdocs/tools.php 2012-01-04 22:24:30.000000000 +0000 @@ -20,9 +20,9 @@ require_once("caldav-PUT-functions.php"); include_once('check_UTF8.php'); -if ( !$session->AllowedTo("Admin" ) ) - exit; - +if ( !$session->AllowedTo("Admin" ) ) { + @ob_flush(); exit(0); +} if( function_exists("sync_LDAP") && isset($_POST['Sync_LDAP'])){ sync_LDAP(); } diff -Nru davical-0.9.9.7/inc/always.php.in davical-1.0.2/inc/always.php.in --- davical-0.9.9.7/inc/always.php.in 2011-09-25 09:04:29.000000000 +0000 +++ davical-1.0.2/inc/always.php.in 2011-11-02 05:11:35.000000000 +0000 @@ -26,6 +26,7 @@ foreach( $trace AS $k => $v ) { printf( "%s[%d] %s%s%s()\n", $v['file'], $v['line'], (isset($v['class'])?$v['class']:''), (isset($v['type'])?$v['type']:''), (isset($v['function'])?$v['function']:'') ); } + @ob_flush(); } set_exception_handler('early_exception_handler'); @@ -89,7 +90,7 @@ } if ( ! @include_once('AWLUtilities.php') ) { echo "Could not find the AWL libraries. Are they installed? Check your include_path in php.ini!\n"; - exit; + @ob_flush(); exit(0); } } @@ -145,7 +146,7 @@ } else { include('davical_configuration_missing.php'); - exit; + @ob_flush(); exit(0); } $config_warnings = trim(ob_get_contents()); ob_end_clean(); diff -Nru davical-0.9.9.7/inc/auth-functions.php davical-1.0.2/inc/auth-functions.php --- davical-0.9.9.7/inc/auth-functions.php 2011-10-06 09:14:54.000000000 +0000 +++ davical-1.0.2/inc/auth-functions.php 2011-11-02 05:11:40.000000000 +0000 @@ -239,7 +239,7 @@ if ( isset($usr->active) && ($usr->active === 'f' || $usr->active === false) ) return false; if ( $type == 'INSERT' ) { - $qry = new AwlQuery( 'INSERT INTO principal( type_id, user_no, displayname, default_privileges) SELECT 1, user_no, fullname, :privs::INT::BIT(24) FROM usr WHERE username=:username', + $qry = new AwlQuery( 'INSERT INTO principal( type_id, user_no, displayname, default_privileges) SELECT 1, user_no, fullname, :privs::INT::BIT(24) FROM usr WHERE username=(text(:username))', array( ':privs' => privilege_to_bits($c->default_privileges), ':username' => $usr->username) ); $qry->Exec('Login',__LINE__,__FILE__); CreateHomeCalendar($usr->username); @@ -299,7 +299,7 @@ EOERRMSG; - exit(1); + @ob_flush(); exit(1); } if ( $qry->Exec('Login',__LINE__,__FILE__) && $qry->rows() == 1 ) { diff -Nru davical-0.9.9.7/inc/autodiscover-handler.php davical-1.0.2/inc/autodiscover-handler.php --- davical-0.9.9.7/inc/autodiscover-handler.php 2011-10-18 02:32:34.000000000 +0000 +++ davical-1.0.2/inc/autodiscover-handler.php 2011-11-02 04:55:47.000000000 +0000 @@ -14,7 +14,7 @@ if ( !isset($c->enable_autodiscover) || ! $c->enable_autodiscover ) { $request->DoResponse( 404 ); - exit(0); + exit(0); // unneccessary } $ns_outlook_req_2006 = "http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006"; @@ -40,7 +40,7 @@ ERROR; $request->DoResponse( $code, $response, 'text/xml; charset="utf-8"' ); - exit(0); + exit(0); // unneccessary } diff -Nru davical-0.9.9.7/inc/caldav-BIND.php davical-1.0.2/inc/caldav-BIND.php --- davical-0.9.9.7/inc/caldav-BIND.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/caldav-BIND.php 2012-01-07 01:38:58.000000000 +0000 @@ -47,7 +47,10 @@ $request->PreconditionFailed(403,'DAV::can-overwrite',translate('A resource already exists at the destination.')); } -if ( preg_match ( '{^https?://[A-Za-z][^/]*/.+$}', $href ) ) { +// external binds shouldn't ever point back to ourselves but they should be a valid http[s] url +if ( preg_match ( '{^https?://([^/]+)(:[0-9]\+)?/.+$}', $href, $matches ) && + strcasecmp( $matches[0], 'localhost' ) !== 0 && strcasecmp( $matches[0], '127.0.0.1' ) !== 0 + && strcasecmp( $matches[0], $_SERVER['SERVER_NAME'] ) !== 0 && strcasecmp( $matches[0], $_SERVER['SERVER_ADDR'] ) !== 0 ) { require_once('external-fetch.php'); $qry = new AwlQuery( ); $qry->QDo('SELECT collection_id FROM collection WHERE dav_name = :dav_name ', array( ':dav_name' => '/.external/'. md5($href) )); diff -Nru davical-0.9.9.7/inc/caldav-DELETE.php davical-1.0.2/inc/caldav-DELETE.php --- davical-0.9.9.7/inc/caldav-DELETE.php 2011-09-14 00:30:20.000000000 +0000 +++ davical-1.0.2/inc/caldav-DELETE.php 2011-10-31 20:03:58.000000000 +0000 @@ -17,6 +17,7 @@ $lock_opener = $request->FailIfLocked(); +require_once('schedule-functions.php'); function delete_collection( $id ) { $params = array( ':collection_id' => $id ); @@ -72,12 +73,14 @@ $request->DoResponse( 412, translate("Resource has changed on server - not deleted") ); } - $params = array( ':dav_id' => $dav_resource->resource_id() ); - + // Check to see if we need to do any scheduling transactions for this one. + do_scheduling_for_delete($dav_resource); + // We need to serialise access to this process just for this collection $cache = getCacheInstance(); $myLock = $cache->acquireLock('collection-'.$dav_resource->parent_path()); + $params = array( ':dav_id' => $dav_resource->resource_id() ); if ( $qry->QDo("SELECT write_sync_change(collection_id, 404, caldav_data.dav_name) FROM caldav_data WHERE dav_id = :dav_id", $params ) && $qry->QDo("DELETE FROM property WHERE dav_name = (SELECT dav_name FROM caldav_data WHERE dav_id = :dav_id)", $params ) && $qry->QDo("DELETE FROM locks WHERE dav_name = (SELECT dav_name FROM caldav_data WHERE dav_id = :dav_id)", $params ) @@ -92,7 +95,6 @@ $request->DoResponse( 204 ); } $cache->releaseLock($myLock); - } $request->DoResponse( 500 ); diff -Nru davical-0.9.9.7/inc/caldav-MOVE.php davical-1.0.2/inc/caldav-MOVE.php --- davical-0.9.9.7/inc/caldav-MOVE.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/caldav-MOVE.php 2011-11-22 10:45:19.000000000 +0000 @@ -102,7 +102,7 @@ if ( !$qry->Exec('move') ) rollback(500); $src_name = $src->dav_name(); -$dst_name = $dest->dav_name(); +$dst_name = ($dest->IsBinding() ? $dest->bound_from() : $dest->dav_name()); $src_collection = $src->GetProperty('collection_id'); $dst_collection = $dest->GetProperty('collection_id'); $src_user_no = $src->GetProperty('user_no'); diff -Nru davical-0.9.9.7/inc/caldav-POST.php davical-1.0.2/inc/caldav-POST.php --- davical-0.9.9.7/inc/caldav-POST.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/caldav-POST.php 2012-01-12 22:26:38.000000000 +0000 @@ -122,7 +122,7 @@ $request->XMLResponse( 200, $response ); } -$ical = new vComponent( $request->raw_post ); +$ical = new vCalendar( $request->raw_post ); $method = $ical->GetPValue('METHOD'); $resources = $ical->GetComponents('VTIMEZONE',false); diff -Nru davical-0.9.9.7/inc/caldav-PROPPATCH.php davical-1.0.2/inc/caldav-PROPPATCH.php --- davical-0.9.9.7/inc/caldav-PROPPATCH.php 2011-10-19 18:14:53.000000000 +0000 +++ davical-1.0.2/inc/caldav-PROPPATCH.php 2011-11-02 04:56:43.000000000 +0000 @@ -353,6 +353,5 @@ * Or it was all crap. */ $request->DoResponse( 500 ); - -exit(0); +exit(0); // unneccessary diff -Nru davical-0.9.9.7/inc/caldav-PUT-default.php davical-1.0.2/inc/caldav-PUT-default.php --- davical-0.9.9.7/inc/caldav-PUT-default.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/caldav-PUT-default.php 2011-12-02 00:09:48.000000000 +0000 @@ -24,7 +24,7 @@ $dest = new DAVResource($request->path); -$container = $dest->FetchParentContainer(); +$container = $dest->GetParentContainer(); if ( $container->IsCalendar() ) { $request->PreconditionFailed(412,'urn:ietf:params:xml:ns:caldav:supported-calendar-data', translate('Incorrect content type for calendar: ') . $request->content_type ); diff -Nru davical-0.9.9.7/inc/caldav-PUT-functions.php davical-1.0.2/inc/caldav-PUT-functions.php --- davical-0.9.9.7/inc/caldav-PUT-functions.php 2011-10-24 04:20:27.000000000 +0000 +++ davical-1.0.2/inc/caldav-PUT-functions.php 2012-01-13 02:58:20.000000000 +0000 @@ -550,25 +550,149 @@ /** -* This function will import a whole calendar +* This function will import a whole collection * @param string $ics_content the ics file to import * @param int $user_no the user wich will receive this ics file * @param string $path the $path where it will be store such as /user_foo/home/ * @param boolean $caldav_context Whether we are responding via CalDAV or interactively * -* Any VEVENTs with the same UID will be concatenated together +* The work is either done by */ -function import_collection( $ics_content, $user_no, $path, $caldav_context, $appending = false ) { - global $c, $session, $tz_regex; - +function import_collection( $import_content, $user_no, $path, $caldav_context, $appending = false ) { + global $c; + if ( ! ini_get('open_basedir') && (isset($c->dbg['ALL']) || isset($c->dbg['put'])) ) { $fh = fopen('/tmp/PUT-2.txt','w'); if ( $fh ) { - fwrite($fh,$ics_content); + fwrite($fh,$import_content); fclose($fh); } } + if ( preg_match( '{^begin:(vcard|vcalendar)}i', $import_content, $matches) ) { + if ( $matches[1] == 'VCARD' ) + import_addressbook_collection( $import_content, $user_no, $path, $caldav_context, $appending ); + elseif ( $matches[1] == 'VCALENDAR' ) + import_calendar_collection( $import_content, $user_no, $path, $caldav_context, $appending ); + + // Uncache anything to do with the collection + $cache = getCacheInstance(); + $cache_ns = 'collection-'.preg_replace( '{/[^/]*$}', '/', $path); + $cache->delete( $cache_ns, null ); + } + else { + dbg_error_log('PUT', 'Can only import files which are VCARD or VCALENDAR'); + } +} + +/** +* This function will import a whole calendar +* @param string $ics_content the ics file to import +* @param int $user_no the user wich will receive this ics file +* @param string $path the $path where it will be store such as /user_foo/home/ +* @param boolean $caldav_context Whether we are responding via CalDAV or interactively +* +* Any VEVENTs with the same UID will be concatenated together +*/ +function import_addressbook_collection( $vcard_content, $user_no, $path, $caldav_context, $appending = false ) { + global $c, $session; + // We hack this into an enclosing component because vComponent only expects a single root component + $addressbook = new vComponent("BEGIN:ADDRESSES\r\n".$vcard_content."\r\nEND:ADDRESSES\r\n"); + + require_once('vcard.php'); + + $sql = 'SELECT * FROM collection WHERE dav_name = :dav_name'; + $qry = new AwlQuery( $sql, array( ':dav_name' => $path) ); + if ( ! $qry->Exec('PUT',__LINE__,__FILE__) ) rollback_on_error( $caldav_context, $user_no, $path ); + if ( ! $qry->rows() == 1 ) { + dbg_error_log( 'ERROR', ' PUT: Collection does not exist at "%s" for user %d', $path, $user_no ); + rollback_on_error( $caldav_context, $user_no, $path ); + } + $collection = $qry->Fetch(); + + if ( !(isset($c->skip_bad_event_on_import) && $c->skip_bad_event_on_import) ) $qry->Begin(); + $base_params = array( + ':collection_id' => $collection->collection_id, + ':session_user' => $session->user_no, + ':caldav_type' => 'VCARD' + ); + if ( !$appending ) { + if ( !$qry->QDo('DELETE FROM caldav_data WHERE collection_id = :collection_id', $base_params) ) + rollback_on_error( $caldav_context, $user_no, $collection->collection_id ); + } + + $dav_data_insert = <<GetComponents(); + foreach( $resources AS $k => $resource ) { + if ( isset($c->skip_bad_event_on_import) && $c->skip_bad_event_on_import ) $qry->Begin(); + + $vcard = new vCard( $resource->Render() ); + + $uid = $vcard->GetPValue('UID'); + if ( empty($uid) ) { + $uid = uuid(); + $vcard->AddProperty('UID',$uid); + } + + $last_modified = $vcard->GetPValue('REV'); + if ( empty($last_modified) ) { + $last_modified = gmdate( 'Ymd\THis\Z' ); + $vcard->AddProperty('REV',$last_modified); + } + + $created = $vcard->GetPValue('X-CREATED'); + if ( empty($last_modified) ) { + $created = gmdate( 'Ymd\THis\Z' ); + $vcard->AddProperty('X-CREATED',$created); + } + + $rendered_card = $vcard->Render(); + + $dav_data_params = $base_params; + $dav_data_params[':user_no'] = $user_no; + // We don't allow any of &?\/@%+: in the UID to appear in the path, but anything else is fair game. + $dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, preg_replace('{[&?\\/@%+:]}','',$uid) ); + $dav_data_params[':etag'] = md5($rendered_card); + $dav_data_params[':dav_data'] = $rendered_card; + $dav_data_params[':modified'] = $last_modified; + $dav_data_params[':created'] = $created; + + if ( isset($c->skip_bad_event_on_import) && $c->skip_bad_event_on_import ) $qry->Begin(); + + if ( !$qry->QDo($dav_data_insert,$dav_data_params) ) rollback_on_error( $caldav_context, $user_no, $path ); + + $qry->QDo('SELECT dav_id FROM caldav_data WHERE dav_name = :dav_name ', array(':dav_name' => $dav_data_params[':dav_name'])); + if ( $qry->rows() == 1 && $row = $qry->Fetch() ) { + $dav_id = $row->dav_id; + } + + $vcard->Write( $row->dav_id, false ); + + if ( isset($c->skip_bad_event_on_import) && $c->skip_bad_event_on_import ) $qry->Commit(); + } + + if ( !(isset($c->skip_bad_event_on_import) && $c->skip_bad_event_on_import) ) { + if ( ! $qry->Commit() ) rollback_on_error( $caldav_context, $user_no, $path); + } + +} + +/** +* This function will import a whole calendar +* @param string $ics_content the ics file to import +* @param int $user_no the user wich will receive this ics file +* @param string $path the $path where it will be store such as /user_foo/home/ +* @param boolean $caldav_context Whether we are responding via CalDAV or interactively +* +* Any VEVENTs with the same UID will be concatenated together +*/ +function import_calendar_collection( $ics_content, $user_no, $path, $caldav_context, $appending = false ) { + global $c, $session, $tz_regex; $calendar = new vComponent($ics_content); $timezones = $calendar->GetComponents('VTIMEZONE',true); $components = $calendar->GetComponents('VTIMEZONE',false); @@ -648,7 +772,8 @@ $dav_data_params = $base_params; $dav_data_params[':user_no'] = $user_no; - $dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, $uid ); + // We don't allow any of &?\/@%+: in the UID to appear in the path, but anything else is fair game. + $dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, preg_replace('{[&?\\/@%+:]}','',$uid) ); $dav_data_params[':etag'] = md5($icalendar); $calitem_params = $dav_data_params; $dav_data_params[':dav_data'] = $icalendar; @@ -776,11 +901,6 @@ if ( !(isset($c->skip_bad_event_on_import) && $c->skip_bad_event_on_import) ) { if ( ! $qry->Commit() ) rollback_on_error( $caldav_context, $user_no, $path); } - - // Uncache anything to do with the collection - $cache = getCacheInstance(); - $cache_ns = 'collection-'.preg_replace( '{/[^/]*$}', '/', $path); - $cache->delete( $cache_ns, null ); } diff -Nru davical-0.9.9.7/inc/caldav-PUT-vcalendar.php davical-1.0.2/inc/caldav-PUT-vcalendar.php --- davical-0.9.9.7/inc/caldav-PUT-vcalendar.php 2011-10-19 20:08:18.000000000 +0000 +++ davical-1.0.2/inc/caldav-PUT-vcalendar.php 2011-11-29 10:30:41.000000000 +0000 @@ -14,11 +14,11 @@ $dav_resource = new DAVResource($request->path); if ( ! $dav_resource->HavePrivilegeTo('DAV::write-content') ) { - $request->DoResponse(403); + $request->DoResponse(403,'No write permission'); } if ( ! $dav_resource->Exists() && ! $dav_resource->HavePrivilegeTo('DAV::bind') ) { - $request->DoResponse(403); + $request->DoResponse(403,'No bind permission.'); } if ( ! ini_get('open_basedir') && (isset($c->dbg['ALL']) || (isset($c->dbg['put']) && $c->dbg['put'])) ) { diff -Nru davical-0.9.9.7/inc/caldav-PUT-vcard.php davical-1.0.2/inc/caldav-PUT-vcard.php --- davical-0.9.9.7/inc/caldav-PUT-vcard.php 2011-10-06 09:14:54.000000000 +0000 +++ davical-1.0.2/inc/caldav-PUT-vcard.php 2012-01-13 03:17:42.000000000 +0000 @@ -54,20 +54,50 @@ $collection_id = $container->GetProperty('collection_id'); +$original_etag = md5($request->raw_post); + +require_once('vcard.php'); +$vcard = new vCard( $request->raw_post ); + $qry = new AwlQuery(); $qry->Begin(); -$etag = md5($request->raw_post); +$uid = $vcard->GetPValue('UID'); +if ( empty($uid) ) { + $uid = uuid(); + $vcard->AddProperty('UID',$uid); +} + +$last_modified = $vcard->GetPValue('REV'); +if ( empty($last_modified) ) { + $last_modified = gmdate( 'Ymd\THis\Z' ); + $vcard->AddProperty('REV',$last_modified); +} +elseif ( stripos($last_modified, 'TZ') ) { + // At least one of my examples has this crap. + $last_modified = str_replace('TZ','T000000Z',$last_modified); + $vcard->ClearProperties('REV'); + $vcard->AddProperty('REV',$last_modified); +} +elseif( preg_match('{^(\d{8})(\d{6})Z?}', $last_modified, $matches) ) { + $last_modified = $matches[1] . 'T' . $matches[2] . 'Z'; + $vcard->ClearProperties('REV'); + $vcard->AddProperty('REV',$last_modified); +} + +$rendered_card = $vcard->Render(); +$etag = md5($rendered_card); $params = array( ':user_no' => $dest->GetProperty('user_no'), ':dav_name' => $dest->bound_from(), ':etag' => $etag, - ':dav_data' => $request->raw_post, - ':session_user' => $session->user_no + ':dav_data' => $rendered_card, + ':session_user' => $session->user_no, + ':modified' => $last_modified ); if ( $dest->Exists() ) { $sql = 'UPDATE caldav_data SET caldav_data=:dav_data, dav_etag=:etag, logged_user=:session_user, - modified=current_timestamp, user_no=:user_no, caldav_type=\'VCARD\' WHERE dav_name=:dav_name'; + modified=:modified, user_no=:user_no, caldav_type=\'VCARD\' WHERE dav_name=:dav_name'; $response_code = 200; $qry->QDo( $sql, $params ); @@ -75,7 +105,7 @@ } else { $sql = 'INSERT INTO caldav_data ( user_no, dav_name, dav_etag, caldav_data, caldav_type, logged_user, created, modified, collection_id ) - VALUES( :user_no, :dav_name, :etag, :dav_data, \'VCARD\', :session_user, current_timestamp, current_timestamp, :collection_id )'; + VALUES( :user_no, :dav_name, :etag, :dav_data, \'VCARD\', :session_user, current_timestamp, :modified, :collection_id )'; $params[':collection_id'] = $collection_id; $response_code = 201; $qry->QDo( $sql, $params ); @@ -84,9 +114,6 @@ } $row = $qry->Fetch(); -require_once('vcard.php'); - -$vcard = new vCard( $request->raw_post ); $vcard->Write( $row->dav_id, $dest->Exists() ); $qry->QDo("SELECT write_sync_change( $collection_id, $response_code, :dav_name)", array(':dav_name' => $dest->bound_from() ) ); @@ -100,6 +127,6 @@ $cache = getCacheInstance(); $cache->delete( 'collection-'.$container->dav_name(), null ); -header('ETag: "'. $etag . '"' ); +if ( $etag == $original_etag ) header('ETag: "'. $etag . '"' ); // Only send the ETag if we didn't change what they gave us. if ( $response_code == 200 ) $response_code = 204; $request->DoResponse( $response_code ); diff -Nru davical-0.9.9.7/inc/caldav-REPORT-calquery.php davical-1.0.2/inc/caldav-REPORT-calquery.php --- davical-0.9.9.7/inc/caldav-REPORT-calquery.php 2011-10-06 20:01:41.000000000 +0000 +++ davical-1.0.2/inc/caldav-REPORT-calquery.php 2011-12-07 01:51:16.000000000 +0000 @@ -334,28 +334,33 @@ if ( isset($c->strict_result_ordering) && $c->strict_result_ordering ) $sql .= " ORDER BY caldav_data.dav_id"; $qry = new AwlQuery( $sql, $params ); if ( $qry->Exec("calquery",__LINE__,__FILE__) && $qry->rows() > 0 ) { - while( $calendar_object = $qry->Fetch() ) { - if ( !$need_post_filter || apply_filter( $qry_filters, $calendar_object ) ) { + while( $dav_object = $qry->Fetch() ) { + if ( !$need_post_filter || apply_filter( $qry_filters, $dav_object ) ) { if ( $bound_from != $target_collection->dav_name() ) { - $calendar_object->dav_name = str_replace( $bound_from, $target_collection->dav_name(), $calendar_object->dav_name); + $dav_object->dav_name = str_replace( $bound_from, $target_collection->dav_name(), $dav_object->dav_name); } if ( $need_expansion ) { - $vResource = new vComponent($calendar_object->caldav_data); + $vResource = new vComponent($dav_object->caldav_data); + $expanded = getVCalendarRange($vResource); + if ( !$expanded->overlaps($range_filter) ) continue; + $expanded = expand_event_instances($vResource, $expand_range_start, $expand_range_end, $expand_as_floating ); + if ( $expanded->ComponentCount() == 0 ) continue; - if ( $need_expansion ) $calendar_object->caldav_data = $expanded->Render(); + if ( $need_expansion ) $dav_object->caldav_data = $expanded->Render(); } else if ( isset($range_filter) ) { - $vResource = new vComponent($calendar_object->caldav_data); + $vResource = new vComponent($dav_object->caldav_data); $expanded = getVCalendarRange($vResource); dbg_error_log('calquery', 'Expanded to %s:%s which might overlap %s:%s', $expanded->from, $expanded->until, $range_filter->from, $range_filter->until ); if ( !$expanded->overlaps($range_filter) ) continue; } - $responses[] = calendar_to_xml( $properties, $calendar_object ); + $responses[] = component_to_xml( $properties, $dav_object ); } } } + $multistatus = new XMLElement( "multistatus", $responses, $reply->GetXmlNsArray() ); $request->XMLResponse( 207, $multistatus ); diff -Nru davical-0.9.9.7/inc/caldav-REPORT-cardquery.php davical-1.0.2/inc/caldav-REPORT-cardquery.php --- davical-0.9.9.7/inc/caldav-REPORT-cardquery.php 2010-09-21 01:40:44.000000000 +0000 +++ davical-1.0.2/inc/caldav-REPORT-cardquery.php 2011-11-01 21:13:50.000000000 +0000 @@ -7,7 +7,8 @@ global $address_data_properties; $expansion = $address_data_xml->GetElements(); foreach( $expansion AS $k => $v ) { - $address_data_properties[strtoupper($v->GetAttribute('name'))] = true; + if ( $v instanceof XMLElement ) + $address_data_properties[strtoupper($v->GetAttribute('name'))] = true; } } diff -Nru davical-0.9.9.7/inc/caldav-REPORT-multiget.php davical-1.0.2/inc/caldav-REPORT-multiget.php --- davical-0.9.9.7/inc/caldav-REPORT-multiget.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/caldav-REPORT-multiget.php 2011-11-29 19:37:51.000000000 +0000 @@ -89,8 +89,7 @@ if ( $collection->Privileges() != privilege_to_bits('DAV::all') ) { $where .= " AND (calendar_item.class != 'PRIVATE' OR calendar_item.class IS NULL) "; } - - if ( isset($c->hide_TODO) && $c->hide_TODO && ! $collection->Privileges() == privilege_to_bits('all') ) { + if ( isset($c->hide_TODO) && $c->hide_TODO && ! $collection->HavePrivilegeTo('all') ) { $where .= " AND caldav_data.caldav_type NOT IN ('VTODO') "; } } diff -Nru davical-0.9.9.7/inc/caldav-REPORT.php davical-1.0.2/inc/caldav-REPORT.php --- davical-0.9.9.7/inc/caldav-REPORT.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/caldav-REPORT.php 2011-11-27 08:58:59.000000000 +0000 @@ -39,7 +39,7 @@ $target->NeedPrivilege( array('DAV::read', 'urn:ietf:params:xml:ns:caldav:read-free-busy'), true ); // They may have either } -require_once("iCalendar.php"); +require_once("vCalendar.php"); $reportnum = -1; $report = array(); @@ -80,110 +80,6 @@ } -/** -* Return XML for a single calendar (or todo) entry from the DB -* -* @param array $properties The properties for this calendar -* @param string $item The calendar data for this calendar -* -* @return string An XML document which is the response for the calendar -*/ -function calendar_to_xml( $properties, $item ) { - global $session, $c, $request, $reply; - - dbg_error_log("REPORT","Building XML Response for item '%s'", $item->dav_name ); - - $denied = array(); - $caldav_data = $item->caldav_data; - $displayname = $item->summary; - if ( isset($properties['calendar-data']) || isset($properties['displayname']) ) { - if ( !$request->AllowedTo('all') && $session->user_no != $item->user_no ){ - // the user is not admin / owner of this calendarlooking at his calendar and can not admin the other cal - /** @todo We should examine the ORGANIZER and ATTENDEE fields in the event. If this person is there then they should see this */ - if ( $item->class == 'CONFIDENTIAL' || !$request->AllowedTo('read') ) { - $ical = new iCalComponent( $caldav_data ); - $resources = $ical->GetComponents('VTIMEZONE',false); - $first = $resources[0]; - - // if the event is confidential we fake one that just says "Busy" - $confidential = new iCalComponent(); - $confidential->SetType($first->GetType()); - $confidential->AddProperty( 'SUMMARY', translate('Busy') ); - $confidential->AddProperty( 'CLASS', 'CONFIDENTIAL' ); - $confidential->SetProperties( $first->GetProperties('DTSTART'), 'DTSTART' ); - $confidential->SetProperties( $first->GetProperties('RRULE'), 'RRULE' ); - $confidential->SetProperties( $first->GetProperties('DURATION'), 'DURATION' ); - $confidential->SetProperties( $first->GetProperties('DTEND'), 'DTEND' ); - $confidential->SetProperties( $first->GetProperties('UID'), 'UID' ); - $ical->SetComponents(array($confidential),$confidential->GetType()); - - $caldav_data = $ical->Render(); - $displayname = translate('Busy'); - } - } - } - - $url = ConstructURL($item->dav_name); - - $prop = new XMLElement("prop"); - foreach( $properties AS $k => $v ) { - switch( $k ) { - case 'getcontentlength': - $contentlength = strlen($caldav_data); - $prop->NewElement($k, $contentlength ); - break; - case 'getlastmodified': - $prop->NewElement($k, ISODateToHTTPDate($item->modified) ); - break; - case 'calendar-data': - $reply->CalDAVElement($prop, $k, $caldav_data ); - break; - case 'getcontenttype': - $prop->NewElement($k, "text/calendar" ); - break; - case 'current-user-principal': - $prop->NewElement("current-user-principal", $request->current_user_principal_xml); - break; - case 'displayname': - $prop->NewElement($k, $displayname ); - break; - case 'resourcetype': - $prop->NewElement($k); // Just an empty resourcetype for a non-collection. - break; - case 'getetag': - $prop->NewElement($k, '"'.$item->dav_etag.'"' ); - break; - case '"current-user-privilege-set"': - $prop->NewElement($k, privileges($request->permissions) ); - break; - case 'SOME-DENIED-PROPERTY': /** indicating the style for future expansion */ - $denied[] = $v; - break; - default: - dbg_error_log( 'REPORT', "Request for unsupported property '%s' of calendar item.", $v ); - $unsupported[] = $v; - } - } - $status = new XMLElement("status", "HTTP/1.1 200 OK" ); - - $propstat = new XMLElement( "propstat", array( $prop, $status) ); - $href = new XMLElement("href", $url ); - $elements = array($href,$propstat); - - if ( count($denied) > 0 ) { - $status = new XMLElement("status", "HTTP/1.1 403 Forbidden" ); - $noprop = new XMLElement("prop"); - foreach( $denied AS $k => $v ) { - $noprop->NewElement( strtolower($v) ); - } - $elements[] = new XMLElement( "propstat", array( $noprop, $status) ); - } - - $response = new XMLElement( "response", $elements ); - - return $response; -} - /** * Return XML for a single component from the DB @@ -219,33 +115,30 @@ $contenttype = 'text/vcard'; break; } - if ( isset($properties['calendar-data']) || isset($properties['displayname']) ) { - if ( !$request->AllowedTo('all') && $session->user_no != $item->user_no ){ - // the user is not admin / owner of this calendarlooking at his calendar and can not admin the other cal - /** @todo We should examine the ORGANIZER and ATTENDEE fields in the event. If this person is there then they should see this */ - if ( $type == 'calendar' && $item->class == 'CONFIDENTIAL' || !$request->AllowedTo('read') ) { - $ical = new iCalComponent( $caldav_data ); - $resources = $ical->GetComponents('VTIMEZONE',false); - $first = $resources[0]; - - // if the event is confidential we fake one that just says "Busy" - $confidential = new iCalComponent(); - $confidential->SetType($first->GetType()); - $confidential->AddProperty( 'SUMMARY', translate('Busy') ); - $confidential->AddProperty( 'CLASS', 'CONFIDENTIAL' ); - $confidential->SetProperties( $first->GetProperties('DTSTART'), 'DTSTART' ); - $confidential->SetProperties( $first->GetProperties('RRULE'), 'RRULE' ); - $confidential->SetProperties( $first->GetProperties('DURATION'), 'DURATION' ); - $confidential->SetProperties( $first->GetProperties('DTEND'), 'DTEND' ); - $confidential->SetProperties( $first->GetProperties('UID'), 'UID' ); - $ical->SetComponents(array($confidential),$confidential->GetType()); + if ( $type == 'calendar' ) { + if ( isset($properties['calendar-data']) || isset($properties['displayname']) ) { + if ( !$request->AllowedTo('all') && $session->user_no != $item->user_no ) { + // the user is not admin / owner of this calendar looking at his calendar and can not admin the other cal + if ( $item->class == 'CONFIDENTIAL' || !$request->AllowedTo('read') ) { + dbg_error_log("REPORT","Anonymising confidential event for: %s", $item->dav_name ); + $vcal = new vCalendar( $caldav_data ); + $caldav_data = $vcal->Confidential()->Render(); + $displayname = translate('Busy'); + } + } + } - $caldav_data = $ical->Render(); - $displayname = translate('Busy'); + if ( isset($c->hide_alarm) && $c->hide_alarm ) { + $dav_resource = new DAVResource($request->path); + if ( isset($properties['calendar-data']) && !$dav_resource->HavePrivilegeTo('write') ) { + dbg_error_log("REPORT","Stripping event alarms for: %s", $item->dav_name ); + $vcal = new vCalendar($caldav_data); + $vcal->ClearComponents('VALARM'); + $caldav_data = $vcal->Render(); } } } - + $url = ConstructURL($item->dav_name); $prop = new XMLElement("prop"); diff -Nru davical-0.9.9.7/inc/caldav-REPORT-sync-collection.php davical-1.0.2/inc/caldav-REPORT-sync-collection.php --- davical-0.9.9.7/inc/caldav-REPORT-sync-collection.php 2011-10-06 09:14:54.000000000 +0000 +++ davical-1.0.2/inc/caldav-REPORT-sync-collection.php 2011-12-13 21:20:27.000000000 +0000 @@ -37,7 +37,10 @@ if ( !$collection->Exists() ) { $request->DoResponse( 404 ); } - +$bound_from = $collection->bound_from(); +$collection_path = $collection->dav_name(); +$request_via_binding = ($bound_from != $collection_path); + $params = array( ':collection_id' => $collection->GetProperty('collection_id'), ':sync_token' => $sync_token ); $sql = "SELECT new_sync_token( :sync_token, :collection_id)"; $qry = new AwlQuery($sql, $params); @@ -82,8 +85,13 @@ LEFT JOIN addressbook_resource USING (dav_id) WHERE collection.collection_id = :collection_id AND sync_time > (SELECT modification_time FROM sync_tokens WHERE sync_token = :sync_token) - ORDER BY collection.collection_id, sync_changes.dav_name, sync_changes.sync_time EOSQL; + if ( isset($c->strict_result_ordering) && $c->strict_result_ordering ) { + $sql .= " ORDER BY collection.collection_id, lower(sync_changes.dav_name), sync_changes.sync_time"; + } + else { + $sql .= " ORDER BY collection.collection_id, sync_changes.dav_name, sync_changes.sync_time"; + } } $qry = new AwlQuery($sql, $params ); @@ -96,6 +104,9 @@ $c->sync_resource_data_ok = false; } while( $object = $qry->Fetch() ) { + if ( $request_via_binding ) + $object->dav_name = str_replace( $bound_from, $collection_path, $object->dav_name); + if ( $object->dav_name == $last_dav_name ) { /** The complex case: this is the second or subsequent for this dav_id */ if ( $object->sync_status == 404 ) { @@ -104,7 +115,7 @@ new XMLElement( 'href', ConstructURL($object->dav_name) ), new XMLElement( 'status', display_status($object->sync_status) ) ); - $responses[] = new XMLElement( 'sync-response', $resultset ); + $responses[] = new XMLElement( 'response', $resultset ); $first_status = 404; } else if ( $object->sync_status == 201 && $first_status == 404 ) { diff -Nru davical-0.9.9.7/inc/CalDAVRequest.php davical-1.0.2/inc/CalDAVRequest.php --- davical-0.9.9.7/inc/CalDAVRequest.php 2011-10-12 21:10:13.000000000 +0000 +++ davical-1.0.2/inc/CalDAVRequest.php 2012-01-12 05:43:16.000000000 +0000 @@ -182,12 +182,12 @@ $_SERVER['REQUEST_METHOD'] = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']; } $this->method = $_SERVER['REQUEST_METHOD']; + $this->content_type = (isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : null); + if ( preg_match( '{^(\S+/\S+)\s*(;.*)?$}', $this->content_type, $matches ) ) { + $this->content_type = $matches[1]; + } if ( isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['CONTENT_LENGTH'] > 7 ) { - $this->content_type = (isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : null); - if ( preg_match( '{^(\S+/\S+)\s*(;.*)?$}', $this->content_type, $matches ) ) { - $this->content_type = $matches[1]; - } - if ( $this->method == 'PROPFIND' || $this->method == 'REPORT' ) { + if ( $this->method == 'PROPFIND' || $this->method == 'REPORT' || $this->method == 'PROPPATCH' || $this->method == 'BIND' || $this->method == 'MKTICKET' || $this->method == 'ACL' ) { if ( !preg_match( '{^(text|application)/xml$}', $this->content_type ) ) { @dbg_error_log( "LOG request", 'Request is "%s" but client set content-type to "%s". Assuming they meant XML!', $request->method, $this->content_type ); @@ -198,6 +198,13 @@ $this->CoerceContentType(); } } + else if ( !preg_match( '{^(text|application)/xml$}', $this->content_type ) ) { + if ( $this->method == 'GET' || $this->method == 'HEAD' || $this->method == 'OPTIONS' || $this->method == 'MKCALENDAR' || $this->method == 'MKCOL' ) { + @dbg_error_log( "LOG request", '%s Request specified %s content type but none is present. Assuming null content-type.', + $request->method, $this->content_type ); + $this->content_type = 'text/plain'; + } + } $this->user_agent = ((isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "Probably Mulberry")); /** @@ -515,6 +522,9 @@ * should reasonably expect to see either text/xml or application/xml */ if ( isset($this->content_type) && preg_match( '#(application|text)/xml#', $this->content_type ) ) { + if ( !isset($this->raw_post) || $this->raw_post == '' ) { + $this->XMLResponse( 400, new XMLElement( 'error', new XMLElement('missing-xml'), array( 'xmlns' => 'DAV:') ) ); + } $xml_parser = xml_parser_create_ns('UTF-8'); $this->xml_tags = array(); xml_parser_set_option ( $xml_parser, XML_OPTION_SKIP_WHITE, 1 ); @@ -1201,8 +1211,7 @@ @dbg_error_log("statistics", "Method: %s, Status: %d, Script: %5.3lfs, Queries: %5.3lfs, URL: %s", $this->method, $status, $script_time, $c->total_query_time, $this->path); } - - exit(0); + @ob_flush(); exit(0); } } diff -Nru davical-0.9.9.7/inc/DAViCalSession.php davical-1.0.2/inc/DAViCalSession.php --- davical-0.9.9.7/inc/DAViCalSession.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/DAViCalSession.php 2011-11-02 05:11:55.000000000 +0000 @@ -113,7 +113,7 @@ || (isset($c->restrict_admin_port) && $c->restrict_admin_port != $_SERVER['SERVER_PORT'] ) ) { header('Location: caldav.php'); dbg_error_log( 'LOG WARNING', 'Access to "%s" via "%s:%d" rejected.', $_SERVER['REQUEST_URI'], $current_domain, $_SERVER['SERVER_PORT'] ); - exit(0); + @ob_flush(); exit(0); } if ( isset($c->restrict_admin_roles) && $roles == '' ) $roles = $c->restrict_admin_roles; if ( $this->logged_in && $roles == '' ) return; @@ -156,7 +156,7 @@ } include('page-footer.php'); - exit; + @ob_flush(); exit(0); } } diff -Nru davical-0.9.9.7/inc/DAVPrincipal.php davical-1.0.2/inc/DAVPrincipal.php --- davical-0.9.9.7/inc/DAVPrincipal.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/DAVPrincipal.php 2011-10-26 19:49:42.000000000 +0000 @@ -9,6 +9,7 @@ * @license http://gnu.org/copyleft/gpl.html GNU GPL v2 or later */ +require_once('Principal.php'); /** * A class for things to do with a DAV Principal diff -Nru davical-0.9.9.7/inc/DAVResource.php davical-1.0.2/inc/DAVResource.php --- davical-0.9.9.7/inc/DAVResource.php 2011-10-12 21:12:00.000000000 +0000 +++ davical-1.0.2/inc/DAVResource.php 2011-12-02 00:09:39.000000000 +0000 @@ -11,6 +11,7 @@ require_once('AwlCache.php'); require_once('AwlQuery.php'); +require_once('DAVPrincipal.php'); require_once('DAVTicket.php'); require_once('iCalendar.php'); @@ -282,6 +283,17 @@ $this->resource->location = null; $this->resource->url = null; } + else if ( isset($c->hide_alarm) && $c->hide_alarm && !$this->HavePrivilegeTo('write') ) { + $vcal1 = new iCalComponent($this->resource->caldav_data); + $comps = $vcal1->GetComponents(); + $vcal2 = new iCalComponent(); + $vcal2->VCalendar(); + foreach( $comps AS $comp ) { + $comp->ClearComponents('VALARM'); + $vcal2->AddComponent($comp); + } + $this->resource->caldav_data = $vcal2->Render(); + } } else if ( strtoupper(substr($this->resource->caldav_data,0,11)) == 'BEGIN:VCARD' ) { $this->contenttype = 'text/vcard'; @@ -439,7 +451,6 @@ else $this->collection->type = 'collection'; if ( strlen($row->external_url) > 8 ) { - $this->collection->bound_from = $row->external_url; $this->_is_external = true; if ( $row->external_type == 'calendar' ) $this->collection->type = 'calendar'; @@ -627,7 +638,7 @@ protected function FetchPrivileges() { global $session, $request; - if ( $this->dav_name == '/' || $this->dav_name == '' ) { + if ( $this->dav_name == '/' || $this->dav_name == '' || $this->_is_external ) { $this->privileges = (1 | 16 | 32); // read + read-acl + read-current-user-privilege-set dbg_error_log( 'DAVResource', ':FetchPrivileges: Read permissions for user accessing /' ); return; @@ -699,7 +710,7 @@ /** - * Fetch the parent to this resource. + * Fetch the parent to this resource. This is deprecated - use GetParentContainer() instead. */ function FetchParentContainer() { deprecated('DAVResource::FetchParentContainer'); @@ -1047,8 +1058,8 @@ /** - * Checks whether this resource is a calendar - * @param string $type The type of scheduling collection, 'read', 'write' or 'any' + * Checks whether this resource is a scheduling inbox/outbox collection + * @param string $type The type of scheduling collection, 'inbox', 'outbox' or 'any' */ function IsSchedulingCollection( $type = 'any' ) { if ( $this->_is_collection && preg_match( '{schedule-(inbox|outbox)}', $this->collection->type, $matches ) ) { @@ -1059,6 +1070,18 @@ /** + * Checks whether this resource is IN a scheduling inbox/outbox collection + * @param string $type The type of scheduling collection, 'inbox', 'outbox' or 'any' + */ + function IsInSchedulingCollection( $type = 'any' ) { + if ( !$this->_is_collection && preg_match( '{schedule-(inbox|outbox)}', $this->collection->type, $matches ) ) { + return ($type == 'any' || $type == $matches[1]); + } + return false; + } + + + /** * Checks whether this resource is an addressbook */ function IsAddressbook() { @@ -1245,6 +1268,14 @@ /** + * Checks whether the target collection is for public events only + */ + function IsPublicOnly() { + return ( isset($this->collection->publicly_events_only) && $this->collection->publicly_events_only == 't' ); + } + + + /** * Return the type of whatever contains this resource, or would if it existed. */ function ContainerType() { @@ -1370,6 +1401,11 @@ return clone($this->resource); break; + case 'dav-data': + if ( !isset($this->resource) ) $this->FetchResource(); + return $this->resource->caldav_data; + break; + case 'principal': if ( !isset($this->principal) ) $this->FetchPrincipal(); return clone($this->principal); @@ -1547,8 +1583,13 @@ case 'DAV::owner': // The principal-URL of the owner - if ( !isset($this->principal) ) $this->FetchPrincipal(); - $reply->DAVElement( $prop, 'owner', $reply->href( $this->principal->url() ) ); + if ( $this->IsExternal() ){ + $reply->DAVElement( $prop, 'owner', $reply->href( $this->collection->bound_from ) ); + } + else { + if ( !isset($this->principal) ) $this->FetchPrincipal(); + $reply->DAVElement( $prop, 'owner', $reply->href( $this->principal->url() ) ); + } break; // Empty tag responses. diff -Nru davical-0.9.9.7/inc/drivers_ldap.php davical-1.0.2/inc/drivers_ldap.php --- davical-0.9.9.7/inc/drivers_ldap.php 2011-10-18 03:39:14.000000000 +0000 +++ davical-1.0.2/inc/drivers_ldap.php 2011-11-24 18:42:28.000000000 +0000 @@ -212,12 +212,12 @@ } else if ( empty($passwd) || preg_match('/[\x00-\x19]/',$passwd) ) { // See http://www.php.net/manual/en/function.ldap-bind.php#73718 for more background - dbg_error_log( 'LDAP', 'drivers_ldap : user %s supplied empty or invalid password (%s): login rejected', $dnUser, $passwd ); + dbg_error_log( 'LDAP', 'drivers_ldap : user %s supplied empty or invalid password: login rejected', $dnUser ); return false; } else { if ( !@ldap_bind($this->connect, $dnUser, $passwd) ) { - dbg_error_log( "LDAP", "drivers_ldap : Failed to bind to user %s using password %s", $dnUser, $passwd ); + dbg_error_log( "LDAP", "drivers_ldap : Failed to bind to user %s ", $dnUser ); return false; } } @@ -263,16 +263,6 @@ $fields_to_set = array(); $updateable_fields = Principal::updateableFields(); - if ( isset($mapping['active']) && !isset($mapping['user_active']) ) { - // Backward compatibility: now 'user_active' - $mapping['user_active'] = $mapping['active']; - unset($mapping['active']); - } - if ( isset($mapping['updated']) && !isset($mapping['modified']) ) { - // Backward compatibility: now 'modified' - $mapping['modified'] = $mapping['updated']; - unset($mapping['updated']); - } foreach( $updateable_fields AS $field ) { if ( isset($mapping[$field]) && isset($ldap_values[$mapping[$field]]) ) { $fields_to_set[$field] = $ldap_values[$mapping[$field]]; @@ -309,6 +299,16 @@ } $mapping = $c->authenticate_hook['config']['mapping_field']; + if ( isset($mapping['active']) && !isset($mapping['user_active']) ) { + // Backward compatibility: now 'user_active' + $mapping['user_active'] = $mapping['active']; + unset($mapping['active']); + } + if ( isset($mapping['updated']) && !isset($mapping['modified']) ) { + // Backward compatibility: now 'modified' + $mapping['modified'] = $mapping['updated']; + unset($mapping['updated']); + } $attributes = array_values($mapping); /** @@ -323,7 +323,7 @@ $filter_munge = "($ldapDriver->filterUsers)"; } - $filter = "(&$filter_munge(".$mapping["username"]."=$username))"; + $filter = "(&$filter_munge(".$mapping['username']."=$username))"; $valid = $ldapDriver->requestUser( $filter, $attributes, $username, $password ); // is a valid user or not @@ -332,7 +332,7 @@ return false; } - $ldap_timestamp = $valid[$mapping["updated"]]; + $ldap_timestamp = $valid[$mapping['modified']]; /** * This splits the LDAP timestamp apart and assigns values to $Y $m $d $H $M and $S @@ -341,7 +341,7 @@ $$k = substr($ldap_timestamp,$v[0],$v[1]); $ldap_timestamp = "$Y"."$m"."$d"."$H"."$M"."$S"; - $valid[$mapping["updated"]] = "$Y-$m-$d $H:$M:$S"; + $valid[$mapping['modified']] = "$Y-$m-$d $H:$M:$S"; $principal = new Principal('username',$username); if ( $principal->Exists() ) { @@ -514,7 +514,7 @@ if ( sizeof($ldap_users_tmp) == 0 ) return; foreach($ldap_users_tmp as $key => $ldap_user){ - $ldap_users_info[$ldap_user[$mapping["username"]]] = $ldap_user; + $ldap_users_info[$ldap_user[$mapping['username']]] = $ldap_user; unset($ldap_users_tmp[$key]); } $qry = new AwlQuery( "SELECT username, user_no, modified as updated FROM dav_principal where type_id=1"); @@ -540,15 +540,23 @@ foreach( $users_to_create as $username ) { $principal = new Principal( 'username', $username ); $valid = $ldap_users_info[$username]; - $ldap_timestamp = $valid[$mapping['updated']]; + $ldap_timestamp = $valid[$mapping['modified']]; - /** - * This splits the LDAP timestamp apart and assigns values to $Y $m $d $H $M and $S - */ - foreach($c->authenticate_hook['config']['format_updated'] as $k => $v) - $$k = substr($ldap_timestamp,$v[0],$v[1]); - $ldap_timestamp = $Y.$m.$d.$H.$M.$S; - $valid[$mapping["updated"]] = "$Y-$m-$d $H:$M:$S"; + if ( !empty($c->authenticate_hook['config']['format_updated']) ) { + /** + * This splits the LDAP timestamp apart and assigns values to $Y $m $d $H $M and $S + */ + foreach($c->authenticate_hook['config']['format_updated'] as $k => $v) + $$k = substr($ldap_timestamp,$v[0],$v[1]); + $ldap_timestamp = $Y.$m.$d.$H.$M.$S; + } + else if ( preg_match('{^(\d{8})(\d{6})(Z)?$', $ldap_timestamp, $matches ) ) { + $ldap_timestamp = $matches[1].'T'.$matches[2].$matches[3]; + } + else if ( empty($ldap_timestamp) ) { + $ldap_timestamp = date('c'); + } + $valid[$mapping['modified']] = $ldap_timestamp; sync_user_from_LDAP( $principal, $mapping, $valid ); } @@ -574,7 +582,7 @@ foreach ( $users_to_update as $key=> $username ) { $principal = new Principal( 'username', $username ); $valid=$ldap_users_info[$username]; - $ldap_timestamp = $valid[$mapping['updated']]; + $ldap_timestamp = $valid[$mapping['modified']]; $valid['user_no'] = $db_users_info[$username]['user_no']; $mapping['user_no'] = 'user_no'; @@ -586,7 +594,7 @@ $$k = substr($ldap_timestamp,$v[0],$v[1]); } $ldap_timestamp = $Y.$m.$d.$H.$M.$S; - $valid[$mapping['updated']] = "$Y-$m-$d $H:$M:$S"; + $valid[$mapping['modified']] = "$Y-$m-$d $H:$M:$S"; $db_timestamp = substr(strtr($db_users_info[$username]['updated'], array(':' => '',' '=>'','-'=>'')),0,14); if ( $ldap_timestamp > $db_timestamp ) { diff -Nru davical-0.9.9.7/inc/external-fetch.php davical-1.0.2/inc/external-fetch.php --- davical-0.9.9.7/inc/external-fetch.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/external-fetch.php 2012-01-11 20:34:38.000000000 +0000 @@ -13,6 +13,11 @@ function create_external ( $path,$is_calendar,$is_addressbook ) { global $request; + if ( ! function_exists ( "curl_init" ) ) { + dbg_error_log("external", "external resource cannot be fetched without curl, please install curl"); + $request->DoResponse( 503, translate('PHP5 curl support is required for external binds') ); + return ; + } $resourcetypes = ''; if ($is_calendar) $resourcetypes .= ''; $qry = new AwlQuery(); @@ -34,8 +39,13 @@ } } -function fetch_external ( $bind_id, $min_age ) +function fetch_external ( $bind_id, $min_age = '1 hour' ) { + if ( ! function_exists ( "curl_init" ) ) { + dbg_error_log("external", "external resource cannot be fetched without curl, please install curl"); + $request->DoResponse( 503, translate('PHP5 curl support is required for external binds') ); + return ; + } $sql = 'SELECT collection.*, collection.dav_name AS path, dav_binding.external_url AS external_url FROM dav_binding LEFT JOIN collection ON (collection.collection_id=bound_source_id) WHERE bind_id = :bind_id'; $params = array( ':bind_id' => $bind_id ); if ( strlen ( $min_age ) > 2 ) { @@ -83,6 +93,10 @@ global $c; if ( $c->external_refresh < 1 ) return ; + if ( ! function_exists ( "curl_init" ) ) { + dbg_error_log("external", "external resource cannot be fetched without curl, please install curl"); + return ; + } $sql = 'SELECT bind_id from dav_binding LEFT JOIN collection ON (collection.collection_id=bound_source_id) WHERE dav_binding.dav_name = :dav_name AND collection.modified + interval :interval < NOW()'; $qry = new AwlQuery( $sql, array ( ':dav_name' => $request->dav_name(), ':interval' => $c->external_refresh . ' minutes' ) ); dbg_error_log("external", "checking if external resource needs update"); diff -Nru davical-0.9.9.7/inc/freebusy-functions.php davical-1.0.2/inc/freebusy-functions.php --- davical-0.9.9.7/inc/freebusy-functions.php 2011-10-19 18:05:43.000000000 +0000 +++ davical-1.0.2/inc/freebusy-functions.php 2011-10-24 19:03:31.000000000 +0000 @@ -11,7 +11,7 @@ function get_freebusy( $path_match, $range_start, $range_end, $bin_privs = null ) { - global $request; + global $request, $c; // printf( "Path: %s\n", $path_match); // print_r($range_start); diff -Nru davical-0.9.9.7/inc/HTTPAuthSession.php davical-1.0.2/inc/HTTPAuthSession.php --- davical-0.9.9.7/inc/HTTPAuthSession.php 2011-10-16 05:24:45.000000000 +0000 +++ davical-1.0.2/inc/HTTPAuthSession.php 2012-01-11 23:14:34.000000000 +0000 @@ -88,7 +88,7 @@ header( $auth_header ); echo 'Please log in for access to this system.'; dbg_error_log( "HTTPAuth", ":Session: User is not authorised: %s ", $_SERVER['REMOTE_ADDR'] ); - exit; + @ob_flush(); exit(0); } @@ -101,6 +101,8 @@ /** * Get HTTP Auth to work with PHP+FastCGI */ + if ( !isset($_SERVER["AUTHORIZATION"]) && isset($_SERVER["HTTP_AUTHORIZATION"]) && !empty($_SERVER["HTTP_AUTHORIZATION"])) + $_SERVER["AUTHORIZATION"] = $_SERVER["HTTP_AUTHORIZATION"]; if (isset($_SERVER["AUTHORIZATION"]) && !empty($_SERVER["AUTHORIZATION"])) { list ($type, $cred) = split (" ", $_SERVER['AUTHORIZATION']); if ($type == 'Basic') { @@ -139,6 +141,11 @@ */ if ( isset($_SERVER['PHP_AUTH_USER']) ) { if ( $p = $this->CheckPassword( $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'] ) ) { + if ( isset($p->active) && !isset($p->user_active) ) { + trace_bug('Some authentication failed to return a dav_principal record and needs fixing.'); + $p->user_active = $p->active; + } + /** * Maybe some external authentication didn't return false for an inactive * user, so we'll be pedantic here. @@ -300,7 +307,11 @@ * It can expect that: * - Configuration data will be in $c->authenticate_hook['config'], which might be an array, or whatever is needed. */ - return call_user_func( $c->authenticate_hook['call'], $username, $password ); + $principal = call_user_func( $c->authenticate_hook['call'], $username, $password ); + if ( $principal !== false && !($principal instanceof Principal) ) { + $principal = new Principal('username', $username); + } + return $principal; } return false; diff -Nru davical-0.9.9.7/inc/Principal.php davical-1.0.2/inc/Principal.php --- davical-0.9.9.7/inc/Principal.php 2011-10-18 03:38:17.000000000 +0000 +++ davical-1.0.2/inc/Principal.php 2012-01-12 07:56:41.000000000 +0000 @@ -137,19 +137,29 @@ break; } - + + /** + * There are some values we can construct on the basis of the constructor value. + */ + switch ( $type ) { + case 'user_no': $this->user_no = $value; break; + case 'principal_id': $this->principal_id = $value; break; + case 'email': $this->email = $value; break; + case 'username': $this->username = $value; break; + default: + throw new Exception('Can only retrieve a Principal by user_no,principal_id,username or email address'); + } + $cache = new AwlCache(); if ( $use_cache && isset($session->principal_id) ) { switch ( $type ) { case 'user_no': - $this->user_no = $value; if ( isset(self::$byUserno[$value]) ) { $type = 'username'; $value = self::$byUserno[$value]; } break; case 'principal_id': - $this->principal_id = $value; if ( isset(self::$byId[$value]) ) { $type = 'username'; $value = self::$byId[$value]; @@ -157,16 +167,11 @@ break; case 'email': $this->by_email = true; - $this->email = $value; if ( isset(self::$byEmail[$value]) ) { $type = 'username'; $value = self::$byEmail[$value]; } break; - case 'username': - break; - default: - throw new Exception('Can only retrieve a Principal by user_no,principal_id,username or email address'); } if ( $type == 'username' ) { @@ -200,7 +205,7 @@ $sql .= 'FROM dav_principal WHERE '; switch ( $type ) { case 'username': - $sql .= 'lower(username)=lower(:param)'; + $sql .= 'lower(username)=lower(text(:param))'; break; case 'user_no': $sql .= 'user_no=:param'; @@ -260,13 +265,12 @@ private function assignGuestValues() { $this->user_no = -1; $this->exists = false; - $this->username = translate('unauthenticated'); + if ( empty($this->username) ) $this->username = translate('unauthenticated'); $this->fullname = $this->displayname = translate('Unauthenticated User'); $this->email = false; $this->is_principal = true; $this->is_calendar = false; $this->principal_id = -1; - $this->dav_name = '/'; $this->privileges = $this->default_privileges = 0; } @@ -528,14 +532,19 @@ $sql_params = array(); foreach( self::updateableFields() AS $k ) { if ( !isset($field_values->{$k}) && !isset($this->{$k}) ) continue; + $param_name = ':'.$k; + $sql_params[$param_name] = (isset($field_values->{$k}) ? $field_values->{$k} : $this->{$k}); + if ( $k == 'default_privileges' ) { + $sql_params[$param_name] = sprintf('%024s',$sql_params[$param_name]); + $param_name = 'cast('.$param_name.' as text)::BIT(24)'; + } if ( $inserting ) { + $param_names[] = $param_name; $insert_fields[] = $k; - $param_names[] = ':'.$k . ($k == 'default_privileges' ? '::BIT(24)' : ''); } else { - $update_list[] = $k.'=:'.($k == 'default_privileges' ? '::BIT(24)' : ''); + $update_list[] = $k.'='.$param_name; } - $sql_params[':'.$k] = (isset($field_values->{$k}) ? $field_values->{$k} : $this->{$k}); } if ( $inserting && isset(self::$db_mandatory_fields) ) { diff -Nru davical-0.9.9.7/inc/schedule-functions.php davical-1.0.2/inc/schedule-functions.php --- davical-0.9.9.7/inc/schedule-functions.php 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/inc/schedule-functions.php 2011-11-08 21:39:41.000000000 +0000 @@ -0,0 +1,315 @@ + + * @copyright Morphoss Ltd - http://www.morphoss.com/ + * @license http://gnu.org/copyleft/gpl.html GNU GPL v2 or later version + */ + +require_once('vCalendar.php'); +require_once('WritableCollection.php'); +require_once('RRule-v2.php'); + +/** + * Entry point for scheduling on DELETE, for which there are thee outcomes: + * - We don't do scheduling (disabled, no organizer, ...) + * - We are an ATTENDEE declining the meeting. + * - We are the ORGANIZER canceling the meeting. + * + * @param DAVResource $deleted_resource The resource which has already been deleted + */ +function do_scheduling_for_delete(DAVResource $deleted_resource ) { + // By the time we arrive here the resource *has* actually been deleted from disk + // we can only fail to (de-)schedule the activity... + global $request, $c; + + if ( !isset($request) || (isset($c->enable_auto_schedule) && !$c->enable_auto_schedule) ) return true; + if ( $deleted_resource->IsInSchedulingCollection() ) return true; + + $caldav_data = $deleted_resource->GetProperty('dav-data'); + if ( empty($caldav_data) ) return true; + + $vcal = new vCalendar($caldav_data); + $organizer = $vcal->GetOrganizer(); + if ( $organizer === false || empty($organizer) ) { + dbg_error_log( 'schedule', 'Event has no organizer - no scheduling required.' ); + return true; + } + if ( $vcal->GetScheduleAgent() != 'SERVER' ) { + dbg_error_log( 'schedule', 'SCHEDULE-AGENT=%s - no scheduling required.', $vcal->GetScheduleAgent() ); + return true; + } + $organizer_email = preg_replace( '/^mailto:/i', '', $organizer->Value() ); + + if ( $request->principal->email() == $organizer_email ) { + return doItipOrganizerCancel( $vcal ); + } + else { + if ( isset($_SERVER['HTTP_SCHEDULE_REPLY']) && $_SERVER['HTTP_SCHEDULE_REPLY'] == 'F') { + dbg_error_log( 'schedule', 'Schedule-Reply header set to "F" - no scheduling required.' ); + return true; + } + return doItipAttendeeReply( $vcal, 'DECLINED', $request->principal->email()); + } + +} + + +/** +* Do the scheduling adjustments for a REPLY when an ATTENDEE updates their status. +* @param vCalendar $vcal The resource that the ATTENDEE is writing to their calendar +* @param string $organizer The property which is the event ORGANIZER. +*/ +//function do_scheduling_reply( vCalendar $vcal, vProperty $organizer ) { +function doItipAttendeeReply( vCalendar $resource, $partstat ) { + global $request; + + $organizer = $resource->GetOrganizer(); + $organizer_email = preg_replace( '/^mailto:/i', '', $organizer->Value() ); + $organizer_principal = new Principal('email',$organizer_email ); + + if ( !$organizer_principal->Exists() ) { + dbg_error_log( 'schedule', 'Unknown ORGANIZER "%s" - unable to notify.', $organizer->Value() ); + return true; + } + + $sql = 'SELECT caldav_data.dav_name, caldav_data.caldav_data FROM caldav_data JOIN calendar_item USING(dav_id) '; + $sql .= 'WHERE caldav_data.collection_id IN (SELECT collection_id FROM collection WHERE is_calendar AND user_no =?) '; + $sql .= 'AND uid=? LIMIT 1'; + $uids = $resource->GetPropertiesByPath('/VCALENDAR/*/UID'); + if ( count($uids) == 0 ) { + dbg_error_log( 'schedule', 'No UID in VCALENDAR - giving up on REPLY.' ); + return true; + } + $uid = $uids[0]->Value(); + $qry = new AwlQuery($sql, $organizer_principal->user_no(), $uid); + if ( !$qry->Exec('schedule',__LINE__,__FILE__) || $qry->rows() < 1 ) { + dbg_error_log( 'schedule', 'Could not find original event from organizer - giving up on REPLY.' ); + return true; + } + $row = $qry->Fetch(); + $collection_path = preg_replace('{/[^/]+$}', '/', $row->dav_name ); + $segment_name = str_replace($collection_path, '', $row->dav_name ); + $vcal = new vCalendar($row->caldav_data); + + $attendees = $vcal->GetAttendees(); + foreach( $attendees AS $v ) { + $email = preg_replace( '/^mailto:/i', '', $v->Value() ); + if ( $email == $request->principal->email() ) { + $attendee = $v; + break; + } + } + if ( empty($attendee) ) { + dbg_error_log( 'schedule', 'Could not find ATTENDEE in VEVENT - giving up on REPLY.' ); + return true; + } + + $attendee->SetParameterValue('PARTSTAT', $partstat); + $attendee->SetParameterValue('SCHEDULE-STATUS', '2.0'); + $vcal->UpdateAttendeeStatus($request->principal->email(), clone($attendee) ); + + $organizer_calendar = new WritableCollection(array('path' => $collection_path)); + $organizer_inbox = new WritableCollection(array('path' => $organizer_principal->internal_url('schedule-inbox'))); + + $schedule_reply = GetItip(new vCalendar($row->caldav_data),'REPLY',$attendee->Value()); + $schedule_request = GetItip(new vCalendar($row->caldav_data),'REQUEST',null); + + dbg_error_log( 'schedule', 'Writing ATTENDEE scheduling REPLY from %s to %s', $request->principal->email(), $organizer_principal->email() ); + + $response = '3.7'; // Organizer was not found on server. + if ( !$organizer_calendar->Exists() ) { + dbg_error_log('ERROR','Default calendar at "%s" does not exist for user "%s"', + $organizer_calendar->dav_name(), $schedule_target->username()); + $response = '5.2'; // No scheduling support for user + } + else { + if ( ! $organizer_inbox->HavePrivilegeTo('schedule-deliver-reply') ) { + $response = '3.8'; // No authority to deliver replies to organizer. + } + $response = '1.2'; // Scheduling reply delivered successfully + if ( $organizer_calendar->WriteCalendarMember($vcal, false, false, $segment_name) === false ) { + dbg_error_log('ERROR','Could not write updated calendar member to %s', $attendee_calendar->dav_name() ); + trace_bug('Failed to write scheduling resource.'); + } + $organizer_inbox->WriteCalendarMember($schedule_reply, false, false, $request->principal->username().$segment_name); + } + + + dbg_error_log( 'schedule', 'Status for organizer <%s> set to "%s"', $organizer->Value(), $response ); + $organizer->SetParameterValue( 'SCHEDULE-STATUS', $response ); + $resource->UpdateOrganizerStatus($organizer); // Which was passed in by reference, and we're updating it here. + + // Now we loop through the *other* ATTENDEEs, updating them on the status of the ATTENDEE DECLINE/ACCEPT + foreach( $attendees AS $attendee ) { + $email = preg_replace( '/^mailto:/i', '', $attendee->Value() ); + if ( $email == $request->principal->email() || $email == $organizer_principal->email() ) continue; + + $agent = $attendee->GetParameterValue('SCHEDULE-AGENT'); + if ( !empty($agent) && $agent != 'SERVER' ) continue; + + $schedule_target = new Principal('email',$email); + if ( $schedule_target->Exists() ) { + $attendee_calendar = new WritableCollection(array('path' => $schedule_target->internal_url('schedule-default-calendar'))); + if ( !$attendee_calendar->Exists() ) { + dbg_error_log('ERROR','Default calendar at "%s" does not exist for user "%s"', + $attendee_calendar->dav_name(), $schedule_target->username()); + continue; + } + else { + $attendee_inbox = new WritableCollection(array('path' => $schedule_target->internal_url('schedule-inbox'))); + if ( ! $attendee_inbox->HavePrivilegeTo('schedule-deliver-invite') ) continue; + + if ( $attendee_calendar->WriteCalendarMember($vcal, false) === false ) { + dbg_error_log('ERROR','Could not write updated calendar member to %s', $attendee_calendar->dav_name()); + trace_bug('Failed to write scheduling resource.'); + } + $attendee_inbox->WriteCalendarMember($schedule_request, false); + } + } + } + + return true; +} + +function GetItip( VCalendar $vcal, $method, $attendee_value ) { + + $iTIP = $vcal->GetItip($method, $attendee_value ); + $iTIP->AddProperty('REQUEST-STATUS','2.0'); + $components = $iTIP->GetComponents(); + foreach( $components AS $comp ) { + $properties = array(); + foreach( $comp->GetProperties() AS $k=> $property ) { + switch( $property->Name() ) { + case 'DTSTART': + case 'DTEND': + case 'DUE': + $when = new RepeatRuleDateTime($property); + $properties[] = new vProperty( $property->Name() . ":" . $when->UTC() ); + break; + default: + $properties[] = $property; + } + } + $comp->SetProperties($properties); + } + + return $iTIP; +} + +/** + * Handles sending the iTIP CANCEL messages to each ATTENDEE by the ORGANIZER. + * @param vCalendar $vcal What's being cancelled. + */ +function doItipOrganizerCancel( vCalendar $vcal ) { + global $request; + + $attendees = $vcal->GetAttendees(); + if ( count($attendees) == 0 && count($old_attendees) == 0 ) { + dbg_error_log( 'schedule', 'Event has no attendees - no scheduling required.', count($attendees) ); + return true; + } + + dbg_error_log( 'schedule', 'Writing scheduling resources for %d attendees', count($attendees) ); + $scheduling_actions = false; + + $iTIP = GetItip($vcal, 'CANCEL', null); + + foreach( $attendees AS $attendee ) { + $email = preg_replace( '/^mailto:/i', '', $attendee->Value() ); + if ( $email == $request->principal->email() ) { + dbg_error_log( 'schedule', "not delivering to owner '%s'", $request->principal->email() ); + continue; + } + + $agent = $attendee->GetParameterValue('SCHEDULE-AGENT'); + if ( $agent && $agent != 'SERVER' ) { + dbg_error_log( 'schedule', "not delivering to %s, schedule agent set to value other than server", $email ); + continue; + } + $schedule_target = new Principal('email',$email); + if ( !$schedule_target->Exists() ) { + $response = '3.7'; + } + else { + $attendee_inbox = new WritableCollection(array('path' => $schedule_target->internal_url('schedule-inbox'))); + if ( ! $attendee_inbox->HavePrivilegeTo('schedule-deliver-invite') ) { + dbg_error_log( 'schedule', "No authority to deliver invite to %s", $schedule_target->internal_url('schedule-inbox') ); + $response = '3.8'; + } + else { + $attendee_calendar = new WritableCollection(array('path' => $schedule_target->internal_url('schedule-default-calendar'))); + $response = processItipCancel( $vcal, $attendee, $attendee_calendar, $schedule_target ); + deliverItipCancel( $iTIP, $attendee, $attendee_inbox ); + } + } + dbg_error_log( 'schedule', 'Status for attendee <%s> set to "%s"', $attendee->Value(), $response ); + $attendee->SetParameterValue( 'SCHEDULE-STATUS', $response ); + $scheduling_actions = true; + } + + return true; +} + +/** + * Does the actual processing of the iTIP CANCEL message on behalf of an ATTENDEE, + * which generally means writing it into the ATTENDEE's default calendar. + * + * @param vCalendar $vcal The message. + * @param vProperty $attendee + * @param WritableCollection $attendee_calendar + */ +function processItipCancel( vCalendar $vcal, vProperty $attendee, WritableCollection $attendee_calendar, Principal $attendee_principal ) { + + dbg_error_log( 'schedule', 'Processing iTIP CANCEL to %s', $attendee->Value()); + if ( !$attendee_calendar->Exists() ) { + dbg_error_log('ERROR', 'Default calendar at "%s" does not exist for attendee "%s"', + $attendee_calendar->dav_name(), $attendee->Value()); + return '5.2'; // No scheduling support for user + } + + $sql = 'SELECT caldav_data.dav_name FROM caldav_data JOIN calendar_item USING(dav_id) '; + $sql .= 'WHERE caldav_data.collection_id IN (SELECT collection_id FROM collection WHERE is_calendar AND user_no =?) '; + $sql .= 'AND uid=? LIMIT 1'; + $uids = $vcal->GetPropertiesByPath('/VCALENDAR/*/UID'); + if ( count($uids) == 0 ) { + dbg_error_log( 'schedule', 'No UID in VCALENDAR - giving up on CANCEL processing.' ); + return '3.8'; + } + $uid = $uids[0]->Value(); + $qry = new AwlQuery($sql, $attendee_principal->user_no(), $uid); + if ( !$qry->Exec('schedule',__LINE__,__FILE__) || $qry->rows() < 1 ) { + dbg_error_log( 'schedule', 'Could not find ATTENDEE copy of original event - not trying to DELETE it!' ); + return '1.2'; + } + $row = $qry->Fetch(); + + if ( $attendee_calendar->actualDeleteCalendarMember($row->dav_name) === false ) { + dbg_error_log('ERROR', 'Could not delete calendar member %s for %s', + $row->dav_name(), $attendee->Value()); + trace_bug('Failed to write scheduling resource.'); + return '5.2'; + } + + return '1.2'; // Scheduling invitation delivered successfully + +} + + +/** + * Delivers the iTIP CANCEL message to an ATTENDEE's Scheduling Inbox Collection. + * + * This is pretty simple at present, but could be extended in the future to do the sending + * of e-mail to a remote attendee. + * + * @param vCalendar $iTIP + * @param vProperty $attendee + * @param WritableCollection $attendee_inbox + */ +function deliverItipCancel( vCalendar $iTIP, vProperty $attendee, WritableCollection $attendee_inbox ) { + $attendee_inbox->WriteCalendarMember($iTIP, false); +} + diff -Nru davical-0.9.9.7/inc/tz/expand.php davical-1.0.2/inc/tz/expand.php --- davical-0.9.9.7/inc/tz/expand.php 2011-10-06 09:14:54.000000000 +0000 +++ davical-1.0.2/inc/tz/expand.php 2011-12-01 23:19:15.000000000 +0000 @@ -163,7 +163,7 @@ $response = new XMLDocument(array("urn:ietf:params:xml:ns:timezone-service" => "")); $timezones = $response->NewXMLElement('urn:ietf:params:xml:ns:timezone-service:timezones'); -$qry = new AwlQuery('SELECT to_char(max(last_modified),\'YYYY-MM-DD\"T\"HH24:MI:SS"Z"\') AS dtstamp FROM timezones'); +$qry = new AwlQuery('SELECT to_char(max(last_modified),\'YYYY-MM-DD"T"HH24:MI:SS"Z"\') AS dtstamp FROM timezones'); if ( $qry->Exec('tz/list',__LINE__,__FILE__) && $qry->rows() > 0 ) { $row = $qry->Fetch(); $timezones->NewElement('dtstamp', $row->dtstamp); diff -Nru davical-0.9.9.7/inc/tz/list.php davical-1.0.2/inc/tz/list.php --- davical-0.9.9.7/inc/tz/list.php 2011-10-06 09:14:54.000000000 +0000 +++ davical-1.0.2/inc/tz/list.php 2011-12-01 23:18:20.000000000 +0000 @@ -13,7 +13,7 @@ $response = new XMLDocument( array("urn:ietf:params:xml:ns:timezone-service" => "") ); $tzlist = $response->NewXMLElement('timezone-list'); -$qry = new AwlQuery('SELECT to_char(max(last_modified),\'YYYY-MM-DD\"T\"HH24:MI:SS"Z"\') AS dtstamp FROM timezones'); +$qry = new AwlQuery('SELECT to_char(max(last_modified),\'YYYY-MM-DD"T"HH24:MI:SS"Z"\') AS dtstamp FROM timezones'); if ( $qry->Exec('tz/list',__LINE__,__FILE__) && $qry->rows() > 0 ) { $row = $qry->Fetch(); $tzlist->NewElement('dtstamp', $row->dtstamp); @@ -22,7 +22,7 @@ $tzlist->NewElement('dtstamp', gmdate('Y-m-d\TH:i:s\Z')); } -$sql = 'SELECT our_tzno, tzid, active, to_char(last_modified,\'YYYY-MM-DD\"T\"HH24:MI:SS"Z"\') AS last_modified, olson_name, vtimezone FROM timezones'; +$sql = 'SELECT our_tzno, tzid, active, to_char(last_modified,\'YYYY-MM-DD"T"HH24:MI:SS"Z"\') AS last_modified, olson_name, vtimezone FROM timezones'; $params = array(); $where = ''; if ( $returnall !== true ) { diff -Nru davical-0.9.9.7/inc/ui/collection-edit.php davical-1.0.2/inc/ui/collection-edit.php --- davical-0.9.9.7/inc/ui/collection-edit.php 2011-10-07 11:12:18.000000000 +0000 +++ davical-1.0.2/inc/ui/collection-edit.php 2012-01-13 02:45:22.000000000 +0000 @@ -132,6 +132,15 @@ $entryqry = new AwlQuery( 'SELECT count(*) as count from caldav_data where collection_id='.$editor->Value('collection_id') ); $entryqry->Exec('admin-collection-edit'); $entries = $entryqry->Fetch(); $entries = $entries->count; + + $externalqry = new AwlQuery( 'SELECT external_url from dav_binding where bound_source_id=:id limit 1', array(':id' => $editor->Value('collection_id') ) ); + $externalqry->Exec('external-bind-url'); + $external = $externalqry->Fetch(); $external_url = $external->external_url; + if ( $external_url ) { + $external_bind = "\n"; + } else { + $external_bind = ""; + } } else { $c->page_title = $editor->Title(translate('Create New Collection')); @@ -217,8 +226,8 @@ $btn_rw = htmlspecialchars(translate('Read/Write')); $btn_rw_title = htmlspecialchars(translate('Set read+write privileges')); $btn_read = htmlspecialchars(translate('Read')); $btn_read_title = htmlspecialchars(translate('Set read privileges')); $btn_fb = htmlspecialchars(translate('Free/Busy')); $btn_fb_title = htmlspecialchars(translate('Set free/busy privileges')); -$btn_sd = htmlspecialchars(translate('Schedule Deliver')); $btn_sd_title = htmlspecialchars(translate('Set schedule-deliver privileges')); -$btn_ss = htmlspecialchars(translate('Schedule Send')); $btn_ss_title = htmlspecialchars(translate('Set schedule-deliver privileges')); +$btn_sd = htmlspecialchars(translate('Schedule Deliver')); $btn_sd_title = htmlspecialchars(translate('Privileges to allow delivery of scheduling messages')); +$btn_ss = htmlspecialchars(translate('Schedule Send')); $btn_ss_title = htmlspecialchars(translate('Privileges to delegate scheduling decisions')); $id = $editor->Value('collection_id'); @@ -315,7 +324,7 @@
    Apache 2.0 Filter" in the phpinfo + if ( preg_match('{Server API.*Apache 2\.. Filter}', $phpinfo) ) return new CheckResult(false); + return new CheckResult(true); +} + function check_calendar() { global $phpinfo, $loaded_extensions; @@ -100,6 +107,13 @@ return new CheckResult( (get_magic_quotes_runtime() == 0) ); } +function check_curl() { + global $phpinfo, $loaded_extensions; + + if (!function_exists('curl_init')) return new CheckResult(false); + return new CheckResult(isset($loaded_extensions['curl'])); +} + $loaded_extensions = array_flip(get_loaded_extensions()); @@ -238,16 +252,18 @@ translate('Current DAViCal version ') => 'check_davical_version', translate('DAViCal DB Schema version ') => 'check_schema_version', translate('AWL Library version ') => 'check_awl_version', + translate('PHP not using Apache Filter mode') => 'check_real_php', translate('PHP PDO module available') => 'check_pdo', translate('PDO PostgreSQL drivers') => 'check_pdo_pgsql', - translate('PHP PostgreSQL available') => 'check_pgsql', +// translate('PHP PostgreSQL available') => 'check_pgsql', translate('GNU gettext support') => 'check_gettext', translate('PHP iconv support') => 'check_iconv', translate('PHP DateTime class') => 'check_datetime', translate('Suhosin "server.strip" disabled') => 'check_suhosin_server_strip', translate('PHP Magic Quotes GPC off') => 'check_magic_quotes_gpc', translate('PHP Magic Quotes runtime off') => 'check_magic_quotes_runtime', - translate('PHP calendar extension available') => 'check_calendar' + translate('PHP calendar extension available') => 'check_calendar', + translate('PHP curl support') => 'check_curl' ); if ( isset($c->authenticate_hook) && isset($c->authenticate_hook['call']) && $c->authenticate_hook['call'] == 'LDAP_check') { @@ -258,13 +274,15 @@ $dep_tpl = '
    %s %sExplanation on DAViCal Wiki
    " . translate('External Url') . " $external_url
    - + $external_bind
    $prompt_collection_id: $value_id
    $prompt_dav_name: $value_dav_name
    $prompt_dav_name: $value_dav_name
    $prompt_entries: $entries
    $prompt_load_file: ##ics_file.file.60##   @@ -348,7 +357,7 @@ diff -Nru davical-0.9.9.7/inc/ui/external-browse.php davical-1.0.2/inc/ui/external-browse.php --- davical-0.9.9.7/inc/ui/external-browse.php 2011-10-07 07:46:31.000000000 +0000 +++ davical-1.0.2/inc/ui/external-browse.php 2011-10-24 08:18:04.000000000 +0000 @@ -4,7 +4,7 @@ $browser = new Browser(translate('External Calendars')); $browser->AddColumn( 'collection_id', translate('ID'), 'right', '##collection_link##' ); -$rowurl = $c->base_url . '/admin.php?action=edit&t=external&id='; +$rowurl = $c->base_url . '/admin.php?action=edit&t=collection&id='; $browser->AddHidden( 'collection_link', "'' || collection_id || ''" ); $browser->AddColumn( 'dav_displayname', translate('Display Name') ); $browser->AddColumn( 'refs', translate('References'),'right','','(select count(*) from dav_binding where bound_source_id=collection_id )' ); @@ -26,3 +26,13 @@ $page_elements[] = $browser; + +$externalqry = new AwlQuery( "SELECT count(*) as count from collection where parent_container='/.external/' and collection_id not in ( select bound_source_id from dav_binding where external_url is not null)" ); +$externalqry->Exec('external-bind-url'); +$external = $externalqry->Fetch(); +if ( $external->count > 0 ) { + $link = ''. + translate("Remove dangling external calendars").'('.$external->count.')'; + $c->stylesheets[] = 'css/edit.css'; + $page_elements[] = $link; +} diff -Nru davical-0.9.9.7/inc/ui/principal-edit.php davical-1.0.2/inc/ui/principal-edit.php --- davical-0.9.9.7/inc/ui/principal-edit.php 2011-09-25 09:04:57.000000000 +0000 +++ davical-1.0.2/inc/ui/principal-edit.php 2012-01-12 23:29:14.000000000 +0000 @@ -376,8 +376,8 @@ $btn_rw = htmlspecialchars(translate('Read/Write')); $btn_rw_title = htmlspecialchars(translate('Set read+write privileges')); $btn_read = htmlspecialchars(translate('Read')); $btn_read_title = htmlspecialchars(translate('Set read privileges')); $btn_fb = htmlspecialchars(translate('Free/Busy')); $btn_fb_title = htmlspecialchars(translate('Set free/busy privileges')); - $btn_sd = htmlspecialchars(translate('Schedule Deliver')); $btn_sd_title = htmlspecialchars(translate('Set schedule-deliver privileges')); - $btn_ss = htmlspecialchars(translate('Schedule Send')); $btn_ss_title = htmlspecialchars(translate('Set schedule-deliver privileges')); + $btn_sd = htmlspecialchars(translate('Schedule Deliver')); $btn_sd_title = htmlspecialchars(translate('Privileges to allow delivery of scheduling messages')); + $btn_ss = htmlspecialchars(translate('Schedule Send')); $btn_ss_title = htmlspecialchars(translate('Privileges to delegate scheduling decisions')); $privs_dec = bindec($ed->Value($fname)); $privileges_set = sprintf('
    %s', $fname, "\n"); @@ -794,7 +794,7 @@ $ticket_id = substr( str_replace('/', '', str_replace('+', '',base64_encode(sha1(date('r') .rand(0,2100000000) . microtime(true),true)))), 7, 8); $extra_row = array( 'ticket_id' => $ticket_id, 'expires' => date( 'Y-m-d', time() + (86400 * 31) ), - 'target' => '/'.$editor->Value('username').'/home/' + 'target' => '/'.$editor->Value('username').'/'.$c->home_calendar_name.'/' ); $browser->MatchedRow('ticket_id', $ticket_id, 'edit_ticket_row'); $browser->AddRow($extra_row); diff -Nru davical-0.9.9.7/inc/vcard.php davical-1.0.2/inc/vcard.php --- davical-0.9.9.7/inc/vcard.php 2011-09-11 11:46:40.000000000 +0000 +++ davical-1.0.2/inc/vcard.php 2012-01-13 04:18:38.000000000 +0000 @@ -90,7 +90,9 @@ $params = array( ':dav_id' => $dav_id ); $qry->QDo('DELETE FROM addressbook_address_adr WHERE dav_id = :dav_id', $params ); foreach( $addresses AS $adr ) { - $params[':type'] = $adr->GetParameterValue('TYPE'); + $type = $adr->GetParameterValue('TYPE'); + if ( is_array($type) ) $type = implode('~|~',$type); + $params[':type'] = $type; $address = explode(';',$adr->Value()); // We use @ to suppress the warnings here, because the NULL in the database suits us well. @@ -128,7 +130,9 @@ $params = array( ':dav_id' => $dav_id ); $qry->QDo('DELETE FROM addressbook_address_tel WHERE dav_id = :dav_id', $params ); foreach( $telephones AS $tel ) { - $params[':type'] = $tel->GetParameterValue('TYPE'); + $type = $tel->GetParameterValue('TYPE'); + if ( is_array($type) ) $type = implode('~|~',$type); + $params[':type'] = $type; if ( ! isset($params[':type']) ) $params[':type'] = 'voice'; $params[':tel'] = $tel->Value(); $params[':property'] = $tel->Render(); @@ -157,7 +161,9 @@ $params = array( ':dav_id' => $dav_id ); $qry->QDo('DELETE FROM addressbook_address_email WHERE dav_id = :dav_id', $params ); foreach( $emails AS $email ) { - $params[':type'] = $email->GetParameterValue('TYPE'); + $type = $email->GetParameterValue('TYPE'); + if ( is_array($type) ) $type = implode('~|~',$type); + $params[':type'] = $type; $params[':email'] = $email->Value(); $params[':property'] = $email->Render(); $qry->QDo( 'INSERT INTO addressbook_address_email (dav_id, type, email, property) VALUES( :dav_id, :type, :email, :property)', $params ); diff -Nru davical-0.9.9.7/inc/well-known.php davical-1.0.2/inc/well-known.php --- davical-0.9.9.7/inc/well-known.php 2011-10-07 07:55:02.000000000 +0000 +++ davical-1.0.2/inc/well-known.php 2011-11-02 05:12:04.000000000 +0000 @@ -34,7 +34,7 @@ if ( $c->enable_scheduling != true ) { $request->DoResponse( 404, translate('The application program does not understand that request.') ); - exit (); + // Does not return } header ( 'iSchedule-Version: 1.0' ); @@ -103,5 +103,6 @@ RESPONSE; - exit ( 0 ); + + @ob_flush(); exit(0); } diff -Nru davical-0.9.9.7/inc/WritableCollection.php davical-1.0.2/inc/WritableCollection.php --- davical-0.9.9.7/inc/WritableCollection.php 2011-10-19 22:42:24.000000000 +0000 +++ davical-1.0.2/inc/WritableCollection.php 2011-11-01 05:21:45.000000000 +0000 @@ -17,7 +17,7 @@ return $p->GetParameterValue('TZID'); } - /** + /** * Writes the data to a member in the collection and returns the segment_name of the * resource in our internal namespace. * @@ -36,7 +36,7 @@ return false; } - global $tz_regex, $session, $caldav_context; + global $session, $caldav_context; $resources = $vcal->GetComponents('VTIMEZONE',false); // Not matching VTIMEZONE $user_no = $this->user_no(); @@ -179,18 +179,11 @@ $calitem_params[':dtstamp'] = $dtstamp; $class = $first->GetPValue('CLASS'); - /* Check and see if we should over ride the class. */ - /** @todo is there some way we can move this out of this function? Or at least get rid of the need for the SQL query here. */ - if ( public_events_only($user_no, $path) ) { - $class = 'PUBLIC'; - } - /* * It seems that some calendar clients don't set a class... - * RFC2445, 4.8.1.3: - * Default is PUBLIC + * RFC2445, 4.8.1.3: Default is PUBLIC */ - if ( !isset($class) || $class == '' ) { + if ( $this->IsPublicOnly() || !isset($class) || $class == '' ) { $class = 'PUBLIC'; } $calitem_params[':class'] = $class; @@ -202,19 +195,11 @@ $tz = $vcal->GetTimeZone($tzid); $olson = $vcal->GetOlsonName($tz); - dbg_error_log( 'PUT', ' Using TZID[%s] and location of [%s]', $tzid, (isset($olson) ? $olson : '') ); - if ( !empty($olson) && ($olson != $last_olson) && preg_match( $tz_regex, $olson ) ) { + if ( !empty($olson) && ($olson != $last_olson) ) { dbg_error_log( 'PUT', ' Setting timezone to %s', $olson ); $qry->QDo('SET TIMEZONE TO \''.$olson."'" ); $last_olson = $olson; } - $params = array( ':tzid' => $tzid); - $qry = new AwlQuery('SELECT 1 FROM timezones WHERE tzid = :tzid', $params ); - if ( $qry->Exec('PUT',__LINE__,__FILE__) && $qry->rows() == 0 ) { - $params[':olson_name'] = $olson; - $params[':vtimezone'] = (isset($tz) ? $tz->Render() : null ); - $qry->QDo('INSERT INTO timezones (tzid, olson_name, active, vtimezone) VALUES(:tzid,:olson_name,false,:vtimezone)', $params ); - } } $created = $first->GetPValue('CREATED'); @@ -258,8 +243,8 @@ } if ( !$this->IsSchedulingCollection() ) { - write_alarms($dav_id, $first); - write_attendees($dav_id, $vcal); + $this->WriteCalendarAlarms($dav_id, $vcal); + $this->WriteCalendarAttendees($dav_id, $vcal); if ( $log_action && function_exists('log_caldav_action') ) { log_caldav_action( $put_action_type, $first->GetPValue('UID'), $user_no, $collection_id, $path ); } @@ -317,4 +302,144 @@ return $segment_name; } + + /** + * Given a dav_id and an original vCalendar, pull out each of the VALARMs + * and write the values into the calendar_alarm table. + * + * @return null + */ + function WriteCalendarAlarms( $dav_id, vCalendar $vcal ) { + $qry = new AwlQuery('DELETE FROM calendar_alarm WHERE dav_id = '.$dav_id ); + $qry->Exec('PUT',__LINE__,__FILE__); + + $components = $vcal->GetComponents(); + + $qry->SetSql('INSERT INTO calendar_alarm ( dav_id, action, trigger, summary, description, component, next_trigger ) + VALUES( '.$dav_id.', :action, :trigger, :summary, :description, :component, + :related::timestamp with time zone + :related_trigger::interval )' ); + $qry->Prepare(); + foreach( $components AS $component ) { + if ( $component->GetType() == 'VTIMEZONE' ) continue; + $alarms = $component->GetComponents('VALARM'); + if ( count($alarms) < 1 ) return; + + foreach( $alarms AS $v ) { + $trigger = array_merge($v->GetProperties('TRIGGER')); + if ( $trigger == null ) continue; // Bogus data. + $trigger = $trigger[0]; + $related = null; + $related_trigger = '0M'; + $trigger_type = $trigger->GetParameterValue('VALUE'); + if ( !isset($trigger_type) || $trigger_type == 'DURATION' ) { + switch ( $trigger->GetParameterValue('RELATED') ) { + case 'DTEND': $related = $component->GetPValue('DTEND'); break; + case 'DUE': $related = $component->GetPValue('DUE'); break; + default: $related = $component->GetPValue('DTSTART'); + } + $duration = $trigger->Value(); + if ( !preg_match('{^-?P(:?\d+W)?(:?\d+D)?(:?T(:?\d+H)?(:?\d+M)?(:?\d+S)?)?$}', $duration ) ) continue; + $minus = (substr($duration,0,1) == '-'); + $related_trigger = trim(preg_replace( '#[PT-]#', ' ', $duration )); + if ( $minus ) { + $related_trigger = preg_replace( '{(\d+[WDHMS])}', '-$1 ', $related_trigger ); + } + else { + $related_trigger = preg_replace( '{(\d+[WDHMS])}', '$1 ', $related_trigger ); + } + } + else { + if ( false === strtotime($trigger->Value()) ) continue; // Invalid date. + } + $qry->Bind(':action', $v->GetPValue('ACTION')); + $qry->Bind(':trigger', $trigger->Render()); + $qry->Bind(':summary', $v->GetPValue('SUMMARY')); + $qry->Bind(':description', $v->GetPValue('DESCRIPTION')); + $qry->Bind(':component', $v->Render()); + $qry->Bind(':related', $related ); + $qry->Bind(':related_trigger', $related_trigger ); + $qry->Exec('PUT',__LINE__,__FILE__); + } + } + } + + + /** + * Parse out the attendee property and write a row to the + * calendar_attendee table for each one. + * @param int $dav_id The dav_id of the caldav_data we're processing + * @param vComponent The VEVENT or VTODO containing the ATTENDEEs + * @return null + */ + function WriteCalendarAttendees( $dav_id, vCalendar $vcal ) { + $qry = new AwlQuery('DELETE FROM calendar_attendee WHERE dav_id = '.$dav_id ); + $qry->Exec('PUT',__LINE__,__FILE__); + + $attendees = $vcal->GetAttendees(); + if ( count($attendees) < 1 ) return; + + $qry->SetSql('INSERT INTO calendar_attendee ( dav_id, status, partstat, cn, attendee, role, rsvp, property ) + VALUES( '.$dav_id.', :status, :partstat, :cn, :attendee, :role, :rsvp, :property )' ); + $qry->Prepare(); + $processed = array(); + foreach( $attendees AS $v ) { + $attendee = $v->Value(); + if ( isset($processed[$attendee]) ) { + dbg_error_log( 'LOG', 'Duplicate attendee "%s" in resource "%d"', $attendee, $dav_id ); + dbg_error_log( 'LOG', 'Original: "%s"', $processed[$attendee] ); + dbg_error_log( 'LOG', 'Duplicate: "%s"', $v->Render() ); + continue; /** @todo work out why we get duplicate ATTENDEE on one VEVENT */ + } + $qry->Bind(':attendee', $attendee ); + $qry->Bind(':status', $v->GetParameterValue('STATUS') ); + $qry->Bind(':partstat', $v->GetParameterValue('PARTSTAT') ); + $qry->Bind(':cn', $v->GetParameterValue('CN') ); + $qry->Bind(':role', $v->GetParameterValue('ROLE') ); + $qry->Bind(':rsvp', $v->GetParameterValue('RSVP') ); + $qry->Bind(':property', $v->Render() ); + $qry->Exec('PUT',__LINE__,__FILE__); + $processed[$attendee] = $v->Render(); + } + } + + /** + * Writes the data to a member in the collection and returns the segment_name of the + * resource in our internal namespace. + * + * @param vCalendar $member_dav_name The path to the resource to be deleted. + * @return boolean Success is true, or false on failure. + */ + function actualDeleteCalendarMember( $member_dav_name ) { + global $session, $caldav_context; + + // A quick sanity check... + $segment_name = str_replace( $this->dav_name(), '', $member_dav_name ); + if ( strstr($segment_name, '/') !== false ) { + @dbg_error_log( "DELETE", "DELETE: Refused to delete member '%s' from calendar '%s'!", $member_dav_name, $this->dav_name() ); + return false; + } + + // We need to serialise access to this process just for this collection + $cache = getCacheInstance(); + $myLock = $cache->acquireLock('collection-'.$this->dav_name()); + + $qry = new AwlQuery(); + $params = array( ':dav_name' => $member_dav_name ); + + if ( $qry->QDo("SELECT write_sync_change(collection_id, 404, caldav_data.dav_name) FROM caldav_data WHERE dav_name = :dav_name", $params ) + && $qry->QDo("DELETE FROM property WHERE dav_name = :dav_name", $params ) + && $qry->QDo("DELETE FROM locks WHERE dav_name = :dav_name", $params ) + && $qry->QDo("DELETE FROM caldav_data WHERE dav_name = :dav_name", $params ) ) { + @dbg_error_log( "DELETE", "DELETE: Calendar member %s deleted from calendar '%s'", $member_dav_name, $this->dav_name() ); + + $cache->releaseLock($myLock); + + return true; + } + + $cache->releaseLock($myLock); + return false; + + } + } diff -Nru davical-0.9.9.7/po/de.po davical-1.0.2/po/de.po --- davical-0.9.9.7/po/de.po 2011-09-26 22:30:09.000000000 +0000 +++ davical-1.0.2/po/de.po 2012-01-13 10:33:09.000000000 +0000 @@ -1,30 +1,34 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# thoerb , 2011. -# spasstl , 2011. +# +# Translators: # Andrew McMillan , 2011. # fmms , 2011. +# , 2011, 2012. +# spasstl , 2011. +# thoerb , 2011. msgid "" msgstr "" "Project-Id-Version: DAViCal\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-27 11:30+1300\n" -"PO-Revision-Date: 2011-07-09 18:08+0000\n" -"Last-Translator: gurkenpapst \n" +"Report-Msgid-Bugs-To: http://repo.or.cz/w/davical.git/tree/HEAD:/issues\n" +"POT-Creation-Date: 2011-11-21 10:59+1300\n" +"PO-Revision-Date: 2012-01-07 09:14+0000\n" +"Last-Translator: fmms \n" "Language-Team: German (http://www.transifex.net/projects/p/davical/team/de/)\n" -"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#. Translators: this is the formatting of a date with time. See http://php.net/manual/en/function.strftime.php +#. Translators: this is the formatting of a date with time. See +#. http://php.net/manual/en/function.strftime.php msgid "%F %T" msgstr "%F %T" -#. Translators: his is the formatting of just the time. See http://php.net/manual/en/function.strftime.php +#. Translators: his is the formatting of just the time. See +#. http://php.net/manual/en/function.strftime.php msgid "%T" msgstr "%T" @@ -74,51 +78,47 @@ msgid "- updating user records : %s" msgstr "- aktualisiere Benutzereinträge: %s" -msgid "WARNING: all events in this path will be deleted before inserting allof the ics file" +msgid "" +"WARNING: all events in this path will be deleted before inserting allof " +"the ics file" msgstr "" -"WARNUNG: Vor dem Einfügen der ICS-Kalenderdatei werden alle Termine in diesem Pfad gelöscht" +"WARNUNG: Vor dem Einfügen der ICS-Kalenderdatei werden alle Termine in " +"diesem Pfad gelöscht" #, php-format msgid "" "

    Help

    \n" -"

    For initial help you should visit the DAViCal " -"Home Page or take\n" +"

    For initial help you should visit the DAViCal Home Page or take\n" "a look at the DAViCal Wiki.

    \n" -"

    If you can't find the answers there, visit us on IRC in\n" +"

    If you can't find the answers there, visit us on IRC in\n" "the #davical channel on irc.oftc.net,\n" -"or send a question to the DAViCal Users mailing list.

    \n" -"

    The mailing list\n" +"or send a question to the DAViCal Users mailing list.

    \n" +"

    The mailing list\n" "archives can be helpful too.

    " msgstr "" "

    Hilfe

    \n" -"

    Besuchen Sie die DAViCal-Homepage oder " -"schauen Sie \n" -"in das DAViCal-Wiki um Hilfe zu erhalten." -"

    \n" -"

    Falls Sie dort nicht die gesuchten Informationen finden, können Sie uns über IRC im\n" -"Channel #davical auf irc.oftc.net " -"besuchen\n" -"oder Ihre Frage an die DAViCal-Users-Mailingliste schicken.

    \n" -"

    Das Archiv der Mailingliste\n" +"

    Besuchen Sie die DAViCal-Homepage oder schauen Sie \n" +"in das DAViCal-Wiki um Hilfe zu erhalten.

    \n" +"

    Falls Sie dort nicht die gesuchten Informationen finden, können Sie uns über IRC im\n" +"Channel #davical auf irc.oftc.net besuchen\n" +"oder Ihre Frage an die DAViCal-Users-Mailingliste schicken.

    \n" +"

    Das Archiv der Mailingliste\n" "könnte ebenfalls interessant sein.

    " #, php-format msgid "" -"

    Log On Please

    For access to the %s you should log on withthe username and password that " -"have been issued to you.

    If you would like to request access, please e-mail %s.

    " +"

    Log On Please

    For access to the %s you should log on withthe " +"username and password that have been issued to you.

    If you would like " +"to request access, please e-mail %s.

    " msgstr "" -"

    Bitte anmelden

    Um auf %s zuzugreifen, müssen Sie sich mit demBenutzernamen und dem Passwort " -"anmelden, die ihnen zugeteilt wurden.

    Um einen Zugang zu beantragen, schreiben Sie eine E-Mail " -"an %s.

    " +"

    Bitte anmelden

    Um auf %s zuzugreifen, müssen Sie sich mit " +"demBenutzernamen und dem Passwort anmelden, die ihnen zugeteilt " +"wurden.

    Um einen Zugang zu beantragen, schreiben Sie eine E-Mail an " +"%s.

    " msgid "A DAViCal principal collection may only contain collections" -msgstr "Eine DAViCal-Prinzipalen-Sammlung darf nur andere Sammlungen enthalten" +msgstr "" +"Eine DAViCal-Prinzipalen-Sammlung darf nur andere Sammlungen enthalten" msgid "A collection already exists at that location." msgstr "An diesem Ort ist bereits eine Sammlung vorhanden." @@ -160,8 +160,16 @@ msgid "All collection data will be unrecoverably deleted." msgstr "Sämtliche Daten der Sammlung werden unwiderruflich gelöscht." -msgid "All of the principal's calendars and events will be unrecoverably deleted." -msgstr "Alle Kalender und Termine des Prinzipals werden unwiderruflich gelöscht." +#, php-format +msgid "All events of user \"%s\" were deleted and replaced by those from file %s" +msgstr "" +"All Ereignisse des Benutzers \"%s\" wurden gelöscht und durch die aus der " +"Datei %s ersetzt" + +msgid "" +"All of the principal's calendars and events will be unrecoverably deleted." +msgstr "" +"Alle Kalender und Termine des Prinzipals werden unwiderruflich gelöscht." msgid "All privileges" msgstr "Alle Rechte" @@ -169,8 +177,10 @@ msgid "All requested changes were made." msgstr "Alle gewünschten Änderungen wurden durchgeführt." -msgid "Allow free/busy enquiries targeted at the owner of this scheduling inbox" -msgstr "Erlaube Frei-/Beschäftigt-Anfragen an den Besitzer dieser Termineingangsbox " +msgid "" +"Allow free/busy enquiries targeted at the owner of this scheduling inbox" +msgstr "" +"Erlaube Frei-/Beschäftigt-Anfragen an den Besitzer dieser Termineingangsbox " msgid "An \"Administrator\" user has full rights to the whole DAViCal System" msgstr "Ein \"Administrator\" besitzt alle Rechte im DAViCal-System" @@ -179,7 +189,8 @@ msgstr "Nicht angemeldete Benutzer dürfen keine Kalender verändern" msgid "Anonymous users may only access public calendars" -msgstr "Nicht angemeldete Benutzer können nur auf öffentliche Kalender zugreifen" +msgstr "" +"Nicht angemeldete Benutzer können nur auf öffentliche Kalender zugreifen" msgid "Application DB User" msgstr "Anwendungsdatenbankbenutzer" @@ -205,6 +216,9 @@ msgid "Bindings to this Principal's Collections" msgstr "Zuordnungen zur Sammlung dieses Prinzipalen" +msgid "Body contains no XML data!" +msgstr "Der Hauptteil enthält kein XML!" + msgid "Bound As" msgstr "Zugeordnet als" @@ -251,8 +265,11 @@ msgid "Collection deleted" msgstr "Sammlung gelöscht" -msgid "Collections may not be both CalDAV calendars and CardDAV addressbooks at the same time" -msgstr "Sammlungen können nicht gleichzeitig CalDAV-Kalender und -Adressbuch sein" +msgid "" +"Collections may not be both CalDAV calendars and CardDAV addressbooks at the" +" same time" +msgstr "" +"Sammlungen können nicht gleichzeitig CalDAV-Kalender und -Adressbuch sein" msgid "Configuring Calendar Clients for DAViCal" msgstr "Konfiguration von Kalender-Clients für DAViCal" @@ -303,7 +320,9 @@ msgstr "Prinzipalen anlegen" msgid "Create a new principal (i.e. a new user, resource or group)" -msgstr "Einen neuen Prinzipalen (z.B. neuen Benutzer, Ressource oder Gruppe) erstellen" +msgstr "" +"Einen neuen Prinzipalen (z.B. neuen Benutzer, Ressource oder Gruppe) " +"erstellen" msgid "Create a resource or collection" msgstr "Neue Ressource oder Sammlung erstellen" @@ -315,7 +334,9 @@ msgstr "Erstelle neuen Prinizipalen." msgid "Creating new ticket granting privileges to this Principal" -msgstr "Generiere ein neues Ticket, um diesem Prinzipalen Berechtigungen zu verleihen" +msgstr "" +"Generiere ein neues Ticket, um diesem Prinzipalen Berechtigungen zu " +"verleihen" msgid "Current DAViCal version " msgstr "aktuelle DAViCal-Version" @@ -323,8 +344,11 @@ msgid "DAV Path" msgstr "DAV-Pfad" -msgid "DAV::resourcetype may only be set to a new value, it may not be removed." -msgstr "DAV::resourcetype darf nur auf einen neuen Wert gesetzt, nicht aber gelöscht werden." +msgid "" +"DAV::resourcetype may only be set to a new value, it may not be removed." +msgstr "" +"DAV::resourcetype darf nur auf einen neuen Wert gesetzt, nicht aber gelöscht" +" werden." msgid "DAViCal CalDAV Server" msgstr "DAViCal-CalDAV-Server" @@ -357,7 +381,8 @@ msgstr "DKIM-Signaturvalidierung fehlgeschlagen (KEY Validation ERROR)" msgid "DKIM signature validation failed(Signature verification ERROR)" -msgstr "DKIM-Signaturvalidierung fehlgeschlagen (Signature verification ERROR)" +msgstr "" +"DKIM-Signaturvalidierung fehlgeschlagen (Signature verification ERROR)" msgid "Database Error" msgstr "Datenbankfehler" @@ -393,7 +418,7 @@ msgstr "Standardrechte" msgid "Default relationships added." -msgstr "" +msgstr "Standardbeziehungen hinzugefügt." msgid "Delete" msgstr "Löschen" @@ -422,11 +447,16 @@ msgid "Deleting Ticket:" msgstr "Lösche Ticket:" -msgid "Deliver scheduling invitations from an organiser to this scheduling inbox" -msgstr "Auslieferung von Termineinladungen von einem Organisierer an diese Termineingangsbox" +msgid "" +"Deliver scheduling invitations from an organiser to this scheduling inbox" +msgstr "" +"Auslieferung von Termineinladungen von einem Organisator an diese " +"Termineingangsbox" msgid "Deliver scheduling replies from an attendee to this scheduling inbox" -msgstr "Auslieferung von Terminantworten von einem Teilnehmer an diese Termineingangsbox" +msgstr "" +"Auslieferung von Terminantworten von einem Teilnehmer an diese " +"Termineingangsbox" msgid "Dependencies" msgstr "Abhängigkeiten" @@ -476,13 +506,17 @@ msgid "Email Address" msgstr "E-Mail-Adresse" -msgid "Enter a username, if you know it, and click here, to be e-mailed a temporary password." +msgid "" +"Enter a username, if you know it, and click here, to be e-mailed a temporary" +" password." msgstr "" -"Geben Sie Ihren Benutzernamen ein (falls bekannt) und klicken Sie hier, um ein temporäres Passwort per " -"E-Mail zu erhalten." +"Geben Sie Ihren Benutzernamen ein (falls bekannt) und klicken Sie hier, um " +"ein temporäres Passwort per E-Mail zu erhalten." msgid "Enter your username and password then click here to log in." -msgstr "Geben Sie Benutzernamen und Passwort ein und klicken Sie hier, um sich anzumelden." +msgstr "" +"Geben Sie Benutzernamen und Passwort ein und klicken Sie hier, um sich " +"anzumelden." #, php-format msgid "Error NoGroupFound with filter >%s<, attributes >%s< , dn >%s<" @@ -490,7 +524,9 @@ #, php-format msgid "Error NoUserFound with filter >%s<, attributes >%s< , dn >%s<" -msgstr "Der Fehler NoUserFound ist mit dem Filter >%s<, den Attributen >%s< und dn >%s< aufgetreten" +msgstr "" +"Der Fehler NoUserFound ist mit dem Filter >%s<, den Attributen >%s< und dn " +">%s< aufgetreten" msgid "Error querying database." msgstr "Fehler bei der Datenbankabfrage" @@ -508,14 +544,23 @@ msgstr "Europäisch (tt.mm.jjjj)" msgid "Existing resource does not match \"If-Match\" header - not accepted." -msgstr "Bestehende Ressource passt nicht zum \"If-Match\"-Header - nicht akzeptiert." +msgstr "" +"Bestehende Ressource passt nicht zum \"If-Match\"-Header - nicht akzeptiert." msgid "Existing resource matches \"If-None-Match\" header - not accepted." -msgstr "Bestehende Ressource passt nicht zum \"If-None-Match\"-Header - nicht akzeptiert." +msgstr "" +"Bestehende Ressource passt nicht zum \"If-None-Match\"-Header - nicht " +"akzeptiert." msgid "Expires" msgstr "Läuft ab" +msgid "External Calendars" +msgstr "Externe Kalender" + +msgid "External Url" +msgstr "Externe URL" + msgid "Fail" msgstr "Fehlgeschlagen" @@ -665,6 +710,9 @@ msgid "Last used" msgstr "Zuletzt verwendet" +msgid "List External Calendars" +msgstr "Externe Kalender anzeigen" + msgid "List Groups" msgstr "Gruppen anzeigen" @@ -695,8 +743,12 @@ msgid "Member deleted from this Group Principal" msgstr "Mitglied wurde von diesem Gruppenprinzipalen entfernt" -msgid "Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly recommended." -msgstr "DAViCal wird größtenteils funktionieren, aber PHP 5.2 oder neuer wird dringend empfohlen. " +msgid "" +"Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly " +"recommended." +msgstr "" +"DAViCal wird größtenteils funktionieren, aber PHP 5.2 oder neuer wird " +"dringend empfohlen. " msgid "Name" msgstr "Name" @@ -714,18 +766,12 @@ msgid "No" msgstr "Nein" -msgid "No authority to deliver invitations to user." -msgstr "Keine Berechtigung, Einladungen an Benutzer zu versenden." - msgid "No calendar content" msgstr "Keine Kalendereinträge vorhanden" msgid "No collection found at that location." msgstr "Keine Sammlung an dem Ort gefunden." -msgid "No scheduling support for user" -msgstr "Keine Scheduling-Unterstützung für den Benutzer" - msgid "No summary" msgstr "Keine Zusammenfassung" @@ -769,18 +815,26 @@ msgid "PHP PDO module available" msgstr "PHP-PDO-Modul vorhanden" -msgid "PHP PostgreSQL available" -msgstr "PHP-PostgreSQL vorhanden" - msgid "PHP calendar extension available" -msgstr "" +msgstr "PHP Kalendererweiterung verfügbar" msgid "PHP iconv support" msgstr "PHP-iconv-Unterstützung" -msgid "PUT on a collection is only allowed for text/calendar content against a calendar collection" +msgid "PHP not using Apache Filter mode" +msgstr "PHP benutzt nicht den Apache Filter-Modus" + +msgid "" +"PUT on a collection is only allowed for text/calendar content against a " +"calendar collection" +msgstr "" +"PUT-Anfrage an eine Collection ist nur mit text/calendar-Inhalt an eine " +"Kalender-Collection erlaubt" + +msgid "" +"PUT on a collection is only allowed for text/vcard content against an " +"addressbook collection" msgstr "" -"PUT-Anfrage an eine Collection ist nur mit text/calendar-Inhalt an eine Kalender-Collection erlaubt" msgid "Passed" msgstr "Erfolgreich" @@ -807,7 +861,8 @@ msgstr "Bitte bestätigen Sie die Löschung des Prinzipalen" msgid "Please note the time and advise the administrator of your system." -msgstr "Notieren Sie bitte die Zeit und benachrichtigen Sie den Systemadministrator." +msgstr "" +"Notieren Sie bitte die Zeit und benachrichtigen Sie den Systemadministrator." msgid "Principal" msgstr "Prinzipal" @@ -833,6 +888,12 @@ msgid "Privileges granted to All Users" msgstr "Berechtigungen für alle Benutzer gesetzt" +msgid "Privileges to allow delivery of scheduling messages" +msgstr "Rechte um die Zustellung von Scheduling-Nachrichten zu erlauben" + +msgid "Privileges to delegate scheduling decisions" +msgstr "Rechte um Scheduling-Anfragen zu delegieren" + msgid "Property is read-only" msgstr "Eigenschaft ist schreibgeschützt" @@ -867,7 +928,8 @@ msgid "Read the content of a resource or collection" msgstr "Den Inhalt einer Ressource oder Sammlung lesen" -msgid "Read the details of the current user's access control to this resource." +msgid "" +"Read the details of the current user's access control to this resource." msgstr "Lesen der Details der Zugriffsberechtigungen des aktuellen Benutzers" msgid "Read the free/busy information for a calendar collection" @@ -876,12 +938,18 @@ msgid "Read/Write" msgstr "Lesen/Schreiben" +msgid "References" +msgstr "Verlinkungen" + msgid "Remove" msgstr "Entfernen" msgid "Remove a lock" msgstr "Sperre entfernen" +msgid "Remove dangling external calendars" +msgstr "" + msgid "Report Bug" msgstr "Fehler melden" @@ -894,7 +962,8 @@ msgid "Request body is not valid XML data!" msgstr "Anfrage-Body enthält keine gültigen XML-Daten!" -#. Translators a thing which might be booked: a room, a carpark, a projector... +#. Translators a thing which might be booked: a room, a carpark, a +#. projector... msgid "Resource" msgstr "Ressource" @@ -922,9 +991,6 @@ msgid "Schedule Transparency" msgstr "Terminplantransparenz" -msgid "Scheduling invitation delivered successfully" -msgstr "Termineinladung erfolgreich übermittelt" - msgid "Scheduling: Deliver a Reply" msgstr "Terminverarbeitung: Antwort zustellen" @@ -952,11 +1018,19 @@ msgid "Send free/busy enquiries" msgstr "Verfügbarkeitsanfrage senden" -msgid "Send scheduling invitations as an organiser from the owner of this scheduling outbox." -msgstr "Einladungen als Organisator vom Besitzer dieser Terminausgangsbox verschicken." +msgid "" +"Send scheduling invitations as an organiser from the owner of this " +"scheduling outbox." +msgstr "" +"Einladungen als Organisator vom Besitzer dieser Terminausgangsbox " +"verschicken." -msgid "Send scheduling replies as an attendee from the owner of this scheduling outbox." -msgstr "Einladungsantworten als Teilnehmer vom Besitzer dieser Terminausgangsbox versenden." +msgid "" +"Send scheduling replies as an attendee from the owner of this scheduling " +"outbox." +msgstr "" +"Einladungsantworten als Teilnehmer vom Besitzer dieser Terminausgangsbox " +"versenden." msgid "Set free/busy privileges" msgstr "Verfügbarkeitsrechte setzen" @@ -967,13 +1041,10 @@ msgid "Set read+write privileges" msgstr "Schreib-/Leserechte setzen" -msgid "Set schedule-deliver privileges" -msgstr "Terminauslieferungsberechtigungen setzen" - -msgid "Set the path to store your ics e.g. 'home' will be referenced as /caldav.php/me/home/" +msgid "" +"Set the path to store your ics e.g. 'calendar' will be referenced as " +"/caldav.php/username/calendar/" msgstr "" -"Pfad in dem .ics-Dateien gespeichert werden sollen; \"home\" wird z.B. als \"/caldav.php/me/home/\" " -"referenziert" msgid "Setup" msgstr "Konfiguration" @@ -999,8 +1070,11 @@ msgid "Source resource does not exist." msgstr "Quellressource existiert nicht." -msgid "Special collections may not contain a calendar or other special collection." -msgstr "Spezialsammlungen dürfen keine Kalender oder andere Spezialsammlungen enthalten." +msgid "" +"Special collections may not contain a calendar or other special collection." +msgstr "" +"Spezialsammlungen dürfen keine Kalender oder andere Spezialsammlungen " +"enthalten." msgid "Specific Privileges" msgstr "Sonderrechte" @@ -1018,8 +1092,8 @@ msgid "Suhosin \"server.strip\" disabled" msgstr "Suhosin: \"server.strip\" deaktiviert" -msgid "Sync LDAP Groups with RSCDS" -msgstr "Synchronisiere LDAP-Gruppen mit DAViCal" +msgid "Sync LDAP Groups with DAViCal" +msgstr "LDAP-Gruppen mit DAViCal synchronisieren" msgid "Sync LDAP with DAViCal" msgstr "Synchronisiere LDAP mit DAViCal" @@ -1042,8 +1116,11 @@ msgid "The BIND method is not allowed at that location." msgstr "Die BIND-Methode ist an dieser Stelle nicht erlaubt." -msgid "The CalDAV:schedule-calendar-transp property may only be set on calendars." -msgstr "Das Attribut \"CalDAV:schedule-calendar-transp\" darf nur bei Kalendern gesetzt werden." +msgid "" +"The CalDAV:schedule-calendar-transp property may only be set on calendars." +msgstr "" +"Das Attribut \"CalDAV:schedule-calendar-transp\" darf nur bei Kalendern " +"gesetzt werden." msgid "The DAViCal Home Page" msgstr "Die DAViCal-Startseite" @@ -1051,11 +1128,12 @@ msgid "The access ticket will be deleted." msgstr "Das Zugriffsticket wird gelöscht." -msgid "The addressbook-query report must be run against an addressbook collection" +msgid "" +"The addressbook-query report must be run against an addressbook collection" msgstr "addressbook-query darf nur bei einem Adressbuch ausgeführt werden" msgid "The application failed to understand that request." -msgstr "" +msgstr "Die Anwendungen konnte die Anfrage nicht verarbeiten." msgid "The application program does not understand that request." msgstr "Das Anwendungsprogramm versteht diese Anfrage nicht." @@ -1067,13 +1145,18 @@ msgstr "Der Kalenderpfad enthält ungültige Zeichen." msgid "" -"The calendar-free-busy-set is superseded by the schedule-transp property of a calendar collection." +"The calendar-free-busy-set is superseded by the schedule-transp property of " +"a calendar collection." msgstr "" -"Das Attribut \"calendar-free-busy-set\" ist vom Attribut \"schedule-transp\" einer Kalendersammlung " -"ersetzt worden." +"Das Attribut \"calendar-free-busy-set\" ist vom Attribut \"schedule-transp\"" +" einer Kalendersammlung ersetzt worden." -msgid "The calendar-query report must be run against a calendar or a scheduling collection" -msgstr "calendar-query darf nur bei einem Kalender oder einer Terminsammlung ausgeführt werden" +msgid "" +"The calendar-query report must be run against a calendar or a scheduling " +"collection" +msgstr "" +"calendar-query darf nur bei einem Kalender oder einer Terminsammlung " +"ausgeführt werden" msgid "The collection name may not be blank." msgstr "Der Name für die Sammlung darf nicht leer sein." @@ -1081,14 +1164,26 @@ msgid "The destination collection does not exist" msgstr "Die angeforderte Sammlung existiert nicht" -msgid "The displayname may only be set on collections, principals or bindings." -msgstr "Der Anzeigenname darf nur für Sammlungen, Prinzipale oder Verknüpfungen gesetzt werden." +msgid "" +"The displayname may only be set on collections, principals or bindings." +msgstr "" +"Der Anzeigenname darf nur für Sammlungen, Prinzipale oder Verknüpfungen " +"gesetzt werden." msgid "The email address really should not be blank." msgstr "Das Feld für die E-Mail-Adresse sollte auf keinen Fall leer bleiben." -msgid "The file is not UTF-8 encoded, please check the error for more details." -msgstr "Die Datei ist nicht in UTF-8-kodiert, bitte Fehler überprüfen für mehr Details." +#, php-format +msgid "The file \"%s\" is not UTF-8 encoded, please check error for more details" +msgstr "" +"Die Datei \"%s\" ist nicht UTF-8-kodiert; weitere Details stehen in der " +"Fehlermeldung." + +msgid "" +"The file is not UTF-8 encoded, please check the error for more details." +msgstr "" +"Die Datei ist nicht in UTF-8-kodiert, bitte Fehler überprüfen für mehr " +"Details." msgid "The full name for this person, group or other type of principal." msgstr "Der vollständige Name dieser Person, Gruppe oder anderer Prinzipale." @@ -1105,6 +1200,10 @@ msgid "The preferred language for this person." msgstr "Die bevorzugte Sprache dieses Benutzers." +#, php-format +msgid "The principal \"%s\" does not exist" +msgstr "Der Prinzipale \"%s\" existiert nicht." + msgid "The style of dates used for this person." msgstr "Das Datumsformat, das von diesem Benutzer verwendet wird." @@ -1127,10 +1226,12 @@ msgstr "Beim Schreiben in die Datenbank ist ein Fehler aufgetreten." msgid "" -"This operation does the following:
    • check valid groups in LDAP directory
    • check groups " -"in DAViCal
    then
    • if a group is present in DAViCal but not in LDAP set as inactive in " -"DAViCal
    • if a group is present in LDAP but not in DAViCal create the group in DAViCal
    • " -"
    • if a group in present in LDAP and DAViCal then update information in DAViCal
    " +"This operation does the following:
    • check valid groups in LDAP " +"directory
    • check groups in DAViCal
    then
    • if a group" +" is present in DAViCal but not in LDAP set as inactive in DAViCal
    • " +"
    • if a group is present in LDAP but not in DAViCal create the group in " +"DAViCal
    • if a group in present in LDAP and DAViCal then update " +"information in DAViCal
    " msgstr "" "Diese Funktion erledigt die folgenden Aufgaben:\n" "
      \n" @@ -1138,18 +1239,18 @@ "
    • überprüfen der Gruppen in DAViCal
    • \n" "
    danach\n" "
      \n" -"
    • falls eine Gruppe in DAViCal vorhanden ist, nicht aber im LDAP, diese in DAViCal als inaktiv " -"markieren
    • \n" +"
    • falls eine Gruppe in DAViCal vorhanden ist, nicht aber im LDAP, diese in DAViCal als inaktiv markieren
    • \n" "
    • falls eine Gruppe im LDAP vorhanden ist, nicht aber in DAViCal, diese in DAViCal anlegen
    • \n" -"
    • falls eine Gruppe im LDAP und DAViCal vorhanden ist, die Informationen in DAViCal aktualisieren\n" +"
    • falls eine Gruppe im LDAP und DAViCal vorhanden ist, die Informationen in DAViCal aktualisieren
    • \n" "
    " msgid "" -"This operation does the following:
    • check valid users in LDAP directory
    • check users in " -"DAViCal
    then
    • if a user is present in DAViCal but not in LDAP set him as inactive in " -"DAViCal
    • if a user is present in LDAP but not in DAViCal create the user in DAViCal
    • " -"
    • if a user in present in LDAP and DAViCal then update information in DAViCal
    " +"This operation does the following:
    • check valid users in LDAP " +"directory
    • check users in DAViCal
    then
    • if a user " +"is present in DAViCal but not in LDAP set him as inactive in DAViCal
    • " +"
    • if a user is present in LDAP but not in DAViCal create the user in " +"DAViCal
    • if a user in present in LDAP and DAViCal then update " +"information in DAViCal
    " msgstr "" "Diese Funktion erledigt die folgenden Aufgaben:\n" "
      \n" @@ -1157,20 +1258,26 @@ "
    • überprüfen der Benutzer in DAViCal
    • \n" "
    danach\n" "
      \n" -"
    • falls ein Benutzer in DAViCal vorhanden ist, nicht aber im LDAP, diesen in DAViCal als inaktiv " -"markieren
    • \n" +"
    • falls ein Benutzer in DAViCal vorhanden ist, nicht aber im LDAP, diesen in DAViCal als inaktiv markieren
    • \n" "
    • falls ein Benutzer im LDAP vorhanden ist, nicht aber in DAViCal, diesen in DAViCal anlegen
    • \n" -"
    • falls ein Benutzer im LDAP und DAViCal vorhanden ist, die Informationen in DAViCal " -"aktualisieren
    • \n" +"
    • falls ein Benutzer im LDAP und DAViCal vorhanden ist, die Informationen in DAViCal aktualisieren
    • \n" "
    " msgid "" -"This page primarily checks the environment needed for DAViCal to work correctly. Suggestions or " -"patches to make it do more useful stuff will be gratefully received." +"This page primarily checks the environment needed for DAViCal to work " +"correctly. Suggestions or patches to make it do more useful stuff will be " +"gratefully received." msgstr "" -"Diese Seite überprüft in erster Linie die Umgebung, die für DAViCal für korrektes Fuktionieren " -"benötigt wird. Vorschläge oder Korrekturen, um diese Seite noch sinnvoller zu gestalten werden dankbar " -"angenommen." +"Diese Seite überprüft in erster Linie die Umgebung, die für DAViCal für " +"korrektes Fuktionieren benötigt wird. Vorschläge oder Korrekturen, um diese " +"Seite noch sinnvoller zu gestalten werden dankbar angenommen." + +msgid "" +"This process will import each file in a directory named \"username.ics\" and" +" create a user and calendar for each file to import." +msgstr "" +"Dieser Prozess wird jede Datei eines Verzeichnis in der Form " +"\"Benutzer.ics\" importieren und die entsprechenden Benutzer anlegen." msgid "This server only supports the text/calendar format for freebusy URLs" msgstr "Der Server unterstützt nur das text/calendar-Format für FreeBusy-URLs" @@ -1232,10 +1339,12 @@ msgid "Upgrade Database" msgstr "Datenbank aktualisieren" -msgid "Upload a .ics calendar in iCalendar format to initialise or replace this calendar." +msgid "" +"Upload a .ics calendar in iCalendar format to initialise or replace this " +"calendar." msgstr "" -"Laden Sie eine .ics-Kalenderdatei im iCalendar-Format hoch, um diesen Kalender zu initialisieren oder " -"zu ersetzen." +"Laden Sie eine .ics-Kalenderdatei im iCalendar-Format hoch, um diesen " +"Kalender zu initialisieren oder zu ersetzen." msgid "User Calendar Principals" msgstr "Prinzipal des Benutzerkalenders" @@ -1278,8 +1387,8 @@ msgstr "Erwartet: %s, erhalten: %s" msgid "" -"Warning: there are no active admin users! You should fix this before logging out. Consider using the " -"$c->do_not_sync_from_ldap configuration setting." +"Warning: there are no active admin users! You should fix this before logging" +" out. Consider using the $c->do_not_sync_from_ldap configuration setting." msgstr "" "Warnung: Es sind keine aktiven Admin-Benutzer. Sie sollten dies vor dem Abmelden beheben. \n" "\n" @@ -1331,11 +1440,8 @@ msgstr "Sie müssen angemeldet sein um dieses System zu nutzen." msgid "Your configuration produced PHP errors which should be corrected" -msgstr "Ihre Konfiguration hat PHP-Fehler verursacht. Dies sollte korrigiert werden." - -#, php-format -msgid "all events of user %s were deleted and replaced by those from file %s" -msgstr "Alle Termine des Benutzers %s wurden gelöscht und durch Termine aus der Datei %s ersetzt" +msgstr "" +"Ihre Konfiguration hat PHP-Fehler verursacht. Dies sollte korrigiert werden." msgid "calendar-timezone property is only valid for a calendar." msgstr "Die Eigenschaft \"calendar-timezone\" ist nur für einen Kalender gültig." @@ -1344,32 +1450,49 @@ msgid "directory %s is not readable" msgstr "Verzeichnis %s kann nicht gelesen werden" -msgid "drivers_imap_pam : imap_url parameter not configured in /etc/davical/*-conf.php" -msgstr "drivers_imap_pam: imap_url-Parameter wurde nicht in /etc/davical/*-conf.php konfiguriert" +msgid "" +"drivers_imap_pam : imap_url parameter not configured in " +"/etc/davical/*-conf.php" +msgstr "" +"drivers_imap_pam: imap_url-Parameter wurde nicht in /etc/davical/*-conf.php " +"konfiguriert" msgid "drivers_ldap : Could not start TLS: ldap_start_tls() failed" -msgstr "drivers_ldap: TLS konnte nicht gestartet werden: ldap_start_tls() ist fehlgeschlagen" +msgstr "" +"drivers_ldap: TLS konnte nicht gestartet werden: ldap_start_tls() ist " +"fehlgeschlagen" #, php-format -msgid "drivers_ldap : Failed to bind to host %1$s on port %2$s with bindDN of %3$s" -msgstr "drivers_ldap: Verbindung (bind) zu Host %1$s auf Port %2$s mit bindDN %3$s ist fehlgeschlagen" +msgid "" +"drivers_ldap : Failed to bind to host %1$s on port %2$s with bindDN of %3$s" +msgstr "" +"drivers_ldap: Verbindung (bind) zu Host %1$s auf Port %2$s mit bindDN %3$s " +"ist fehlgeschlagen" -msgid "drivers_ldap : Failed to set LDAP to use protocol version 3, TLS not supported" -msgstr "drivers_ldap: LDAP Protokoll-Version 3 konnte nicht gesetzt werden, TLS wird nicht unterstützt" +msgid "" +"drivers_ldap : Failed to set LDAP to use protocol version 3, TLS not " +"supported" +msgstr "" +"drivers_ldap: LDAP Protokoll-Version 3 konnte nicht gesetzt werden, TLS wird" +" nicht unterstützt" msgid "" -"drivers_ldap : Unable to bind to LDAP - check your configuration for bindDN and passDN, and that your " -"LDAP server is reachable" +"drivers_ldap : Unable to bind to LDAP - check your configuration for bindDN " +"and passDN, and that your LDAP server is reachable" msgstr "" -"drivers_ldap: Verbindung (bind) zu LDAP fehlgeschlagen - bitte überprüfen, ob bindDN und passDN " -"richtig konfiguriert sind, und ob der LDAP Server erreichbar ist" +"drivers_ldap: Verbindung (bind) zu LDAP fehlgeschlagen - bitte überprüfen, " +"ob bindDN und passDN richtig konfiguriert sind, und ob der LDAP Server " +"erreichbar ist" #, php-format msgid "drivers_ldap : Unable to connect to LDAP with port %s on host %s" msgstr "drivers_ldap: LDAP-Verbindung zu Port %s auf Host %s fehlgeschlagen" -msgid "drivers_ldap : function ldap_connect not defined, check your php_ldap module" -msgstr "drivers_ldap: Funktion ldap_connect nicht definiert, bitte php_ldap Modul überprüfen" +msgid "" +"drivers_ldap : function ldap_connect not defined, check your php_ldap module" +msgstr "" +"drivers_ldap: Funktion ldap_connect nicht definiert, bitte php_ldap Modul " +"überprüfen" #, php-format msgid "drivers_pwauth_pam : Unable to find %s file" @@ -1379,7 +1502,8 @@ msgid "drivers_squid_pam : Unable to find %s file" msgstr "drivers_squid_pam: Kann Datei %s nicht finden" -#. Translators: this is a colloquial phrase in english (the name of a flower) and is an option allowing people to log in automatically in future +#. Translators: this is a colloquial phrase in english (the name of a flower) +#. and is an option allowing people to log in automatically in future msgid "forget me not" msgstr "angemeldet bleiben" @@ -1389,12 +1513,13 @@ msgid "path to store your ics" msgstr "Speicherort für .ics-Datei" -#, php-format -msgid "the file %s is not UTF-8 encoded, please check error for more details" -msgstr "Die Datei %s ist nicht UTF-8-kodiert; weitere Details stehen in der Fehlermeldung." - msgid "unauthenticated" msgstr "Nicht angemeldet" -msgid "you should log on with the username and password that have been issued to you." -msgstr "Melden Sie sich mit dem Ihnen zugeteilten Benutzernamen und Passwort an." +msgid "" +"you should log on with the username and password that have been issued to " +"you." +msgstr "" +"Melden Sie sich mit dem Ihnen zugeteilten Benutzernamen und Passwort an." + + diff -Nru davical-0.9.9.7/po/es_AR.po davical-1.0.2/po/es_AR.po --- davical-0.9.9.7/po/es_AR.po 2011-09-26 22:30:09.000000000 +0000 +++ davical-1.0.2/po/es_AR.po 2012-01-04 23:04:36.000000000 +0000 @@ -1,27 +1,30 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: # Andrew McMillan , 2011. msgid "" msgstr "" "Project-Id-Version: DAViCal\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-27 11:30+1300\n" -"PO-Revision-Date: 2011-03-22 15:19+0000\n" -"Last-Translator: fmms \n" +"Report-Msgid-Bugs-To: http://repo.or.cz/w/davical.git/tree/HEAD:/issues\n" +"POT-Creation-Date: 2011-11-21 10:59+1300\n" +"PO-Revision-Date: 2011-11-20 22:15+0000\n" +"Last-Translator: Andrew McMillan \n" "Language-Team: LANGUAGE \n" -"Language: es_AR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#. Translators: this is the formatting of a date with time. See http://php.net/manual/en/function.strftime.php +#. Translators: this is the formatting of a date with time. See +#. http://php.net/manual/en/function.strftime.php msgid "%F %T" msgstr "" -#. Translators: his is the formatting of just the time. See http://php.net/manual/en/function.strftime.php +#. Translators: his is the formatting of just the time. See +#. http://php.net/manual/en/function.strftime.php msgid "%T" msgstr "" @@ -71,32 +74,32 @@ msgid "- updating user records : %s" msgstr "" -msgid "WARNING: all events in this path will be deleted before inserting allof the ics file" +msgid "" +"WARNING: all events in this path will be deleted before inserting allof " +"the ics file" msgstr "" #, php-format msgid "" "

    Help

    \n" -"

    For initial help you should visit the DAViCal " -"Home Page or take\n" +"

    For initial help you should visit the DAViCal Home Page or take\n" "a look at the DAViCal Wiki.

    \n" -"

    If you can't find the answers there, visit us on IRC in\n" +"

    If you can't find the answers there, visit us on IRC in\n" "the #davical channel on irc.oftc.net,\n" -"or send a question to the DAViCal Users mailing list.

    \n" -"

    The mailing list\n" +"or send a question to the DAViCal Users mailing list.

    \n" +"

    The mailing list\n" "archives can be helpful too.

    " msgstr "" #, php-format msgid "" -"

    Log On Please

    For access to the %s you should log on withthe username and password that " -"have been issued to you.

    If you would like to request access, please e-mail %s.

    " -msgstr "" -"

    Por favor, iniciar sesión

    Para acceder al %s debe conectarse con el nombre de usuario y " -"contraseña que le han sido asignado.

    Si desea solicitar el acceso, por favor, e-mail %s.

    " +"

    Log On Please

    For access to the %s you should log on withthe " +"username and password that have been issued to you.

    If you would like " +"to request access, please e-mail %s.

    " +msgstr "" +"

    Por favor, iniciar sesión

    Para acceder al %s debe conectarse con " +"el nombre de usuario y contraseña que le han sido asignado.

    Si desea " +"solicitar el acceso, por favor, e-mail %s.

    " msgid "A DAViCal principal collection may only contain collections" msgstr "" @@ -141,7 +144,12 @@ msgid "All collection data will be unrecoverably deleted." msgstr "" -msgid "All of the principal's calendars and events will be unrecoverably deleted." +#, php-format +msgid "All events of user \"%s\" were deleted and replaced by those from file %s" +msgstr "" + +msgid "" +"All of the principal's calendars and events will be unrecoverably deleted." msgstr "" msgid "All privileges" @@ -150,7 +158,8 @@ msgid "All requested changes were made." msgstr "" -msgid "Allow free/busy enquiries targeted at the owner of this scheduling inbox" +msgid "" +"Allow free/busy enquiries targeted at the owner of this scheduling inbox" msgstr "" msgid "An \"Administrator\" user has full rights to the whole DAViCal System" @@ -186,6 +195,9 @@ msgid "Bindings to this Principal's Collections" msgstr "" +msgid "Body contains no XML data!" +msgstr "" + msgid "Bound As" msgstr "" @@ -232,7 +244,9 @@ msgid "Collection deleted" msgstr "" -msgid "Collections may not be both CalDAV calendars and CardDAV addressbooks at the same time" +msgid "" +"Collections may not be both CalDAV calendars and CardDAV addressbooks at the" +" same time" msgstr "" msgid "Configuring Calendar Clients for DAViCal" @@ -304,7 +318,8 @@ msgid "DAV Path" msgstr "" -msgid "DAV::resourcetype may only be set to a new value, it may not be removed." +msgid "" +"DAV::resourcetype may only be set to a new value, it may not be removed." msgstr "" msgid "DAViCal CalDAV Server" @@ -403,7 +418,8 @@ msgid "Deleting Ticket:" msgstr "" -msgid "Deliver scheduling invitations from an organiser to this scheduling inbox" +msgid "" +"Deliver scheduling invitations from an organiser to this scheduling inbox" msgstr "" msgid "Deliver scheduling replies from an attendee to this scheduling inbox" @@ -446,7 +462,9 @@ msgstr "" msgid "ERROR: There was a database error writing the roles information!" -msgstr "ERROR: Hubo un error en la base de datos al grabar la información de los roles!" +msgstr "" +"ERROR: Hubo un error en la base de datos al grabar la información de los " +"roles!" msgid "Edit" msgstr "" @@ -457,7 +475,9 @@ msgid "Email Address" msgstr "" -msgid "Enter a username, if you know it, and click here, to be e-mailed a temporary password." +msgid "" +"Enter a username, if you know it, and click here, to be e-mailed a temporary" +" password." msgstr "" msgid "Enter your username and password then click here to log in." @@ -495,6 +515,12 @@ msgid "Expires" msgstr "" +msgid "External Calendars" +msgstr "" + +msgid "External Url" +msgstr "" + msgid "Fail" msgstr "" @@ -644,6 +670,9 @@ msgid "Last used" msgstr "Utilizado por última vez" +msgid "List External Calendars" +msgstr "" + msgid "List Groups" msgstr "" @@ -674,7 +703,9 @@ msgid "Member deleted from this Group Principal" msgstr "" -msgid "Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly recommended." +msgid "" +"Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly " +"recommended." msgstr "" msgid "Name" @@ -693,18 +724,12 @@ msgid "No" msgstr "" -msgid "No authority to deliver invitations to user." -msgstr "" - msgid "No calendar content" msgstr "" msgid "No collection found at that location." msgstr "" -msgid "No scheduling support for user" -msgstr "" - msgid "No summary" msgstr "" @@ -748,16 +773,23 @@ msgid "PHP PDO module available" msgstr "" -msgid "PHP PostgreSQL available" -msgstr "" - msgid "PHP calendar extension available" msgstr "" msgid "PHP iconv support" msgstr "" -msgid "PUT on a collection is only allowed for text/calendar content against a calendar collection" +msgid "PHP not using Apache Filter mode" +msgstr "" + +msgid "" +"PUT on a collection is only allowed for text/calendar content against a " +"calendar collection" +msgstr "" + +msgid "" +"PUT on a collection is only allowed for text/vcard content against an " +"addressbook collection" msgstr "" msgid "Passed" @@ -785,7 +817,9 @@ msgstr "" msgid "Please note the time and advise the administrator of your system." -msgstr "Por favor, tome nota de la fecha y hora y contacte a su administrador de sistemas." +msgstr "" +"Por favor, tome nota de la fecha y hora y contacte a su administrador de " +"sistemas." msgid "Principal" msgstr "" @@ -811,6 +845,12 @@ msgid "Privileges granted to All Users" msgstr "" +msgid "Privileges to allow delivery of scheduling messages" +msgstr "" + +msgid "Privileges to delegate scheduling decisions" +msgstr "" + msgid "Property is read-only" msgstr "" @@ -845,7 +885,8 @@ msgid "Read the content of a resource or collection" msgstr "" -msgid "Read the details of the current user's access control to this resource." +msgid "" +"Read the details of the current user's access control to this resource." msgstr "" msgid "Read the free/busy information for a calendar collection" @@ -854,12 +895,18 @@ msgid "Read/Write" msgstr "" +msgid "References" +msgstr "" + msgid "Remove" msgstr "" msgid "Remove a lock" msgstr "" +msgid "Remove dangling external calendars" +msgstr "" + msgid "Report Bug" msgstr "Reportar Error" @@ -872,7 +919,8 @@ msgid "Request body is not valid XML data!" msgstr "" -#. Translators a thing which might be booked: a room, a carpark, a projector... +#. Translators a thing which might be booked: a room, a carpark, a +#. projector... msgid "Resource" msgstr "Recurso" @@ -900,9 +948,6 @@ msgid "Schedule Transparency" msgstr "" -msgid "Scheduling invitation delivered successfully" -msgstr "" - msgid "Scheduling: Deliver a Reply" msgstr "" @@ -930,10 +975,14 @@ msgid "Send free/busy enquiries" msgstr "" -msgid "Send scheduling invitations as an organiser from the owner of this scheduling outbox." +msgid "" +"Send scheduling invitations as an organiser from the owner of this " +"scheduling outbox." msgstr "" -msgid "Send scheduling replies as an attendee from the owner of this scheduling outbox." +msgid "" +"Send scheduling replies as an attendee from the owner of this scheduling " +"outbox." msgstr "" msgid "Set free/busy privileges" @@ -945,10 +994,9 @@ msgid "Set read+write privileges" msgstr "" -msgid "Set schedule-deliver privileges" -msgstr "" - -msgid "Set the path to store your ics e.g. 'home' will be referenced as /caldav.php/me/home/" +msgid "" +"Set the path to store your ics e.g. 'calendar' will be referenced as " +"/caldav.php/username/calendar/" msgstr "" msgid "Setup" @@ -975,7 +1023,8 @@ msgid "Source resource does not exist." msgstr "" -msgid "Special collections may not contain a calendar or other special collection." +msgid "" +"Special collections may not contain a calendar or other special collection." msgstr "" msgid "Specific Privileges" @@ -994,7 +1043,7 @@ msgid "Suhosin \"server.strip\" disabled" msgstr "" -msgid "Sync LDAP Groups with RSCDS" +msgid "Sync LDAP Groups with DAViCal" msgstr "" msgid "Sync LDAP with DAViCal" @@ -1018,7 +1067,8 @@ msgid "The BIND method is not allowed at that location." msgstr "" -msgid "The CalDAV:schedule-calendar-transp property may only be set on calendars." +msgid "" +"The CalDAV:schedule-calendar-transp property may only be set on calendars." msgstr "" msgid "The DAViCal Home Page" @@ -1027,7 +1077,8 @@ msgid "The access ticket will be deleted." msgstr "" -msgid "The addressbook-query report must be run against an addressbook collection" +msgid "" +"The addressbook-query report must be run against an addressbook collection" msgstr "" msgid "The application failed to understand that request." @@ -1043,10 +1094,13 @@ msgstr "" msgid "" -"The calendar-free-busy-set is superseded by the schedule-transp property of a calendar collection." +"The calendar-free-busy-set is superseded by the schedule-transp property of " +"a calendar collection." msgstr "" -msgid "The calendar-query report must be run against a calendar or a scheduling collection" +msgid "" +"The calendar-query report must be run against a calendar or a scheduling " +"collection" msgstr "" msgid "The collection name may not be blank." @@ -1055,13 +1109,19 @@ msgid "The destination collection does not exist" msgstr "" -msgid "The displayname may only be set on collections, principals or bindings." +msgid "" +"The displayname may only be set on collections, principals or bindings." msgstr "" msgid "The email address really should not be blank." msgstr "" -msgid "The file is not UTF-8 encoded, please check the error for more details." +#, php-format +msgid "The file \"%s\" is not UTF-8 encoded, please check error for more details" +msgstr "" + +msgid "" +"The file is not UTF-8 encoded, please check the error for more details." msgstr "" msgid "The full name for this person, group or other type of principal." @@ -1079,6 +1139,10 @@ msgid "The preferred language for this person." msgstr "El idioma preferido por ésta persona." +#, php-format +msgid "The principal \"%s\" does not exist" +msgstr "" + msgid "The style of dates used for this person." msgstr "El estilo de fechas utilizado por ésta persona." @@ -1101,22 +1165,32 @@ msgstr "Hubo un error al grabar en la base de datos." msgid "" -"This operation does the following:
    • check valid groups in LDAP directory
    • check groups " -"in DAViCal
    then
    • if a group is present in DAViCal but not in LDAP set as inactive in " -"DAViCal
    • if a group is present in LDAP but not in DAViCal create the group in DAViCal
    • " -"
    • if a group in present in LDAP and DAViCal then update information in DAViCal
    " +"This operation does the following:
    • check valid groups in LDAP " +"directory
    • check groups in DAViCal
    then
    • if a group" +" is present in DAViCal but not in LDAP set as inactive in DAViCal
    • " +"
    • if a group is present in LDAP but not in DAViCal create the group in " +"DAViCal
    • if a group in present in LDAP and DAViCal then update " +"information in DAViCal
    " +msgstr "" + +msgid "" +"This operation does the following:
    • check valid users in LDAP " +"directory
    • check users in DAViCal
    then
    • if a user " +"is present in DAViCal but not in LDAP set him as inactive in DAViCal
    • " +"
    • if a user is present in LDAP but not in DAViCal create the user in " +"DAViCal
    • if a user in present in LDAP and DAViCal then update " +"information in DAViCal
    " msgstr "" msgid "" -"This operation does the following:
    • check valid users in LDAP directory
    • check users in " -"DAViCal
    then
    • if a user is present in DAViCal but not in LDAP set him as inactive in " -"DAViCal
    • if a user is present in LDAP but not in DAViCal create the user in DAViCal
    • " -"
    • if a user in present in LDAP and DAViCal then update information in DAViCal
    " +"This page primarily checks the environment needed for DAViCal to work " +"correctly. Suggestions or patches to make it do more useful stuff will be " +"gratefully received." msgstr "" msgid "" -"This page primarily checks the environment needed for DAViCal to work correctly. Suggestions or " -"patches to make it do more useful stuff will be gratefully received." +"This process will import each file in a directory named \"username.ics\" and" +" create a user and calendar for each file to import." msgstr "" msgid "This server only supports the text/calendar format for freebusy URLs" @@ -1179,7 +1253,9 @@ msgid "Upgrade Database" msgstr "" -msgid "Upload a .ics calendar in iCalendar format to initialise or replace this calendar." +msgid "" +"Upload a .ics calendar in iCalendar format to initialise or replace this " +"calendar." msgstr "" msgid "User Calendar Principals" @@ -1223,8 +1299,8 @@ msgstr "" msgid "" -"Warning: there are no active admin users! You should fix this before logging out. Consider using the " -"$c->do_not_sync_from_ldap configuration setting." +"Warning: there are no active admin users! You should fix this before logging" +" out. Consider using the $c->do_not_sync_from_ldap configuration setting." msgstr "" msgid "When the user's e-mail account was validated." @@ -1275,10 +1351,6 @@ msgid "Your configuration produced PHP errors which should be corrected" msgstr "" -#, php-format -msgid "all events of user %s were deleted and replaced by those from file %s" -msgstr "" - msgid "calendar-timezone property is only valid for a calendar." msgstr "" @@ -1286,29 +1358,35 @@ msgid "directory %s is not readable" msgstr "" -msgid "drivers_imap_pam : imap_url parameter not configured in /etc/davical/*-conf.php" +msgid "" +"drivers_imap_pam : imap_url parameter not configured in " +"/etc/davical/*-conf.php" msgstr "" msgid "drivers_ldap : Could not start TLS: ldap_start_tls() failed" msgstr "" #, php-format -msgid "drivers_ldap : Failed to bind to host %1$s on port %2$s with bindDN of %3$s" +msgid "" +"drivers_ldap : Failed to bind to host %1$s on port %2$s with bindDN of %3$s" msgstr "" -msgid "drivers_ldap : Failed to set LDAP to use protocol version 3, TLS not supported" +msgid "" +"drivers_ldap : Failed to set LDAP to use protocol version 3, TLS not " +"supported" msgstr "" msgid "" -"drivers_ldap : Unable to bind to LDAP - check your configuration for bindDN and passDN, and that your " -"LDAP server is reachable" +"drivers_ldap : Unable to bind to LDAP - check your configuration for bindDN " +"and passDN, and that your LDAP server is reachable" msgstr "" #, php-format msgid "drivers_ldap : Unable to connect to LDAP with port %s on host %s" msgstr "" -msgid "drivers_ldap : function ldap_connect not defined, check your php_ldap module" +msgid "" +"drivers_ldap : function ldap_connect not defined, check your php_ldap module" msgstr "" #, php-format @@ -1319,7 +1397,8 @@ msgid "drivers_squid_pam : Unable to find %s file" msgstr "" -#. Translators: this is a colloquial phrase in english (the name of a flower) and is an option allowing people to log in automatically in future +#. Translators: this is a colloquial phrase in english (the name of a flower) +#. and is an option allowing people to log in automatically in future msgid "forget me not" msgstr "" @@ -1329,12 +1408,14 @@ msgid "path to store your ics" msgstr "" -#, php-format -msgid "the file %s is not UTF-8 encoded, please check error for more details" +msgid "unauthenticated" msgstr "" -msgid "unauthenticated" +msgid "" +"you should log on with the username and password that have been issued to " +"you." msgstr "" +"Para conectarse debe utilizar el nombre de usuario y contraseña que le ha " +"sido asignado." + -msgid "you should log on with the username and password that have been issued to you." -msgstr "Para conectarse debe utilizar el nombre de usuario y contraseña que le ha sido asignado." diff -Nru davical-0.9.9.7/po/es_ES.po davical-1.0.2/po/es_ES.po --- davical-0.9.9.7/po/es_ES.po 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/po/es_ES.po 2012-01-04 23:04:39.000000000 +0000 @@ -0,0 +1,1520 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Eugene Ciurana , 2011. +# Jorge López , 2011. +# pr3d4t0r , 2011. +msgid "" +msgstr "" +"Project-Id-Version: DAViCal\n" +"Report-Msgid-Bugs-To: http://repo.or.cz/w/davical.git/tree/HEAD:/issues\n" +"POT-Creation-Date: 2011-11-21 10:59+1300\n" +"PO-Revision-Date: 2011-11-20 22:15+0000\n" +"Last-Translator: Andrew McMillan \n" +"Language-Team: Spanish (Spain) (http://www.transifex.net/projects/p/davical/team/es_ES/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_ES\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#. Translators: this is the formatting of a date with time. See +#. http://php.net/manual/en/function.strftime.php +msgid "%F %T" +msgstr "%F %T" + +#. Translators: his is the formatting of just the time. See +#. http://php.net/manual/en/function.strftime.php +msgid "%T" +msgstr "%T" + +msgid "*** Default Locale ***" +msgstr "*** Configuración regional estándar ***" + +msgid "*** Unknown ***" +msgstr "*** Desconocido ***" + +#, php-format +msgid "- adding %s to group : %s" +msgstr "- agregando %s al grupo %s" + +#, php-format +msgid "- adding users %s to group : %s" +msgstr "- agregando usuarios %s al grupo %s" + +#, php-format +msgid "- creating groups : %s" +msgstr "- creando los grupos: %s" + +#, php-format +msgid "- creating record for users : %s" +msgstr "- creando el registro para usuarios: %s" + +#, php-format +msgid "- deactivate groups : %s" +msgstr "- grupos %s desactivados" + +#, php-format +msgid "- deactivating users : %s" +msgstr "- desactivando a los usuarios: %s" + +#, php-format +msgid "- nothing done on : %s" +msgstr "- ningún cambio para: %s" + +#, php-format +msgid "- removing %s from group : %s" +msgstr "- eliminando a %s del grupo: %s" + +#, php-format +msgid "- updating groups : %s" +msgstr "- actualizando los grupos: %s" + +#, php-format +msgid "- updating user records : %s" +msgstr "- actualizando los registros de usuario: %s" + +msgid "" +"WARNING: all events in this path will be deleted before inserting allof " +"the ics file" +msgstr "" +"ADVERTENCIA: todos los eventos en este contenedor serán eliminados antes" +" de insertar el archivo ics" + +#, php-format +msgid "" +"

    Help

    \n" +"

    For initial help you should visit the DAViCal Home Page or take\n" +"a look at the DAViCal Wiki.

    \n" +"

    If you can't find the answers there, visit us on IRC in\n" +"the #davical channel on irc.oftc.net,\n" +"or send a question to the DAViCal Users mailing list.

    \n" +"

    The mailing list\n" +"archives can be helpful too.

    " +msgstr "" +"

    Ayuda\n" +"

    Visita la Página Principal de DAViCal para ayuda inicial, o consultael Wiki de DAViCal.

    Si no encuentras la respuesta a tus dudas, visítanos en IRC enel canal #davical en irc.oftc.net,\n" +"o envía tus preguntas a la lista de correo de Usuarios de DAViCal.

    \n" +"

    El archivo de la lista de correotambien te será útil." + +#, php-format +msgid "" +"

    Log On Please

    For access to the %s you should log on withthe " +"username and password that have been issued to you.

    If you would like " +"to request access, please e-mail %s.

    " +msgstr "" +"

    Por favor, autentíquese

    Para acceder a %s debe identificarse con " +"su nombre de usuario y su clave de acceso.

    Escriba a %s si desea " +"solicitar acceso." + +msgid "A DAViCal principal collection may only contain collections" +msgstr "" +"Una colección principal de DAViCal solo puede contener otras colecciones" + +msgid "A collection already exists at that location." +msgstr "Ya existe una colección en esa ruta." + +msgid "A resource already exists at the destination." +msgstr "Ya existe un recurso en ese destino." + +msgid "AWL Library version " +msgstr "Versión de la biblioteca AWL" + +msgid "Access Tickets" +msgstr "Tickets de acceso" + +msgid "Access ticket deleted" +msgstr "Ticket de acceso eliminado" + +msgid "Action" +msgstr "Acción" + +msgid "Active" +msgstr "Activo" + +msgid "Adding new member to this Group Principal" +msgstr "Agregando un nuevo miembro a este grupo" + +#. Translators: in the sense of 'systems admin' +msgid "Admin" +msgstr "Admin" + +msgid "Administration" +msgstr "Administración" + +msgid "Administrator" +msgstr "Administrador" + +msgid "All" +msgstr "Todos" + +msgid "All collection data will be unrecoverably deleted." +msgstr "Todos los datos de esta colección serán eliminados permanentemente." + +#, php-format +msgid "All events of user \"%s\" were deleted and replaced by those from file %s" +msgstr "" +"Todos los eventos del usuario \"%s\" fueron eliminados y reemplazados por " +"los contenidos en el fichero %s" + +msgid "" +"All of the principal's calendars and events will be unrecoverably deleted." +msgstr "" +"Todos los calendarios y eventos de este 'principal' serán eliminados " +"permanentemente." + +msgid "All privileges" +msgstr "Todos los privilegios" + +msgid "All requested changes were made." +msgstr "Todos los cambios solicitados fueron aplicados." + +msgid "" +"Allow free/busy enquiries targeted at the owner of this scheduling inbox" +msgstr "" +"Permitir consultas libre/ocupado sobre el dueño de este buzón de " +"planificación" + +msgid "An \"Administrator\" user has full rights to the whole DAViCal System" +msgstr "Un usuario \"Administrador\" tiene todos los permisos en DAViCal." + +msgid "Anonymous users are not allowed to modify calendars" +msgstr "Los usuarios anónimos no tienen permiso para modificar calendarios" + +msgid "Anonymous users may only access public calendars" +msgstr "Los usuarios anónimos solo pueden ver calendarios públicos" + +msgid "Application DB User" +msgstr "Usuario de la base de datos" + +msgid "Apply Changes" +msgstr "Aplicar cambios" + +msgid "Apply DB Patches" +msgstr "Aplicar cambios a la base de datos" + +msgid "Attachment" +msgstr "Adjunto" + +msgid "Binding deleted" +msgstr "Enlace eliminado" + +msgid "Bindings to other collections" +msgstr "Enlaces a otras colecciones" + +msgid "Bindings to this Collection" +msgstr "Enlaces a esta colección" + +msgid "Bindings to this Principal's Collections" +msgstr "Enlaces a las colecciones de este 'principal'" + +msgid "Body contains no XML data!" +msgstr "¡El cuerpo no contiene datos XML!" + +msgid "Bound As" +msgstr "Enlazado como" + +msgid "Browse all users" +msgstr "Ver todos los usuarios" + +msgid "Busy" +msgstr "Ocupado" + +#, php-format +msgid "Calendar \"%s\" was loaded from file." +msgstr "El calendario \"%s\" fue cargado desde un fichero." + +msgid "Calendar Principals" +msgstr "'Principales' del calendario" + +msgid "Calendar Timezone" +msgstr "Zona horaria del calendario" + +msgid "Can only add tickets for existing collection paths which you own" +msgstr "" +"Solo puede agregar tickets en conexiones existentes que le pertenezcan" + +msgid "Categories" +msgstr "Categorías" + +msgid "Change Password" +msgstr "Cambiar la contraseña" + +msgid "Click to display user details" +msgstr "Haga click para ver los detalles del usuario" + +msgid "Click to edit principal details" +msgstr "Haga click para ver los detalles del 'principal'" + +msgid "Collection" +msgstr "Colección" + +msgid "Collection Grants" +msgstr "Permisos sobre la colección" + +msgid "Collection ID" +msgstr "ID de la colección" + +msgid "Collection deleted" +msgstr "Colección eliminada" + +msgid "" +"Collections may not be both CalDAV calendars and CardDAV addressbooks at the" +" same time" +msgstr "" +"Las colecciones no pueden ser calendarios CalDAV y agendas de teléfono " +"CardDAV al mismo tiempo" + +msgid "Configuring Calendar Clients for DAViCal" +msgstr "Configurando clientes de calendario para DAViCal" + +msgid "Configuring DAViCal" +msgstr "Configurando DAViCal" + +msgid "Confirm" +msgstr "Confirmar" + +msgid "Confirm Deletion of the Binding" +msgstr "Confirmar eliminación del enlace" + +msgid "Confirm Deletion of the Collection" +msgstr "Confirmar eliminación de la colección" + +msgid "Confirm Deletion of the Principal" +msgstr "Confirmar eliminación del 'principal'" + +msgid "Confirm Deletion of the Ticket" +msgstr "Confirmar eliminación del ticket" + +msgid "Confirm Password" +msgstr "Confirmar la contraseña" + +msgid "Confirm the new password." +msgstr "Confirmar la nueva contraseña" + +msgid "Could not retrieve" +msgstr "No se pudo obtener" + +msgid "Create" +msgstr "Crear" + +msgid "Create Collection" +msgstr "Crear una colección" + +msgid "Create Events/Collections" +msgstr "Crear eventos/colecciones" + +msgid "Create New Collection" +msgstr "Crear una colección nueva" + +msgid "Create New Principal" +msgstr "Crear un 'principal' nuevo" + +msgid "Create Principal" +msgstr "Crear un 'principal'" + +msgid "Create a new principal (i.e. a new user, resource or group)" +msgstr "Crear un principal nuevo (i.e. un usuario, recurso, o grupo)" + +msgid "Create a resource or collection" +msgstr "Crear un recurso o colección" + +msgid "Creating new Collection." +msgstr "Creando una colección nueva." + +msgid "Creating new Principal record." +msgstr "Creando un registro nuevo de 'principal'." + +msgid "Creating new ticket granting privileges to this Principal" +msgstr "Creando un ticket nuevo para dar privilegios a este 'principal'" + +msgid "Current DAViCal version " +msgstr "Versión actual de DAViCal" + +msgid "DAV Path" +msgstr "Ruta DAV" + +msgid "" +"DAV::resourcetype may only be set to a new value, it may not be removed." +msgstr "" +"DAV::resourcetype sólo puede tener un nuevo valor, no puede ser eliminado" + +msgid "DAViCal CalDAV Server" +msgstr "Servidor CalDAV DAViCal" + +msgid "DAViCal DB Schema version " +msgstr "Versión del esquema de la base de datos de DAViCal " + +msgid "DAViCal Homepage" +msgstr "Página web de DAViCal" + +msgid "DAViCal Wiki" +msgstr "Wiki de DAViCal" + +msgid "DAViCal only allows BIND requests for collections at present." +msgstr "DAViCal solo permite BINDs a collecciones por ahora." + +msgid "DKIM signature invalid " +msgstr "Firma DKIM inválida" + +msgid "DKIM signature missing" +msgstr "Falta la firma DKIM" + +msgid "DKIM signature validation failed(DNS ERROR)" +msgstr "La validación de la firma DKIM falló(ERROR de DNS)" + +msgid "DKIM signature validation failed(KEY Parse ERROR)" +msgstr "Validación de firma DKIM falló (ERROR al interpretar KEY)" + +msgid "DKIM signature validation failed(KEY Validation ERROR)" +msgstr "La validación de la firma DKIM falló(ERROR de validación de LLAVE)" + +msgid "DKIM signature validation failed(Signature verification ERROR)" +msgstr "La validación de la firma DKIM falló(ERROR de verificación de firma)" + +msgid "Database Error" +msgstr "Error en la base de datos" + +msgid "Database Host" +msgstr "Servidor de base de datos" + +msgid "Database Name" +msgstr "Nombre de la base de datos" + +msgid "Database Owner" +msgstr "Propietario de la base de datos" + +msgid "Database Password" +msgstr "Contraseña de la base de datos" + +msgid "Database Port" +msgstr "Puerto de la base de datos" + +msgid "Database Username" +msgstr "Nombre de usuario para la base de datos" + +msgid "Database error" +msgstr "Error en la base de datos" + +msgid "Date Format Style" +msgstr "Estilo del formato de fecha" + +msgid "Date Style" +msgstr "Formato de fecha" + +msgid "Default Privileges" +msgstr "Privilegios por defecto" + +msgid "Default relationships added." +msgstr "Relaciones por defecto añadidas" + +msgid "Delete" +msgstr "Eliminar" + +msgid "Delete Events/Collections" +msgstr "Eliminar eventos/colecciones" + +msgid "Delete Principal" +msgstr "Eliminar el 'principal'" + +msgid "Delete a resource or collection" +msgstr "Eliminar un recurso o colección" + +msgid "Deleted a grant from this Principal" +msgstr "Prilegio eliminado de este 'principal'" + +msgid "Deleting Binding:" +msgstr "Eliminando enlace:" + +msgid "Deleting Collection:" +msgstr "Eliminando colección:" + +msgid "Deleting Principal:" +msgstr "Eliminando 'principal':" + +msgid "Deleting Ticket:" +msgstr "Eliminando ticket:" + +msgid "" +"Deliver scheduling invitations from an organiser to this scheduling inbox" +msgstr "" +"Permitir al organizador de un evento enviar una invitación a este buzón de " +"planificación" + +msgid "Deliver scheduling replies from an attendee to this scheduling inbox" +msgstr "" +"Permitir a un asistente a un evento enviar una respuesta a este buzón de " +"planificación" + +msgid "Dependencies" +msgstr "Dependencias" + +msgid "Dependency" +msgstr "Dependencia" + +msgid "Description" +msgstr "Descripción" + +msgid "Destination collection does not exist" +msgstr "La colección de destino no existe" + +msgid "Directory on the server" +msgstr "Directorio en el servidor" + +msgid "Display Name" +msgstr "Nombre mostrado" + +msgid "Displayname" +msgstr "Nombre mostrado" + +msgid "Does the user have the right to perform this role?" +msgstr "¿El usuario tiene permiso para desempeñar este rol?" + +msgid "EMail" +msgstr "Email" + +msgid "EMail OK" +msgstr "Email correcto" + +msgid "ERROR: The full name may not be blank." +msgstr "ERROR: El nombre completo no puede estar vacío." + +msgid "ERROR: The new password must match the confirmed password." +msgstr "" +"ERROR: La nueva contraseña debe coincidir con el campo de confirmación" + +msgid "ERROR: There was a database error writing the roles information!" +msgstr "" +"ERROR: Hubo un error en la base de datos al escribir la información sobre " +"los roles" + +msgid "Edit" +msgstr "Editar" + +msgid "Edit this user record" +msgstr "Editar el registro de este usuario" + +msgid "Email Address" +msgstr "Dirección de email" + +msgid "" +"Enter a username, if you know it, and click here, to be e-mailed a temporary" +" password." +msgstr "" +"Proporcione un nombre de usuario, si lo sabe, y haga click aquí para " +"enviarle una contraseña temporal." + +msgid "Enter your username and password then click here to log in." +msgstr "" +"Proporcione su nombre de usuario y contraseña, depues haga click aquí para " +"acceder." + +#, php-format +msgid "Error NoGroupFound with filter >%s<, attributes >%s< , dn >%s<" +msgstr "Error NoGroupFound con el filtro >%s<, atributos >%s< , dn >%s<" + +#, php-format +msgid "Error NoUserFound with filter >%s<, attributes >%s< , dn >%s<" +msgstr "Error NoUserFound con filtro >%s<, atributos >%s< , dn >%s<" + +msgid "Error querying database." +msgstr "Error consultando la base de datos." + +msgid "Error writing calendar details to database." +msgstr "Error al escribir los detalles del calendario en la base de datos." + +msgid "Error writing calendar properties to database." +msgstr "Error al escribir las propiedades del calendario en la base de datos." + +msgid "European" +msgstr "Europeo" + +msgid "European (d/m/y)" +msgstr "Europeo (d/m/y)" + +msgid "Existing resource does not match \"If-Match\" header - not accepted." +msgstr "" +"El recurso existente no coincide con el encabezado \"If-Match\" - rechazado." + +msgid "Existing resource matches \"If-None-Match\" header - not accepted." +msgstr "" +"El recurso existente coincide con el encabezado \"If-None-Match\" - " +"rechazado." + +msgid "Expires" +msgstr "Expira" + +msgid "External Calendars" +msgstr "Calendarios externos" + +msgid "External Url" +msgstr "URL externa" + +msgid "Fail" +msgstr "Fallo" + +msgid "Failed to write collection." +msgstr "Fallo al escribir la colección." + +msgid "Feeds are only supported for calendars at present." +msgstr "Los 'feeds' sólo se permiten en calendarios por ahora" + +msgid "For access to the" +msgstr "Para acceso al" + +msgid "Forbidden" +msgstr "Prohibido" + +msgid "Free/Busy" +msgstr "Libre/Ocupado" + +msgid "Full Name" +msgstr "Nombre completo" + +msgid "Fullname" +msgstr "Nombre" + +msgid "GET requests on collections are only supported for calendars." +msgstr "" +"Las solicitudes GET en colecciones solo están disponibles para calendarios." + +msgid "GNU gettext support" +msgstr "Soporte para GNU gettext" + +msgid "GO!" +msgstr "¡Adelante!" + +msgid "Go to the DAViCal Feature Requests" +msgstr "Ir a las peticiones de funcionalidad de DAViCal" + +msgid "Grant" +msgstr "Permiso" + +msgid "Granting new privileges from this Principal" +msgstr "Añadiendo nuevos permisos a este 'principal'" + +#. Translators: in the sense of a group of people +msgid "Group" +msgstr "Grupo" + +msgid "Group Members" +msgstr "Miembros del grupo" + +msgid "Group Memberships" +msgstr "Membresías de grupo" + +msgid "Group Principals" +msgstr "'Principals' del grupo" + +msgid "Has Members" +msgstr "Tiene miembros" + +msgid "Help" +msgstr "Ayuda" + +msgid "Help on the current screen" +msgstr "Ayuda con la pantalla actual" + +msgid "Help! I've forgotten my password!" +msgstr "¡Ayuda! ¡He olvidado mi contraseña!" + +msgid "Home" +msgstr "Inicio" + +msgid "Home Page" +msgstr "Página principal" + +msgid "Home addressbook added." +msgstr "Libreta de direcciones inicial añadida." + +msgid "Home addressbook already exists." +msgstr "La libreta de direcciones inicial ya existía." + +msgid "Home calendar added." +msgstr "Calendario inicial añadido." + +msgid "Home calendar already exists." +msgstr "El calendario inicial ya existe." + +msgid "ID" +msgstr "ID" + +msgid "ISO Format" +msgstr "Formato ISO" + +msgid "ISO Format (YYYY-MM-DD)" +msgstr "Formato ISO (YYYY-MM-DD)" + +#. Translators: short for 'Identifier' +msgid "Id" +msgstr "ID" + +msgid "If you have forgotten your password then" +msgstr "Si olvidó su contraseña, entonces" + +msgid "If you would like to request access, please e-mail" +msgstr "Si usted quiere solicitar acceso, por favor escriba a la dirección " + +msgid "Import all .ics files of a directory" +msgstr "Importar todos los ficheros .ics desde un directorio" + +msgid "Import calendars and Synchronise LDAP." +msgstr "Importar calendarios y sincronizar con LDAP." + +msgid "Inactive Principals" +msgstr "'Principals' inactivos" + +msgid "Incorrect content type for addressbook: " +msgstr "Tipo incorrecto para una libreta de direcciones: " + +msgid "Incorrect content type for calendar: " +msgstr "Tipo de contenido incorrecto para un calendario: " + +msgid "Invalid user name or password." +msgstr "Nombre de usuario o contraseña inválidos." + +msgid "Invalid username or password." +msgstr "Nombre de usuario o contraseña inválidos." + +msgid "Is Member of" +msgstr "Es miembro de" + +msgid "Is a Calendar" +msgstr "Es un calendario" + +msgid "Is an Addressbook" +msgstr "Es una libreta de direcciones" + +msgid "Is this user active?" +msgstr "¿Está habilitado este usuario?" + +msgid "Items in Collection" +msgstr "Elementos en la colección" + +msgid "Joined" +msgstr "Unido" + +msgid "Language" +msgstr "Idioma" + +msgid "Last used" +msgstr "Último uso" + +msgid "List External Calendars" +msgstr "Listar calendarios externos" + +msgid "List Groups" +msgstr "Listar grupos" + +msgid "List Resources" +msgstr "Listar recursos" + +msgid "List Users" +msgstr "Listar usuarios" + +msgid "Load From File" +msgstr "Cargar desde fichero" + +msgid "Locale" +msgstr "Configuración regional" + +msgid "Location" +msgstr "Lugar" + +msgid "Log On Please" +msgstr "Por favor, autentíquese" + +msgid "Log out of DAViCal" +msgstr "Salir de DAViCal" + +msgid "Logout" +msgstr "Salir" + +msgid "Member deleted from this Group Principal" +msgstr "Miembro eliminado de este grupo" + +msgid "" +"Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly " +"recommended." +msgstr "" +"La mayoría de las funciones de DAViCal funcionarán, pero es muy recomendable" +" actualizar a PHP 5.2 o más reciente." + +msgid "Name" +msgstr "Nombre" + +msgid "New Collection" +msgstr "Nueva colección" + +msgid "New Password" +msgstr "Nueva contraseña" + +msgid "New Principal" +msgstr "Nuevo 'principal'" + +#. Translators: not 'Yes' +msgid "No" +msgstr "No" + +msgid "No calendar content" +msgstr "El calendario no tiene contenido" + +msgid "No collection found at that location." +msgstr "No se encontró ninguna colección en esa ruta" + +msgid "No summary" +msgstr "Sin resumen" + +#. Translators: short for 'Number' +msgid "No." +msgstr "Núm." + +msgid "No. of Collections" +msgstr "Núm. de colecciones" + +msgid "No. of Principals" +msgstr "Núm. de 'principals'" + +msgid "No. of Resources" +msgstr "Núm. de recursos" + +msgid "Not overwriting existing destination resource" +msgstr "No se sobreescribió el recurso ya existente." + +msgid "Opaque" +msgstr "Opaco" + +msgid "Override a Lock" +msgstr "Ignorar un bloqueo" + +msgid "PDO PostgreSQL drivers" +msgstr "Drivers PDO para PostgreSQL" + +msgid "PHP DateTime class" +msgstr "Clase DateTime de PHP" + +msgid "PHP LDAP module available" +msgstr "Módulo LDAP PHP disponible" + +msgid "PHP Magic Quotes GPC off" +msgstr "\"Magic quotes GPC\" de PHP desactivadas" + +msgid "PHP Magic Quotes runtime off" +msgstr "\"Magic quotes GPC\" de PHP desactivadas en tiempo de ejecución" + +msgid "PHP PDO module available" +msgstr "Módulo PHP PDO disponible" + +msgid "PHP calendar extension available" +msgstr "Extensión de calendarios para PHP disponible" + +msgid "PHP iconv support" +msgstr "Soporte PHP iconv" + +msgid "PHP not using Apache Filter mode" +msgstr "" + +msgid "" +"PUT on a collection is only allowed for text/calendar content against a " +"calendar collection" +msgstr "" +"El método PUT con contenido de tipo text/calendar sólo se permite en una " +"colección de tipo calendario" + +msgid "" +"PUT on a collection is only allowed for text/vcard content against an " +"addressbook collection" +msgstr "" +"El método PUT con contenido de tipo text/vcard sólo se permite en una " +"colección de tipo libreta de direcciones" + +msgid "Passed" +msgstr "Aceptado" + +msgid "Password" +msgstr "Contraseña" + +msgid "Path" +msgstr "Ruta" + +msgid "Person" +msgstr "Persona" + +msgid "Please confirm deletion of access ticket - see below" +msgstr "" +"Por favor confirme la eliminación del ticket de acceso - véase más abajo" + +msgid "Please confirm deletion of binding - see below" +msgstr "Por favor confirme la eliminación del enlace - véase más abajo" + +msgid "Please confirm deletion of collection - see below" +msgstr "Por favor confirme la eliminación de la colección - véase más abajo" + +msgid "Please confirm deletion of the principal" +msgstr "Por favor confirme la eliminación del 'principal'" + +msgid "Please note the time and advise the administrator of your system." +msgstr "Por favor anote la hora y coméntelo a su administrador del sistema." + +msgid "Principal" +msgstr "'Principal'" + +msgid "Principal Collections" +msgstr "Colecciones del 'principal'" + +msgid "Principal Grants" +msgstr "Permisos del 'principal'" + +msgid "Principal ID" +msgstr "ID del 'principal'" + +msgid "Principal Type" +msgstr "Tipo de 'principal'" + +msgid "Principal deleted" +msgstr "'Principal' eliminado" + +msgid "Privileges" +msgstr "Permisos" + +msgid "Privileges granted to All Users" +msgstr "Permisos dados a todos los usuarios" + +msgid "Privileges to allow delivery of scheduling messages" +msgstr "" + +msgid "Privileges to delegate scheduling decisions" +msgstr "" + +msgid "Property is read-only" +msgstr "Esta propiedad es de sólo lectura" + +#. Translators: in the sense of being available to all users +msgid "Public" +msgstr "Público" + +msgid "Publicly Readable" +msgstr "De lectura pública" + +msgid "REPORT body contains no XML data!" +msgstr "¡El cuerpo de la operación REPORT no contiene datos XML!" + +msgid "REPORT body is not valid XML data!" +msgstr "¡El cuerpo de la operación REPORT contiene datos XML inválidos!" + +msgid "Read" +msgstr "Lectura" + +msgid "Read ACLs for a resource or collection" +msgstr "Leer ACLs (listas de control de acceso) de un recurso o colección" + +msgid "Read Access Controls" +msgstr "Leer controles de acceso" + +msgid "Read Current User's Access" +msgstr "Leer permisos de acceso del usuario actual" + +msgid "Read Free/Busy Information" +msgstr "Consultar información libre/ocupado" + +msgid "Read the content of a resource or collection" +msgstr "Leer el contenido de un recurso o colección" + +msgid "" +"Read the details of the current user's access control to this resource." +msgstr "" +"Leer los detalles de control de acceso para el usuario actual a este recurso" + +msgid "Read the free/busy information for a calendar collection" +msgstr "" +"Consultar la información libre/ocupado para una colección de calendario" + +msgid "Read/Write" +msgstr "Lectura/escritura" + +msgid "References" +msgstr "Apunta a" + +msgid "Remove" +msgstr "Eliminar" + +msgid "Remove a lock" +msgstr "Eliminar un bloqueo" + +msgid "Remove dangling external calendars" +msgstr "Eliminar calendarios externos que van y vienen" + +msgid "Report Bug" +msgstr "Informar de un fallo" + +msgid "Report a bug in the system" +msgstr "Informar de un problema en el sistema" + +msgid "Request Feature" +msgstr "Solicitar una funcionalidad" + +msgid "Request body is not valid XML data!" +msgstr "¡El cuerpo de la petición no contiene datos XML válidos!" + +#. Translators a thing which might be booked: a room, a carpark, a +#. projector... +msgid "Resource" +msgstr "Recurso" + +msgid "Resource Calendar Principals" +msgstr "'Principals' de tipo recurso con calendario" + +msgid "Resource Not Found." +msgstr "Recurso no encontrado." + +msgid "Resource has changed on server - not deleted" +msgstr "El recurso fue modificado en el servidor - no se eliminó" + +msgid "Resources may not be changed to / from collections." +msgstr "Los recursos no pueden ser convertidos a colecciones (y viceversa)" + +msgid "Revoke" +msgstr "Revocar" + +msgid "Schedule Deliver" +msgstr "Entrega de planificaciones" + +msgid "Schedule Send" +msgstr "Envío de planificaciones" + +msgid "Schedule Transparency" +msgstr "Transparencia de planificaciones" + +msgid "Scheduling: Deliver a Reply" +msgstr "Planificación: entregar una respuesta" + +msgid "Scheduling: Deliver an Invitation" +msgstr "Planificación: entregar una invitación" + +msgid "Scheduling: Delivery" +msgstr "Planificación: entrega" + +msgid "Scheduling: Query free/busy" +msgstr "Planificación: consultar disponibilidad (libre/ocupado)" + +msgid "Scheduling: Send a Reply" +msgstr "Planificación: enviar una respuesta" + +msgid "Scheduling: Send an Invitation" +msgstr "Planificación: enviar una invitación" + +msgid "Scheduling: Send free/busy" +msgstr "Planificación: enviar información libre/ocupado" + +msgid "Scheduling: Sending" +msgstr "Planificación: envío" + +msgid "Send free/busy enquiries" +msgstr "Enviar comprobaciones de libre/ocupado" + +msgid "" +"Send scheduling invitations as an organiser from the owner of this " +"scheduling outbox." +msgstr "" +"Envío de invitaciones de planificación como organizador por parte del dueño " +"de este buzón de planificación" + +msgid "" +"Send scheduling replies as an attendee from the owner of this scheduling " +"outbox." +msgstr "" +"Envío de respuestas a propuestas de planificación como asistente por parte " +"del dueño de este buzón de planificación" + +msgid "Set free/busy privileges" +msgstr "Activar permisos libre/ocupado" + +msgid "Set read privileges" +msgstr "Activar permisos de lectura" + +msgid "Set read+write privileges" +msgstr "Activar permisos de lectura+escritura" + +msgid "" +"Set the path to store your ics e.g. 'calendar' will be referenced as " +"/caldav.php/username/calendar/" +msgstr "" +"Indique la ruta en la que se almacenarán sus ics. Por ejemplo, 'calendario' " +"se traducirá en '/caldav.php/usuario/calendario/'" + +msgid "Setup" +msgstr "Configuración" + +msgid "Setup DAViCal" +msgstr "Configurar DAViCal" + +msgid "Show help on" +msgstr "Mostrar ayuda sobre" + +msgid "Site Statistics" +msgstr "Estadísticas del sitio" + +msgid "Site Statistics require the database to be available!" +msgstr "" +"¡Las estadísticas del sitio necesitan que la base de datos esté disponible!" + +msgid "Some properties were not able to be changed." +msgstr "No fue posible cambiar algunas propiedades." + +msgid "Some properties were not able to be set." +msgstr "No fue posible configurar algunas propiedades." + +msgid "Source resource does not exist." +msgstr "El recurso de origen no existe." + +msgid "" +"Special collections may not contain a calendar or other special collection." +msgstr "" +"Las colecciones especiales no pueden contener un calendario u otra colección" +" especial." + +msgid "Specific Privileges" +msgstr "Privilegios concretos." + +msgid "Status" +msgstr "Estado" + +#, php-format +msgid "Status: %d, Message: %s, User: %d, Path: %s" +msgstr "Estado: %d, Mensaje: %s, Usuario: %d, Ruta: %s" + +msgid "Submit" +msgstr "Enviar" + +msgid "Suhosin \"server.strip\" disabled" +msgstr "Suhosin \"server.strip\" desactivado" + +msgid "Sync LDAP Groups with DAViCal" +msgstr "Sincronizar grupos LDAP con DAViCal" + +msgid "Sync LDAP with DAViCal" +msgstr "Sincronizar LDAP en DAViCal" + +msgid "Target" +msgstr "Destino" + +msgid "That destination name contains invalid characters." +msgstr "El nombre de destino tiene caracteres inválidos." + +msgid "That resource is not present on this server." +msgstr "El recurso no existe en este servidor." + +msgid "The BIND Request MUST identify an existing resource." +msgstr "La solicitud BIND DEBE identificar un recurso existente." + +msgid "The BIND Request-URI MUST identify a collection." +msgstr "El URI de la solicitud BIND DEBE identificar a una colección." + +msgid "The BIND method is not allowed at that location." +msgstr "No está permitido el método BIND en esa ruta." + +msgid "" +"The CalDAV:schedule-calendar-transp property may only be set on calendars." +msgstr "" +"La propiedad CalDAV:schedule-calendar-transp sólo puede ser configurada en " +"calendarios." + +msgid "The DAViCal Home Page" +msgstr "Página principal de DAViCal" + +msgid "The access ticket will be deleted." +msgstr "El ticket de acceso será eliminado." + +msgid "" +"The addressbook-query report must be run against an addressbook collection" +msgstr "" +"La solicitud addressbook-query debe ejecutarse contra una colección de tipo " +"libreta de direcciones" + +msgid "The application failed to understand that request." +msgstr "La aplicación no pudo entender la petición" + +msgid "The application program does not understand that request." +msgstr "La aplicación no entendió su petición" + +msgid "The binding will be deleted." +msgstr "El enlace será eliminado." + +msgid "The calendar path contains illegal characters." +msgstr "La ruta al calendario contiene caracteres no permitidos." + +msgid "" +"The calendar-free-busy-set is superseded by the schedule-transp property of " +"a calendar collection." +msgstr "" +"La propiedad calendar-free-busy-set tiene menos prioridad que la propiedad " +"schedule-transp en una colección de tipo calendario." + +msgid "" +"The calendar-query report must be run against a calendar or a scheduling " +"collection" +msgstr "" +"La petición calendar-query debe ejecutarse contra un calendario o una " +"colección de planificación." + +msgid "The collection name may not be blank." +msgstr "El nombre de la colección no puede dejarse en blanco." + +msgid "The destination collection does not exist" +msgstr "La colección de destino no existe." + +msgid "" +"The displayname may only be set on collections, principals or bindings." +msgstr "" +"El nombre mostrado puede asignarse sólo en colecciones, 'principals', o " +"enlaces." + +msgid "The email address really should not be blank." +msgstr "La dirección de correo electrónico no debería estar vacía." + +#, php-format +msgid "The file \"%s\" is not UTF-8 encoded, please check error for more details" +msgstr "" +"El fichero \"%s\" no está codificado en UTF-8, por favor compruebe el log de" +" errores para conocer más detalles" + +msgid "" +"The file is not UTF-8 encoded, please check the error for more details." +msgstr "" +"El fichero no está codificado en UTF-8, por favor compruebe el log de " +"errores para conocer más detalles" + +msgid "The full name for this person, group or other type of principal." +msgstr "" +"El nombre completo de esta persona, grupo, u otro tipo de 'principal'." + +msgid "The full name must not be blank." +msgstr "El nombre completo no puede estar en blanco." + +msgid "The name this user can log into the system with." +msgstr "El nombre con el que este usuario accederá el sistema." + +msgid "The path on the server where your .ics files are." +msgstr "La ruta en el servidor donde están los ficheros .ics." + +msgid "The preferred language for this person." +msgstr "El idioma preferido de esta persona." + +#, php-format +msgid "The principal \"%s\" does not exist" +msgstr "El 'principal' %s no existe" + +msgid "The style of dates used for this person." +msgstr "El formato de fecha usado por esta persona." + +msgid "The user's e-mail address." +msgstr "El correo electrónico del usuario." + +msgid "The user's full name." +msgstr "El nombre completo del usuario." + +msgid "The user's password for logging in." +msgstr "La contraseña del usuario para acceder al sistema." + +msgid "The username must not be blank, and may not contain a slash" +msgstr "" +"El nombre de usuario no puede estar vacío, y no debe contener barras " +"inclinadas." + +msgid "There was an error reading from the database." +msgstr "Ocurrió un error al leer la base de datos." + +msgid "There was an error writing to the database." +msgstr "Ocurrió un error al escribir en la base de datos." + +msgid "" +"This operation does the following:

    • check valid groups in LDAP " +"directory
    • check groups in DAViCal
    then
    • if a group" +" is present in DAViCal but not in LDAP set as inactive in DAViCal
    • " +"
    • if a group is present in LDAP but not in DAViCal create the group in " +"DAViCal
    • if a group in present in LDAP and DAViCal then update " +"information in DAViCal
    " +msgstr "" +"Esta operación hace lo siguiente:
    • comprobar los grupos válidos en " +"LDAP
    • comprobar los grupos en DAViCal
    , tras esto:
      " +"
    • si un grupo está en DAViCal pero no en LDAP, marcarlo como inactivo
    • " +"
    • si un grupo está en LDAP pero no en DAViCal, crearlo en DAViCal
    • " +"
    • si está en ambos, actualizar la información en DAViCal
    " + +msgid "" +"This operation does the following:
    • check valid users in LDAP " +"directory
    • check users in DAViCal
    then
    • if a user " +"is present in DAViCal but not in LDAP set him as inactive in DAViCal
    • " +"
    • if a user is present in LDAP but not in DAViCal create the user in " +"DAViCal
    • if a user in present in LDAP and DAViCal then update " +"information in DAViCal
    " +msgstr "" +"Esta operación hace lo siguiente:
    • comprobar los usuarios válidos en" +" LDAP
    • comprobar los usuarios en DAViCal
    , tras esto:
      " +"
    • si un usuario está en DAViCal pero no en LDAP, marcarlo como " +"inactivo
    • si un usuario está en LDAP pero no en DAViCal, crearlo en " +"DAViCal
    • si está en ambos, actualizar la información en DAViCal
    • " +"
    " + +msgid "" +"This page primarily checks the environment needed for DAViCal to work " +"correctly. Suggestions or patches to make it do more useful stuff will be " +"gratefully received." +msgstr "" +"Esta página comprueba si el entorno es el necesario para que DAViCal " +"funcione correctamente. Las sugerencias y los parches para hacerla más útil" +" son bienvenidos." + +msgid "" +"This process will import each file in a directory named \"username.ics\" and" +" create a user and calendar for each file to import." +msgstr "" +"Este proceso importará de un directorio cada fichero \"usuario.ics\", " +"creando un usuario con el nombre indicado y un calendario, uno por cada " +"fichero encontrado." + +msgid "This server only supports the text/calendar format for freebusy URLs" +msgstr "" +"Este servidor sólo soporta el formato text/calendar para URLs freebusy" + +msgid "Ticket ID" +msgstr "ID del ticket" + +msgid "Time" +msgstr "Tiempo" + +msgid "To Collection" +msgstr "A la colección" + +msgid "To ID" +msgstr "Al ID" + +msgid "Toggle all privileges" +msgstr "Invertir todos los permisos" + +msgid "Tools" +msgstr "Herramientas" + +msgid "Transparent" +msgstr "Transparente" + +msgid "URL" +msgstr "URL" + +msgid "US Format" +msgstr "Formato EEUU" + +msgid "Unauthenticated User" +msgstr "Usuario no autenticado" + +msgid "United States of America (m/d/y)" +msgstr "Estados Unidos de Norteamérica (m/d/y)" + +msgid "Update" +msgstr "Actualizar" + +msgid "Updated" +msgstr "Actualizado" + +msgid "Updating Collection record." +msgstr "Actualizando el registro de la colección." + +msgid "Updating Member of this Group Principal" +msgstr "Actualizando un miembro de este grupo" + +msgid "Updating Principal record." +msgstr "Actualizando el registro del 'principal'" + +msgid "Updating grants by this Principal" +msgstr "Actualizando los permisos desde este 'principal'" + +msgid "Upgrade DAViCal database schema" +msgstr "Actualizar el esquema de la base de datos de DAViCal" + +msgid "Upgrade Database" +msgstr "Actualizar la base de datos" + +msgid "" +"Upload a .ics calendar in iCalendar format to initialise or replace this " +"calendar." +msgstr "" +"Subir un fichero .ics en formato iCalendar para inicializar o reemplazar " +"este calendario." + +msgid "User Calendar Principals" +msgstr "'Principals' de tipo usuario" + +msgid "User Details" +msgstr "Detalles del usuario" + +msgid "User Functions" +msgstr "Funciones sobre usuarios" + +msgid "User Name" +msgstr "Nombre del usuario" + +msgid "User Roles" +msgstr "Roles del usuario" + +msgid "User is active" +msgstr "El usuario está activo" + +msgid "User record written." +msgstr "Registro del usuario guardado." + +msgid "Username" +msgstr "Nombre de usuario" + +msgid "View My Details" +msgstr "Ver mis detalles" + +msgid "View my own principal record" +msgstr "Ver el registro de mi propio 'principal'" + +msgid "View this user record" +msgstr "Ver el registro de este usuario" + +msgid "Visit the DAViCal Wiki" +msgstr "Visitar el Wiki de DAViCal" + +#, php-format +msgid "Want: %s, Currently: %s" +msgstr "Quiere: %s, Actualmente: %s" + +msgid "" +"Warning: there are no active admin users! You should fix this before logging" +" out. Consider using the $c->do_not_sync_from_ldap configuration setting." +msgstr "" +"Precaución: ¡No hay usuarios con privilegios de administración activos! " +"Debe reparar esto antes de salir. Plantéese utilizar el parámetro " +"$c->do_not_sync_from_ldap en la configuración." + +msgid "When the user's e-mail account was validated." +msgstr "Cuando la dirección de correo electrónico del usuario fue validada." + +msgid "Write" +msgstr "Escribir" + +msgid "Write ACLs for a resource or collection" +msgstr "Escribir ACLs para un recurso o colección" + +msgid "Write Access Controls" +msgstr "Escribir controles de acceso" + +msgid "Write Data" +msgstr "Escribir datos" + +msgid "Write Metadata" +msgstr "Escribir meta-datos" + +msgid "Write content" +msgstr "Escribir contenido" + +msgid "Write properties" +msgstr "Escribir propiedades" + +msgid "Yes" +msgstr "Sí" + +msgid "You are editing" +msgstr "Está editando" + +msgid "You are not authorised to use this function." +msgstr "No está autorizado a usar esta función." + +msgid "You are viewing" +msgstr "Está viendo" + +msgid "You do not have permission to modify this record." +msgstr "No tiene permiso para modificar este registro." + +msgid "You may not PUT to a collection URL" +msgstr "No puede usar PUT sobre la URL de una colección" + +msgid "You must log in to use this system." +msgstr "Debe autenticarse para utilizar el sistema" + +msgid "Your configuration produced PHP errors which should be corrected" +msgstr "Su configuración produjo errores de PHP que deberían ser corregidos" + +msgid "calendar-timezone property is only valid for a calendar." +msgstr "La propiedad calendar-timezone sólo es válida en calendarios." + +#, php-format +msgid "directory %s is not readable" +msgstr "no se puede leer el directorio %s" + +msgid "" +"drivers_imap_pam : imap_url parameter not configured in " +"/etc/davical/*-conf.php" +msgstr "" +"drivers_imap_pam : el parámetro imap_url parámetro no está configurado en " +"/etc/davical/*-conf.php" + +msgid "drivers_ldap : Could not start TLS: ldap_start_tls() failed" +msgstr "drivers_ldap : no se pudo usar TLS: ldap_start_tls() falló" + +#, php-format +msgid "" +"drivers_ldap : Failed to bind to host %1$s on port %2$s with bindDN of %3$s" +msgstr "" +"drivers_ldap : falló el bind en el host %1$s por el puerto %2$s con DN %3$s" + +msgid "" +"drivers_ldap : Failed to set LDAP to use protocol version 3, TLS not " +"supported" +msgstr "" +"drivers_ldap : no se pudo usar LDAP versión 3, el uso de TLS no está " +"soportado" + +msgid "" +"drivers_ldap : Unable to bind to LDAP - check your configuration for bindDN " +"and passDN, and that your LDAP server is reachable" +msgstr "" +"drivers_ldap : no se pudo hacer bind en LDAP - compruebe la configuración de" +" los parámetros bindDN y passDN, y asegúrese de que su servidor LDAP es " +"accesible." + +#, php-format +msgid "drivers_ldap : Unable to connect to LDAP with port %s on host %s" +msgstr "" +"drivers_ldap : no se pudo conectar a LDAP por el puerto %s en el host %s" + +msgid "" +"drivers_ldap : function ldap_connect not defined, check your php_ldap module" +msgstr "" +"drivers_ldap : la función ldap_connect no existe; compruebe que tiene " +"instalado el módulo php_ldap" + +#, php-format +msgid "drivers_pwauth_pam : Unable to find %s file" +msgstr "drivers_pwauth_pam : no se encontró el fichero %s" + +#, php-format +msgid "drivers_squid_pam : Unable to find %s file" +msgstr "drivers_squid_pam : no se encontró el fichero %s" + +#. Translators: this is a colloquial phrase in english (the name of a flower) +#. and is an option allowing people to log in automatically in future +msgid "forget me not" +msgstr "recuérdame" + +msgid "from principal" +msgstr "del 'principal'" + +msgid "path to store your ics" +msgstr "ruta para almacenar sus ics" + +msgid "unauthenticated" +msgstr "no autenticado" + +msgid "" +"you should log on with the username and password that have been issued to " +"you." +msgstr "" +"deberá autenticarse con el nombre de usuario y contraseña que se le " +"comunicaron." + + diff -Nru davical-0.9.9.7/po/es_ES.values davical-1.0.2/po/es_ES.values --- davical-0.9.9.7/po/es_ES.values 1970-01-01 00:00:00.000000000 +0000 +++ davical-1.0.2/po/es_ES.values 2011-10-25 18:42:05.000000000 +0000 @@ -0,0 +1 @@ + VALUES( 'es_ES', 'Spanish (Spain)', 'Español (Espana)' ); diff -Nru davical-0.9.9.7/po/es_MX.po davical-1.0.2/po/es_MX.po --- davical-0.9.9.7/po/es_MX.po 2011-09-26 22:30:09.000000000 +0000 +++ davical-1.0.2/po/es_MX.po 2012-01-04 23:04:18.000000000 +0000 @@ -1,28 +1,31 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# pr3d4t0r , 2011. +# +# Translators: # Eugene Ciurana , 2011. +# pr3d4t0r , 2011. msgid "" msgstr "" "Project-Id-Version: DAViCal\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-27 11:30+1300\n" -"PO-Revision-Date: 2011-08-02 19:21+0000\n" -"Last-Translator: pr3d4t0r \n" +"Report-Msgid-Bugs-To: http://repo.or.cz/w/davical.git/tree/HEAD:/issues\n" +"POT-Creation-Date: 2011-11-21 10:59+1300\n" +"PO-Revision-Date: 2011-11-20 22:15+0000\n" +"Last-Translator: Andrew McMillan \n" "Language-Team: Spanish (Mexican) (http://www.transifex.net/projects/p/davical/team/es_MX/)\n" -"Language: es_MX\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: es_MX\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#. Translators: this is the formatting of a date with time. See http://php.net/manual/en/function.strftime.php +#. Translators: this is the formatting of a date with time. See +#. http://php.net/manual/en/function.strftime.php msgid "%F %T" msgstr "%F %T" -#. Translators: his is the formatting of just the time. See http://php.net/manual/en/function.strftime.php +#. Translators: his is the formatting of just the time. See +#. http://php.net/manual/en/function.strftime.php msgid "%T" msgstr "%T" @@ -72,44 +75,38 @@ msgid "- updating user records : %s" msgstr "- actualizando los registros de usuario: %s" -msgid "WARNING: all events in this path will be deleted before inserting allof the ics file" +msgid "" +"WARNING: all events in this path will be deleted before inserting allof " +"the ics file" msgstr "" -"ADVERTENCIA: todos los eventos en este repositorio serán eliminados antes de insertar el archivo " -"ics" +"ADVERTENCIA: todos los eventos en este repositorio serán eliminados " +"antes de insertar el archivo ics" #, php-format msgid "" "

    Help

    \n" -"

    For initial help you should visit the DAViCal " -"Home Page or take\n" +"

    For initial help you should visit the DAViCal Home Page or take\n" "a look at the DAViCal Wiki.

    \n" -"

    If you can't find the answers there, visit us on IRC in\n" +"

    If you can't find the answers there, visit us on IRC in\n" "the #davical channel on irc.oftc.net,\n" -"or send a question to the DAViCal Users mailing list.

    \n" -"

    The mailing list\n" +"or send a question to the DAViCal Users mailing list.

    \n" +"

    The mailing list\n" "archives can be helpful too.

    " msgstr "" "

    Ayuda\n" -"

    Visita la Página Principal de DAViCal para " -"ayuda inicial, o consultael Wiki de DAViCal.

    Si no encuentras la respuesta a tus dudas, visítanos en IRC enel canal #davical en irc.oftc.net,\n" -"o envía tus preguntas a la lista de correo de Usuarios de DAViCal.

    \n" -"

    El archivo de la lista de correotambien te será útil." +"

    Visita la Página Principal de DAViCal para ayuda inicial, o consultael Wiki de DAViCal.

    Si no encuentras la respuesta a tus dudas, visítanos en IRC enel canal #davical en irc.oftc.net,\n" +"o envía tus preguntas a la lista de correo de Usuarios de DAViCal.

    \n" +"

    El archivo de la lista de correotambien te será útil." #, php-format msgid "" -"

    Log On Please

    For access to the %s you should log on withthe username and password that " -"have been issued to you.

    If you would like to request access, please e-mail %s.

    " +"

    Log On Please

    For access to the %s you should log on withthe " +"username and password that have been issued to you.

    If you would like " +"to request access, please e-mail %s.

    " msgstr "" -"

    Por Favor Entra Identifícate

    Debes para entrar a %s debes identificarte con tu nombre de " -"usuario y tu clave de acceso.

    Notifica a %s si deseas solicitar acceso." +"

    Por Favor Entra Identifícate

    Debes para entrar a %s debes " +"identificarte con tu nombre de usuario y tu clave de acceso.

    Notifica " +"a %s si deseas solicitar acceso." msgid "A DAViCal principal collection may only contain collections" msgstr "Una colección principal de DAViCal solo puede contener colecciones" @@ -154,8 +151,15 @@ msgid "All collection data will be unrecoverably deleted." msgstr "Todos los datos de esta colección serán eliminados." -msgid "All of the principal's calendars and events will be unrecoverably deleted." -msgstr "Todos los calendarios y eventos de este principal serán eliminados permanentemente." +#, php-format +msgid "All events of user \"%s\" were deleted and replaced by those from file %s" +msgstr "" + +msgid "" +"All of the principal's calendars and events will be unrecoverably deleted." +msgstr "" +"Todos los calendarios y eventos de este principal serán eliminados " +"permanentemente." msgid "All privileges" msgstr "Todos los privilegios" @@ -163,11 +167,14 @@ msgid "All requested changes were made." msgstr "Todos los cambios solicitados fueron hechos." -msgid "Allow free/busy enquiries targeted at the owner of this scheduling inbox" -msgstr "Permite solicitudes libre/ocupado para el dueño de este buzón de itinerario." +msgid "" +"Allow free/busy enquiries targeted at the owner of this scheduling inbox" +msgstr "" +"Permite solicitudes libre/ocupado para el dueño de este buzón de itinerario." msgid "An \"Administrator\" user has full rights to the whole DAViCal System" -msgstr "Un usuario \"Administrador\" tiene todos derechos al Sistema DAViCal entero." +msgstr "" +"Un usuario \"Administrador\" tiene todos derechos al Sistema DAViCal entero." msgid "Anonymous users are not allowed to modify calendars" msgstr "Los usuarios anónimos no tienen permitido modificar calendarios" @@ -199,6 +206,9 @@ msgid "Bindings to this Principal's Collections" msgstr "Enlaces a las Colleciones de este Principal" +msgid "Body contains no XML data!" +msgstr "" + msgid "Bound As" msgstr "Enlazado con" @@ -245,8 +255,12 @@ msgid "Collection deleted" msgstr "Colección eliminada" -msgid "Collections may not be both CalDAV calendars and CardDAV addressbooks at the same time" -msgstr "Las colecciones no pueden ser calendarios CalDAV y agendas de teléfono CardDAV al mismo tiempo" +msgid "" +"Collections may not be both CalDAV calendars and CardDAV addressbooks at the" +" same time" +msgstr "" +"Las colecciones no pueden ser calendarios CalDAV y agendas de teléfono " +"CardDAV al mismo tiempo" msgid "Configuring Calendar Clients for DAViCal" msgstr "Configurando Clientes de Calendario para DAViCal" @@ -317,8 +331,10 @@ msgid "DAV Path" msgstr "Camino DAV" -msgid "DAV::resourcetype may only be set to a new value, it may not be removed." -msgstr "DAV::resourcetype solo puede tener un valor nuevo, y no puede ser eliminado." +msgid "" +"DAV::resourcetype may only be set to a new value, it may not be removed." +msgstr "" +"DAV::resourcetype solo puede tener un valor nuevo, y no puede ser eliminado." msgid "DAViCal CalDAV Server" msgstr "Servidor DAViCal CalDAV" @@ -416,11 +432,16 @@ msgid "Deleting Ticket:" msgstr "Eliminando Boleto:" -msgid "Deliver scheduling invitations from an organiser to this scheduling inbox" -msgstr "Enviar invitaciones de itinerario de un organizador a este buzón de itinerarios" +msgid "" +"Deliver scheduling invitations from an organiser to this scheduling inbox" +msgstr "" +"Enviar invitaciones de itinerario de un organizador a este buzón de " +"itinerarios" msgid "Deliver scheduling replies from an attendee to this scheduling inbox" -msgstr "Enviar respuestas de itinerario de un participante a este buzón de itinerarios" +msgstr "" +"Enviar respuestas de itinerario de un participante a este buzón de " +"itinerarios" msgid "Dependencies" msgstr "Dependencias" @@ -456,10 +477,13 @@ msgstr "ERROR: El nombre completo no puede estar vacío." msgid "ERROR: The new password must match the confirmed password." -msgstr "ERROR: La clave de acceso debe coincidir con la clave de acceso confirmada." +msgstr "" +"ERROR: La clave de acceso debe coincidir con la clave de acceso confirmada." msgid "ERROR: There was a database error writing the roles information!" -msgstr "ERROR: ¡Un error de base de datos ocurrió al escribir la información de papeles!" +msgstr "" +"ERROR: ¡Un error de base de datos ocurrió al escribir la información de " +"papeles!" msgid "Edit" msgstr "Editar" @@ -470,13 +494,17 @@ msgid "Email Address" msgstr "Dirección de Email" -msgid "Enter a username, if you know it, and click here, to be e-mailed a temporary password." +msgid "" +"Enter a username, if you know it, and click here, to be e-mailed a temporary" +" password." msgstr "" -"Proporcione un nombre de usuario, si lo sabe, y haga click aquí, para enviarle una clave de acceso " -"temporal." +"Proporcione un nombre de usuario, si lo sabe, y haga click aquí, para " +"enviarle una clave de acceso temporal." msgid "Enter your username and password then click here to log in." -msgstr "Proporcione su nombre de usuario y clave de accesso, depues haga click aquí para entrar." +msgstr "" +"Proporcione su nombre de usuario y clave de accesso, depues haga click aquí " +"para entrar." #, php-format msgid "Error NoGroupFound with filter >%s<, attributes >%s< , dn >%s<" @@ -502,14 +530,23 @@ msgstr "Europeo (d/m/y)" msgid "Existing resource does not match \"If-Match\" header - not accepted." -msgstr "El recurso existente no coincide con el encabezado \"If-Match\" - rechazado." +msgstr "" +"El recurso existente no coincide con el encabezado \"If-Match\" - rechazado." msgid "Existing resource matches \"If-None-Match\" header - not accepted." -msgstr "El recurso existente coincide con el encabezado \"If-None-Match\" - rechazado." +msgstr "" +"El recurso existente coincide con el encabezado \"If-None-Match\" - " +"rechazado." msgid "Expires" msgstr "Expira" +msgid "External Calendars" +msgstr "" + +msgid "External Url" +msgstr "" + msgid "Fail" msgstr "Falla" @@ -535,7 +572,8 @@ msgstr "Nombre" msgid "GET requests on collections are only supported for calendars." -msgstr "Las solicitudes GET en colecciones solo son suportadas para calendarios." +msgstr "" +"Las solicitudes GET en colecciones solo son suportadas para calendarios." msgid "GNU gettext support" msgstr "Soporte para GNU gettext" @@ -659,6 +697,9 @@ msgid "Last used" msgstr "Último uso" +msgid "List External Calendars" +msgstr "" + msgid "List Groups" msgstr "Listar Grupos" @@ -689,10 +730,12 @@ msgid "Member deleted from this Group Principal" msgstr "Miembro eliminado de este Grupo de Principales" -msgid "Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly recommended." +msgid "" +"Most of DAViCal will work but upgrading to PHP 5.2 or later is strongly " +"recommended." msgstr "" -"La mayoría de las funciones de DAViCal funcionarán, pero es muy recomendable actualizar a PHP 5.2 o " -"mas reciente." +"La mayoría de las funciones de DAViCal funcionarán, pero es muy recomendable" +" actualizar a PHP 5.2 o mas reciente." msgid "Name" msgstr "Nombre" @@ -710,18 +753,12 @@ msgid "No" msgstr "No" -msgid "No authority to deliver invitations to user." -msgstr "Sin autoridad para enviar invitaciones al usuario." - msgid "No calendar content" msgstr "Calendario vacío" msgid "No collection found at that location." msgstr "No se encontró ninguna colección en esa localización." -msgid "No scheduling support for user" -msgstr "Itinerarios de usuario no soportados" - msgid "No summary" msgstr "Sin resumen" @@ -765,19 +802,26 @@ msgid "PHP PDO module available" msgstr "Módulo PHP PDO disponible" -msgid "PHP PostgreSQL available" -msgstr "PHP PostgreSQL disponible" - msgid "PHP calendar extension available" msgstr "" msgid "PHP iconv support" msgstr "Soporte PHP iconv" -msgid "PUT on a collection is only allowed for text/calendar content against a calendar collection" +msgid "PHP not using Apache Filter mode" +msgstr "" + +msgid "" +"PUT on a collection is only allowed for text/calendar content against a " +"calendar collection" +msgstr "" +"PUT solo se permite para una colección si el contenido es text/calendar para" +" una colección de calendario" + +msgid "" +"PUT on a collection is only allowed for text/vcard content against an " +"addressbook collection" msgstr "" -"PUT solo se permite para una colección si el contenido es text/calendar para una colección de " -"calendario" msgid "Passed" msgstr "Aceptado" @@ -792,7 +836,8 @@ msgstr "Persona" msgid "Please confirm deletion of access ticket - see below" -msgstr "Por favor confirme la eliminación del billete de acceso - vea en seguida" +msgstr "" +"Por favor confirme la eliminación del billete de acceso - vea en seguida" msgid "Please confirm deletion of binding - see below" msgstr "Por favor confirme la eliminación del enlace - vea en seguida" @@ -830,6 +875,12 @@ msgid "Privileges granted to All Users" msgstr "Privilegios otorgados a Todos los Usuarios" +msgid "Privileges to allow delivery of scheduling messages" +msgstr "" + +msgid "Privileges to delegate scheduling decisions" +msgstr "" + msgid "Property is read-only" msgstr "Esta propiedad es solo de lectura" @@ -864,8 +915,11 @@ msgid "Read the content of a resource or collection" msgstr "Leer el contenido de un recurso o colección" -msgid "Read the details of the current user's access control to this resource." -msgstr "Leer los detalles de control de acceso para el usuario actaul respecto a este recurso." +msgid "" +"Read the details of the current user's access control to this resource." +msgstr "" +"Leer los detalles de control de acceso para el usuario actaul respecto a " +"este recurso." msgid "Read the free/busy information for a calendar collection" msgstr "Leer la información libre/ocupado para una colección de calendario" @@ -873,12 +927,18 @@ msgid "Read/Write" msgstr "Leer/Escribir" +msgid "References" +msgstr "" + msgid "Remove" msgstr "Remover" msgid "Remove a lock" msgstr "Remover un seguro" +msgid "Remove dangling external calendars" +msgstr "" + msgid "Report Bug" msgstr "Reportar un problema" @@ -891,7 +951,8 @@ msgid "Request body is not valid XML data!" msgstr "¡El cuerpo de la solicitud no contiene datos XML válidos!" -#. Translators a thing which might be booked: a room, a carpark, a projector... +#. Translators a thing which might be booked: a room, a carpark, a +#. projector... msgid "Resource" msgstr "Recurso" @@ -919,9 +980,6 @@ msgid "Schedule Transparency" msgstr "Transparencia de Itinerario" -msgid "Scheduling invitation delivered successfully" -msgstr "Invitación de itinerario entregada con éxito" - msgid "Scheduling: Deliver a Reply" msgstr "Itinerario: Entregar una Respuesta" @@ -949,12 +1007,19 @@ msgid "Send free/busy enquiries" msgstr "Enviar verificaciones de libre/ocupado" -msgid "Send scheduling invitations as an organiser from the owner of this scheduling outbox." +msgid "" +"Send scheduling invitations as an organiser from the owner of this " +"scheduling outbox." msgstr "" -"Enviar invitaciones de itinerario como el organizador desde el dueño de este buzón de itinerario." +"Enviar invitaciones de itinerario como el organizador desde el dueño de " +"este buzón de itinerario." -msgid "Send scheduling replies as an attendee from the owner of this scheduling outbox." -msgstr "Enviando respuestas como participante desde el dueño de este buzón de salida para itinerarios." +msgid "" +"Send scheduling replies as an attendee from the owner of this scheduling " +"outbox." +msgstr "" +"Enviando respuestas como participante desde el dueño de este buzón de salida" +" para itinerarios." msgid "Set free/busy privileges" msgstr "Activar privilegios libre/ocupado" @@ -965,11 +1030,10 @@ msgid "Set read+write privileges" msgstr "Activar privilegios de lectura+escritura" -msgid "Set schedule-deliver privileges" -msgstr "Asignar privilegios de entrega-itinerario" - -msgid "Set the path to store your ics e.g. 'home' will be referenced as /caldav.php/me/home/" -msgstr "La trayectoria para grabar su ics (e.g. 'home') será referido como /caldar.php/me/home/" +msgid "" +"Set the path to store your ics e.g. 'calendar' will be referenced as " +"/caldav.php/username/calendar/" +msgstr "" msgid "Setup" msgstr "Configuración" @@ -984,7 +1048,8 @@ msgstr "Estadísticas del Sitio" msgid "Site Statistics require the database to be available!" -msgstr "¡Las Estadísticas del Sitio requieren que la base de datos esté disponible!" +msgstr "" +"¡Las Estadísticas del Sitio requieren que la base de datos esté disponible!" msgid "Some properties were not able to be changed." msgstr "No fue posible cambiar algunas propiedades." @@ -995,8 +1060,11 @@ msgid "Source resource does not exist." msgstr "El recurso fuente no existe." -msgid "Special collections may not contain a calendar or other special collection." -msgstr "Las colecciones especiales no pueden contener un calendario u otra colección especial." +msgid "" +"Special collections may not contain a calendar or other special collection." +msgstr "" +"Las colecciones especiales no pueden contener un calendario u otra colección" +" especial." msgid "Specific Privileges" msgstr "Privilegios Específicos" @@ -1014,8 +1082,8 @@ msgid "Suhosin \"server.strip\" disabled" msgstr "Suhosin \"server.strip\" deactivado" -msgid "Sync LDAP Groups with RSCDS" -msgstr "Sincronizar LDAP Groups y RSCDS" +msgid "Sync LDAP Groups with DAViCal" +msgstr "" msgid "Sync LDAP with DAViCal" msgstr "Sincronizar LDAP y DAViCal" @@ -1038,8 +1106,11 @@ msgid "The BIND method is not allowed at that location." msgstr "No está permitido el método BIND en esa localización." -msgid "The CalDAV:schedule-calendar-transp property may only be set on calendars." -msgstr "La propiedad CalDAV:schedule-calendar-transp solo puede ser configurada en calendarios." +msgid "" +"The CalDAV:schedule-calendar-transp property may only be set on calendars." +msgstr "" +"La propiedad CalDAV:schedule-calendar-transp solo puede ser configurada en " +"calendarios." msgid "The DAViCal Home Page" msgstr "La Página Principal de DAViCal" @@ -1047,10 +1118,11 @@ msgid "The access ticket will be deleted." msgstr "El boleto de acceso será eliminado." -msgid "The addressbook-query report must be run against an addressbook collection" +msgid "" +"The addressbook-query report must be run against an addressbook collection" msgstr "" -"El reporte de solicitud-lista-de-direcciones debe ejecutarse con respecto a una colección de lista de " -"direcciones." +"El reporte de solicitud-lista-de-direcciones debe ejecutarse con respecto a " +"una colección de lista de direcciones." msgid "The application failed to understand that request." msgstr "" @@ -1065,12 +1137,18 @@ msgstr "La trayectoria del calendario contiene caracteres ilegales." msgid "" -"The calendar-free-busy-set is superseded by the schedule-transp property of a calendar collection." +"The calendar-free-busy-set is superseded by the schedule-transp property of " +"a calendar collection." msgstr "" -"La propiedad calendar-free-busy-set es reemplazada por schedule-transp en unacolección de calendario." +"La propiedad calendar-free-busy-set es reemplazada por schedule-transp en " +"unacolección de calendario." -msgid "The calendar-query report must be run against a calendar or a scheduling collection" -msgstr "El reporte calendar-query debe ejecutarse contra un calendario o una colecciónde itinerario" +msgid "" +"The calendar-query report must be run against a calendar or a scheduling " +"collection" +msgstr "" +"El reporte calendar-query debe ejecutarse contra un calendario o una " +"colecciónde itinerario" msgid "The collection name may not be blank." msgstr "El nombre de la colección no puede dejarse en blanco." @@ -1078,15 +1156,24 @@ msgid "The destination collection does not exist" msgstr "La colección de destino no existe." -msgid "The displayname may only be set on collections, principals or bindings." -msgstr "El nombre de despliegue puede asignarse solo en colecciones, principales, o enlaces." +msgid "" +"The displayname may only be set on collections, principals or bindings." +msgstr "" +"El nombre de despliegue puede asignarse solo en colecciones, principales, o " +"enlaces." msgid "The email address really should not be blank." msgstr "La dirección de correo electrónico no deberá estar en blanco." -msgid "The file is not UTF-8 encoded, please check the error for more details." +#, php-format +msgid "The file \"%s\" is not UTF-8 encoded, please check error for more details" msgstr "" -"Ël archivo no está codificado en UTF-8, por favor verifica el mensaje de error para mayores detalles." + +msgid "" +"The file is not UTF-8 encoded, please check the error for more details." +msgstr "" +"Ël archivo no está codificado en UTF-8, por favor verifica el mensaje de " +"error para mayores detalles." msgid "The full name for this person, group or other type of principal." msgstr "El nombre completo de esta persona, grupo, u otro tipo de principal." @@ -1103,6 +1190,10 @@ msgid "The preferred language for this person." msgstr "El lenguaje predilecto de esta persona." +#, php-format +msgid "The principal \"%s\" does not exist" +msgstr "" + msgid "The style of dates used for this person." msgstr "El estilo de fechas usado por esta persona." @@ -1116,7 +1207,9 @@ msgstr "La clave de acceso del usuario para acceder al sistema." msgid "The username must not be blank, and may not contain a slash" -msgstr "El nombre de usuario no puede estar en blanco, y no debe contener diagonales." +msgstr "" +"El nombre de usuario no puede estar en blanco, y no debe contener " +"diagonales." msgid "There was an error reading from the database." msgstr "Ocurrió un error al leer la base de datos." @@ -1125,38 +1218,53 @@ msgstr "Ocurrió un error al escribir en la base de datos." msgid "" -"This operation does the following:

    • check valid groups in LDAP directory
    • check groups " -"in DAViCal
    then
    • if a group is present in DAViCal but not in LDAP set as inactive in " -"DAViCal
    • if a group is present in LDAP but not in DAViCal create the group in DAViCal
    • " -"
    • if a group in present in LDAP and DAViCal then update information in DAViCal
    " -msgstr "" -"Esta operación hace lo sigiente:
    • verificar los grupos en el directorio LDAP
    • checar los " -"grupos en DAViCal
    luego