Commit Graph

271 Commits

Author SHA1 Message Date
Ralf Becker
b599d4a4e2 using maximum of cal_modified and cal_user_modified for iCal LAST-MODIFIED too 2011-10-23 08:31:44 +00:00
Ralf Becker
8096c34bef - fixed ORGANIZER/ATTENDEE in iCal for CalDAV:
+ do NOT use ORGANIZER for events without further participants or a different organizer
+ do not include event owner/ORGANIZER as participant in his own calendar, if he is only participant
--> all other cases include ORGANZIER and additional as ATTENDEE (tested with iCal on iOS and OS X)
- implemented schedule-tag and If-Schedule-Tag-Match header from CalDAV Scheduling
- allow to change participant status and add/remove alarms with schedule-tag instead of ETag
--> If-Schedule-Tag-Match header has precedence over If-Match (ETag) header, but limits changes to participant status and alarms
--> ToDo: test accepting, rejecting recurrences
2011-10-20 20:10:04 +00:00
Ralf Becker
512138ed56 diverse fixes for resources&locations, thought iCal only autocompletes locations, no idea why it skips resources, thought resources booked via webgui are shown correct 2011-10-17 15:36:28 +00:00
Ralf Becker
a949acf031 locations and resources principal tree, should allow (untested!) to add resources via iCal autocomplate and "subscribe" to resource calendars 2011-10-16 08:53:07 +00:00
Ralf Becker
49a6cdd34d reverting accidental commit r36964 2011-10-16 08:51:11 +00:00
Ralf Becker
377a32ef7a not announcing DAV level 2, as we dont support locking 2011-10-16 08:49:29 +00:00
Ralf Becker
c2f74d0c72 * CalDAV: fixed wrong VTIMEZONE component generated (has to be in UTC), probably fixes bug #2984: Problem with VTIMEZONE component generated for NZ 2011-10-08 18:40:29 +00:00
Ralf Becker
b2ea1a7d05 new method groupdav_principals::url2uid to convert a principal url to a calendar uid, fixes emclient uses urn:uuid urls in outbox posts to get freebusy 2011-10-07 06:02:30 +00:00
Ralf Becker
175197d7c0 * CalDAV: no METHOD:PUBLISH for CalDAV outside the inbox 2011-10-03 12:53:28 +00:00
Ralf Becker
58f4cc1405 * CalDAC fix for aCal Android client sending DTSTART+DURATION instead of DTSTART+DTEND
- for new events, allways add owner as participant. Users expect to participate too, if they invite further participants
2011-10-03 09:43:06 +00:00
Ralf Becker
df1d9e81b2 - implemented regular CalDAV free-busy-query report
- fixed FBTYPE for tentative accepted invitations: BUSY-TENTATIVE
- fixed typo stalling outbox free-busy request
2011-09-22 19:49:01 +00:00
Ralf Becker
c26fcffda7 first step for CalDAV scheduling
- principal reports scheduling-inbox-URL /<username>/inbox/ and scheduling-outbox-URL /<username>/outbox/
- outbox collection contains no events
- outbox correctly answers POST for freebusy information
- outbox respons to all other POST with "204 No Content", ignore client request to deliver invitations
- inbox collection contains events of unknown status (PARTSTAT=NEEDS-ACTION)
- inbox responds to DELETE with "200 Ok"
--> iCal under OS X now shows freebusy times :-)
(had to add "write-content" privilege for calendar collections user has edit rights for, to allow adding events)
2011-09-22 15:22:52 +00:00
Ralf Becker
d2a87d2de4 fixed Warning: DateTime::modify(): Failed to parse time string (1234.5 second) at position 7 (s): The timezone could not be found in the database, caused by second fraction 2011-08-11 08:41:13 +00:00
Jörg Lehrke
ef6393e8af * Fix RRULE parser (UTC fix) - Bug#2991@egroupware.org 2011-06-25 17:48:27 +00:00
Jörg Lehrke
6b084b40f9 * Fix RRULE parser (2nd part) - Bug#2991@egroupware.org 2011-06-25 14:15:16 +00:00
Jörg Lehrke
5e8e806651 * Fix RRULE parser - Bug#2991@egroupware.org 2011-06-25 12:13:36 +00:00
Ralf Becker
77a3342da6 * Calendar/CalDAV: use X-EGROUPWARE-UID only, if it resolves to same email (otherwise we are in trouble if different EGw installs talk to each other) 2011-05-26 16:46:23 +00:00
Ralf Becker
30259bfd4c * Calendar: fixed not included organizer in meeting request 2011-05-26 10:48:57 +00:00
Ralf Becker
b0949a3e65 return parsed organizer, as we need it in AS and it does not hurt other users of ical class 2011-04-28 17:56:44 +00:00
Ralf Becker
440bcb1235 * Calendar: fixed not working "use event TZ" pref for iCal exports and allways use event TZ for calendar notifications (NOT use file export pref.) 2011-04-11 10:59:59 +00:00
Ralf Becker
0bfd238e3f * CalDAV: store name part of URL from client PUT request, to fully comply with CalDAV spec 2011-04-06 19:26:10 +00:00
Ralf Becker
63e61442c9 * Calendar: fixed in some cases not updated alarms, if event got moved
- sending alarms to CalDAV/GroupDAV clients as offset, not fixed time like before
- only exception to the above are alarms for recuring events to Lightning, which must be absolute, as offset lead to infinit poping up alarms in Lightning
- update all alarm times of other users alarms too, when storing events, as they might not be included in the stored event
2011-03-07 13:49:08 +00:00
Ralf Becker
3bb9e89bcf * CalDAV/Lightning: fixed under some conditions infinit poping up alarms and user not able to add alarms
- Lightning pops up alarm, until Sequence/etag get updated: if user has no edit rights on an other users calendar, etag never got updated, now we update it
- fixed user was not able to add alarms via CalDAV, if he had no edit rights for event (was always possible in web UI)
- alarms from other users calendars are not included any more, as they make no sense but a lot of trouble
- fixed wrong condition on adding alarms, causing some alarms no being saved
2011-03-05 10:21:32 +00:00
Philip Herbert
4d3be13eec enable X-RECURRENCE-ID for Nokia S60 Devices 2010-11-04 10:46:56 +00:00
Jörg Lehrke
a85fdb55cd Allow to add events to group calendars via CalDAV 2010-09-29 16:54:16 +00:00
Ralf Becker
1e79225a29 removed explicit var parameter from Horde_iCalendar $component parameter of _ical2egw_callback, as all object are passed by reference in PHP5+, but usage via call_user_func_array(), gives warning as no (explicit) var parameters are allowed 2010-09-15 13:10:29 +00:00
Jörg Lehrke
f91095f2ec Fix EXDATE issue for Apple devices 2010-08-26 20:28:54 +00:00
Jörg Lehrke
44c3c7eb9a Improve iPhone iCal support 2010-08-15 06:42:05 +00:00
Jörg Lehrke
d4985709c5 Fix recurrence enddate issue 2010-08-15 06:34:16 +00:00
Jörg Lehrke
0f284a0bfb Disable Thunderbird special treatment 2010-08-08 21:52:44 +00:00
Ralf Becker
c7bc0fbd82 using created and modified timestamps from calendar, and not reading them separate from egw_content_history table 2010-08-05 17:57:59 +00:00
Jörg Lehrke
c9e1b56d2d Fix vCalendar v1.0 EXDATE export 2010-07-05 19:05:54 +00:00
Jörg Lehrke
2bfebbdb7f Improve group invitation handling 2010-06-28 05:08:22 +00:00
Jörg Lehrke
bce68a9e82 Fix CalDAV group attendee issue; various GroupDAV improvements 2010-06-27 22:16:22 +00:00
Jörg Lehrke
c6b0f825d9 Fix SyncML replace and recur_enddate issue 2010-06-26 15:58:33 +00:00
Jörg Lehrke
48bc5c8119 Remove user as attendee, if he is the only participant and has accepted 2010-06-23 15:54:07 +00:00
Jörg Lehrke
7b850eabb6 Fix recurring event issues for vCal 1.0 imports; fix bug Stylite #646 2010-06-23 14:52:55 +00:00
Jörg Lehrke
b94e897717 Optimze alarm handling 2010-06-18 13:44:50 +00:00
Jörg Lehrke
1800367a2d Fix iCalendar v1.0 TZ issue 2010-06-14 14:54:24 +00:00
Jörg Lehrke
f54410da4f Fix recurrence enddate again 2010-06-11 22:13:27 +00:00
Jörg Lehrke
65e7054869 Fix recurrence enddate for vCalendar 1.0 2010-06-11 12:16:58 +00:00
Jörg Lehrke
0f00bb08a2 Set recurrence enddate to end time and use device TZ for vCalendar 1.0 2010-06-11 06:19:22 +00:00
Jörg Lehrke
82455c87a6 Newer Nokia E-Series SyncML supported fields default 2010-06-07 12:50:17 +00:00
Philip Herbert
f6e5b9de41 recognize Nokia e72-1 and e51-1 as s60 phone (supported fields) 2010-06-07 10:26:00 +00:00
Ralf Becker
13463578f5 using already read event to check acl (and not just the id causing a read) 2010-06-01 09:24:10 +00:00
Jörg Lehrke
e4d0b6737c Fix egw_ical iterator issues 2010-05-21 06:18:52 +00:00
Jörg Lehrke
4c1e3a9e70 Fix CalDAV series event handling 2010-05-19 16:13:37 +00:00
Jörg Lehrke
8cb71dfc84 Allow upgrade of single events to series via SyncML/CalDAV 2010-05-19 09:20:15 +00:00
Jörg Lehrke
2552476036 Special Lightning CalDAV treatment 2010-05-18 14:41:22 +00:00
Jörg Lehrke
e8298f217f Fix iCal attendee CN issue 2010-05-18 10:04:29 +00:00
Jörg Lehrke
5623866894 Fix monthly recurrence issue (bug#2584) 2010-05-14 10:17:11 +00:00
Jörg Lehrke
dc8b3f2dec Fix 'non_blocking' issue (especially for Nokia) 2010-05-14 09:28:46 +00:00
Jörg Lehrke
362afdb312 Fix GroupDAV private event issue 2010-05-14 08:35:16 +00:00
Jörg Lehrke
015173f608 Fix email-only attendees issue 2010-05-14 08:06:08 +00:00
Jörg Lehrke
0d13079a46 Fix supportedFields settings for Nokia devices 2010-04-26 07:29:51 +00:00
Jörg Lehrke
a707c183f3 Export all-day events as 'EVENT' to Nokia devices 2010-04-23 14:38:07 +00:00
Jörg Lehrke
22bb23b8ff Fix new all-day event handling 2010-04-23 13:52:45 +00:00
Jörg Lehrke
fe5d9f305b Fix iCal export of incomplete events again .-( 2010-04-23 11:03:32 +00:00
Jörg Lehrke
4cb30032ba Fix iCal export from calendar list view 2010-04-23 10:34:47 +00:00
Jörg Lehrke
c5c5330799 Add Nokia 5800 XpressMusic to supported devices 2010-04-23 07:06:42 +00:00
Jörg Lehrke
e339b3626c Support old SyncML preference settings 2010-04-16 07:04:53 +00:00
Jörg Lehrke
2b9198e8f7 Fix SyncML preferences 2010-04-14 16:40:54 +00:00
Jörg Lehrke
d3ad7cae78 Fix undefined status issue 2010-04-14 14:44:21 +00:00
Ralf Becker
239793470b adding an iterator for iCal files to minimize memory footprint on import of huge iCal files (not yet used for iCal data supplied as string, eg. from SyncML, as calendar_ical::importVCal uses count() and array access to returned components/events, and not just looping over it via foreach) 2010-04-14 10:19:41 +00:00
Jörg Lehrke
15e379249f Fix group participant issue 2010-04-12 07:20:11 +00:00
Jörg Lehrke
b0532e4ac2 Fix group participant localization issue 2010-04-12 06:31:30 +00:00
Jörg Lehrke
0dfb44228c Fix SyncML preferences 2010-03-24 11:37:22 +00:00
Jörg Lehrke
42a09eda30 Add configurable client character set for SyncML & various fixes 2010-03-22 18:03:23 +00:00
Ralf Becker
57adecd8ff fixed after r29540 broken install:
- calling egw_time::getTimezones() not possible during setup time -->
  stalling all installs
- using tz_id=1 for a default is not possible, as that's the first
  regular tz_id on new install --> using '0' now
- added translation for that new calendar setting
2010-03-22 14:20:19 +00:00
Jörg Lehrke
7f2e37b5eb Configurable timezone for file export of calendar data 2010-03-17 16:57:03 +00:00
Jörg Lehrke
8b5dfcb926 Fix CLASS:PRIVATE issue 2010-03-15 17:18:17 +00:00
Jörg Lehrke
0978663ada Fix Funambol STATUS issue 2010-03-08 13:54:13 +00:00
Jörg Lehrke
a8804a44ef GroupDAV updates 2010-03-06 23:06:43 +00:00
Christian Binder
b39c0affba revert nonsense commit from jaytraxx 2010-03-02 18:21:50 +00:00
Christian Binder
fcc50858ee set whole day flag on import if necessary - this is needed for better recognition in bo class 2010-03-01 15:37:59 +00:00
Jörg Lehrke
0412ebbb33 Set ORGANIZER for KDE 2010-02-26 15:39:46 +00:00
Jörg Lehrke
c816b4188e Fix (pseudo) exception handling in CalDAV 2010-02-26 12:37:07 +00:00
Jörg Lehrke
b2b8b35383 Fix various recurring event issues 2010-02-24 15:05:00 +00:00
Jörg Lehrke
85b6ba5ef0 Cleanup issues found during backport 2010-02-23 18:19:12 +00:00
Jörg Lehrke
08dbf52b66 Fix typos and code cleanup 2010-02-22 10:02:33 +00:00
Jörg Lehrke
21ccdd5f28 Fix various synchronization issues (SyncML & CalDAV) 2010-02-17 13:29:28 +00:00
Jörg Lehrke
52ea4512ca Improve find_event() again 2010-02-11 07:33:32 +00:00
Jörg Lehrke
b6097fa156 SyncML Content Handling
* Improved find-methods
* Timezone support for InfoLog
* SyncML Preferences
    - addressbook and address list are now joined
    - Primary User Group for addressbook and calendar
* SlowSync uses old mapping information (can be disabled within the preferences)
2010-02-09 21:56:39 +00:00
Jörg Lehrke
32639bd47e Major SyncML Calendar update
- SIFE support improved
  - various vCalendar 1.0 issues fixed
  - device specific timezone support for recurring events
  - pseudo exception handling improvements
2010-01-29 21:42:54 +00:00
Christian Binder
98fe270524 fixed catching value from non-existing var 2010-01-23 09:53:38 +00:00
Jörg Lehrke
14e7c0cd87 Add filter to calendar_so::get_recurrence_exceptions() method 2010-01-14 17:01:30 +00:00
Jörg Lehrke
023b5979dd Enable SIFE again 2010-01-13 20:48:39 +00:00
Jörg Lehrke
6bf3be83fc Fix empty EXDATE issue 2010-01-13 06:17:30 +00:00
Jörg Lehrke
b358505359 Fix vCal 1.0 RRULE issues again :-o 2010-01-12 18:31:53 +00:00
Jörg Lehrke
c8b5f589b6 Fix vCal 1.0 RRULE issue again ;-( 2010-01-12 15:08:15 +00:00
Jörg Lehrke
0f88cd4553 Fix vCal 1.0 RRULE issue 2010-01-12 13:54:30 +00:00
Jörg Lehrke
3bb60af5f1 Enforce SINGLE, if detected; cleanup logging again 2010-01-11 18:15:44 +00:00
Jörg Lehrke
548f5f8c98 Fix various issues introduced with Funambol adjustments; code cleanup 2010-01-10 19:02:16 +00:00
Jörg Lehrke
70aee0a67d Fix task priorities for Funambol WM Client 2010-01-09 22:28:41 +00:00
Jörg Lehrke
3242e169cc More Funambol adjustments and workarounds 2010-01-09 18:04:21 +00:00
Jörg Lehrke
49823ecd7e Fix encoding issues; improvements for Funambol clients 2010-01-08 13:09:36 +00:00
Jörg Lehrke
d82ca7378b Fix recur_enddate during import/export 2010-01-05 18:06:07 +00:00
Jörg Lehrke
ac7424612e Calculate the EGw recur_enddate properly 2010-01-05 11:24:27 +00:00
Christian Binder
946ecb41b2 substract only one second from incoming whole day events because EGw stores whole day events with DTEND 23:59:59 2010-01-04 13:56:20 +00:00
Christian Binder
80f9969ee3 fixed wrong indents 2010-01-02 13:25:58 +00:00
Christian Binder
43190660a4 implemented different priority values for funambol/outlook clients since outlook does not support the RFC defined PRIORITY values, fixed some typos 2009-12-29 13:51:07 +00:00
Christian Binder
3546f1057d call groupdav::fix_series() really just for groupdav clients 2009-12-27 15:49:40 +00:00
Ralf Becker
dd0a5c1b13 Fixed CalDAV/GroupDAV to include all exceptions of a series in the
resource of the series master. Now the status of single recurrences of a
serie are send to the clients as (virtual) exceptions as Jaytrax&Joerg
implemented it already for SyncML.
The implementation is unfortunately a little different, as CalDAV
differs from SyncML and I dont know the SyncML part that well. Maybe we
can re-unify the code again together.
Tested so far with Tb3/Lightning1.0b and a little with iPhone.
Please let me know, if you run into problems with other clients.
2009-12-27 04:21:33 +00:00
Jörg Lehrke
d6da8d8980 Fix yearly recurrence issue for version 1.0 2009-12-06 18:04:08 +00:00
Jörg Lehrke
8f0bd9a5dc Fix recurrence UNTIL calculation 2009-12-04 15:38:23 +00:00
Jörg Lehrke
e7ec189ea4 Use ['egw_info']['server']['server_timezone'] to reset server timezone 2009-12-03 08:28:45 +00:00
Jörg Lehrke
dd92e60180 Use UID for find_content(); code cleanups 2009-12-01 10:24:55 +00:00
Jörg Lehrke
738726abf1 Adjust group attendee handling 2009-11-29 21:03:17 +00:00
Jörg Lehrke
a0e1a238dd Optimized SyncML memory footprint; fixes various filter issues 2009-11-29 14:03:45 +00:00
Christian Binder
96c5fc3184 quietened logging 2009-11-27 08:33:10 +00:00
Jörg Lehrke
3d93128777 Enforce configured device timezone during import 2009-11-27 06:47:21 +00:00
Jörg Lehrke
6a7b07e3c6 New PARTICIPANT/ORGANIZER schema 2009-11-26 18:36:19 +00:00
Christian Binder
8ae3b5f833 fixed empty RECURRENCE-ID on ical export 2009-11-23 13:03:35 +00:00
Jörg Lehrke
cb9ea723c6 Set VTIMEZONE DTSTART entries properly 2009-11-19 13:30:30 +00:00
Jörg Lehrke
1b20783041 Fix Yearly RRULE Issue with Funambol Outlook Sync Client 2009-11-19 11:52:41 +00:00
Jörg Lehrke
4088b81c5c Impoved support for recurrences if device timezone differs from event timezone 2009-11-19 10:13:17 +00:00
Jörg Lehrke
9e6d97f106 Fix VTZIMEZONE DTSTART Issue 2009-11-19 07:52:42 +00:00
Christian Binder
16538f4f9d use check_perms() on ical export and merge categories on import 2009-11-18 14:46:25 +00:00
Jörg Lehrke
86d648a995 Set event['tzid'] for clients using UTC timestamps 2009-11-16 17:28:34 +00:00
Ralf Becker
5d1fd4aedb "timezone of events in iCal class depend on $date_format parameter (depending on device type)" 2009-11-13 07:52:06 +00:00
Jörg Lehrke
db25947a38 Use new rrule iterator class for RRULE generation 2009-11-12 19:08:23 +00:00
Jörg Lehrke
014119f075 Add device specific timezone settings 2009-11-11 21:31:33 +00:00
Ralf Becker
9df8b0bdbf new static calendar_timezones::DateTimeZone($tzid) method returning a
DateTimeZone object resolving by PHP not supported Windows timezones
with their standard alias
2009-11-10 20:07:33 +00:00
Ralf Becker
85bf743434 "Using VTIMEZONE component from new calendar_timezones class (imported sqlite DB from Lighting) for exports and importing TZID from iCals.
Horde Code already uses VTIMEZONE component to return times in servertime, no need to change anything there."
2009-11-10 15:08:35 +00:00
Jörg Lehrke
7198ed861f make code more comprehensible 2009-11-06 15:44:04 +00:00
Jörg Lehrke
bacca46078 Fix Alarm Inport Issues 2009-11-03 16:31:07 +00:00
Jörg Lehrke
85a9a06a96 Only one VTIMEZONE per VCALENDAR; Export Alarms again 2009-10-30 21:39:19 +00:00
Jörg Lehrke
a87fc26aa7 Fix RRULE issue for vCal 1.0; Fix timestamps with TZ issue 2009-10-29 19:42:32 +00:00
Jörg Lehrke
6d3bf02d1c Pseudo recurrence exception handling hacks; vCal 1.0 extensions 2009-10-25 18:22:01 +00:00
Jörg Lehrke
a11565ec9c Fix VTIMEZONE RRULE issue and be more compliant with standard 2009-10-19 20:46:23 +00:00
Ralf Becker
a3c57c48b3 "fixed typo reported in bug #2302 - Error while imported iCal file (PHP Error)" 2009-10-12 15:44:52 +00:00
Jörg Lehrke
6f780041fa Fix VTIMEZONE handling 2009-10-09 18:20:13 +00:00
Christian Binder
49de506d6f also export servertime if event has no recur_enddate - it could be a weekly or monthly recurring event 2009-10-06 14:29:46 +00:00
Christian Binder
68dc2e4f47 also set date_format if servertime gets set - just for the case that it is used later 2009-10-06 13:20:41 +00:00
Christian Binder
14d4f08b36 added missing param date_format 2009-10-06 12:41:08 +00:00
Jörg Lehrke
1353ae511a Adds TZID/VTIMEZONE support for server timezone entries 2009-10-05 21:00:08 +00:00
Christian Binder
9621d17f28 make ical class ready to propagate a status only exception to a real exception. this is just successful if the user has ACL edit rights on the event - otherwise the propagation attempt gets ignored. additionaly added some logical fixes 2009-10-01 13:30:18 +00:00
Christian Binder
bbe301095e fixed alarm handling: dont touch / ignore alarms being set for all users or alarms of other users since most clients do not know specific owners for alarms 2009-09-23 08:08:37 +00:00
Christian Binder
5602cac698 complete rework of the ical import part: removed unclear 1:N relations, introduced get_event_info method which completely classifies incoming events first, removed code duplicates, re-organized importVCal() to have a more linear code structure and to make debugging easier in future. -- please forgive me if i may have introduced some bugs with that but its a huge change --" 2009-09-22 13:43:55 +00:00
Christian Binder
b3f5fc282b removed init of unused var minimum_uid_lenght in importVCal() 2009-08-26 12:14:41 +00:00
Jörg Lehrke
c902314499 Fixes user status update issue 2009-08-24 17:22:05 +00:00
Jörg Lehrke
babe8f056c * Adapted to new database schema with reference/recurrence
* Group invitation handling
* Fixes for pseudo recurrences
2009-08-23 19:26:14 +00:00
Christian Binder
45dfa1ab0d fix: new supported field "recurrence" was named "reference" 2009-08-17 10:34:22 +00:00
Ralf Becker
bb5511cc9f - methods to combine and split status, quantity and role
- $ignore_acl parameter for calendar_boupdate::delete()
- removed setting owner always as participant: owner is allowed to
  remove himself as participant from an event
  (owner only get's set, if there are no other participants in BO)
2009-08-06 11:29:05 +00:00
Ralf Becker
7742b606f8 "- storing and setting ROLE
- storing and setting resource quantity as X-EGROUPWARE-QUANTITY"
2009-08-04 17:37:49 +00:00
Ralf Becker
5aa62b71b9 "- first step of using new recurrence field
- fixed some wrong idention"
2009-07-28 08:58:39 +00:00
Nigel Vickers
7d2308bedf add switch based logging to default file /tmp/log-vcal or if set ['server']['temp_dir']./log-vcal 2009-07-24 14:18:57 +00:00
Ralf Becker
86db825cbf "more RECURRENCE-ID stuff:
- disabling it on import, as we cant overwrite a cal_id with a timestamp
- fixing it on export, finding the closest exception to return it
- using array_merge to merge virtual and real exceptions, as + overwrites numeric keys"
2009-07-17 12:08:45 +00:00
Ralf Becker
0e3f456fe1 "RECURRENCE-ID: $event['reference'] is a calendar_id, not a timestamp" 2009-07-17 10:15:22 +00:00
Jörg Lehrke
9f377914c9 fix recurrence exception issue 2009-07-16 19:42:50 +00:00