View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002716 | SOGo | Backend Calendar | public | 2014-04-15 09:55 | 2016-12-22 20:56 |
Reporter | mbi | Assigned To | ludovic | ||
Priority | high | Severity | major | Reproducibility | always |
Status | resolved | Resolution | duplicate | ||
Platform | [Client] Apple | OS | iOS | OS Version | 7 |
Product Version | 2.2.3 | ||||
Target Version | 2.3.7 | ||||
Summary | 0002716: Wrong time/timezone for Calendar Invite when accepted on iPhone, OK when accepted on Thunderbird | ||||
Description | User was invited to an event from someone (running Exchange) on the West Coast (PST). The external organizer set the event time to 8:00am PST. She accepted the event on her iPhone 5 (running iOS 7.1). The event was added to her calendar, but shows in both their iPhone and Thunderbird+Integrator as being scheduled for 8:00am EST, when it should show 11:00am EST. Timezone is set correctly in iPhone, Thunderbird and SOGo, and interestingly the event also displays incorrectly in the SOGo web UI, but it shows as scheduled for 4:00am (different from the iPhone or Thunderbird). | ||||
Steps To Reproduce |
| ||||
Additional Information | Here is the Event Source for an event that was accepted on her iPhone that displays the incorrect time: ***** Begin Event Source BEGIN:VCALENDAR **** End Event Source | ||||
Tags | No tags attached. | ||||
I'm opening a new bug for this, since my initial report/assessment was incorrect, and there is no way to edit the Summary or Description of bugs in this bug system after it has been created (would still really like to know why this is). Would someone please close bug 0002707 and link it to this one? |
|
In the prio bug, Christian noted from the Event Source: "This event does not contain a timezone at all!!! Start and End are not in GMT/UTC either (mizzing 'Z'-character at the end): SOGo seems to read these as GMT/UTC. But more important, who stripped the timezone in such a crappy way?" to shich Ludovic responded: "SOGo will read them as local time, not UTC. It would read them as UTC if a Z was ending the date-time." So, since the Event is correctly handled by Thunderbird+Integrator, the timezone must be there initially, so the bug obviously is in the CalDAV interaction between iPhone/iOS and SOGo backend. Now the only question is, is the bug in iOS or SOGo? If iOS, is there anything that can be done to work around it in SOGo? If not, do you guys have any relationship(s) with Apple Devs for reporting the problem? |
|
Seems http://www.sogo.nu/bugs/view.php?id=2865 is duplicate of this bug. Much info has been given there, please, look at it. I've attached a patch that partly fixes the issue (using Lightning logic) - after applying, event pop-ups and event-edition dialogs show correct time, excepting that local-time is server local-time, not user local-time (as it should be). To use user's local time something like this could be used: #import <NGObjWeb/WOContext+SoObjects.h> But this gives me errors like: Anyway, this is only a partial fix, as day-week-month table view still uses original SOGo logic. Developers, please, tell me, where can I find a place in the code to change the table view? |
|
iCalDateTime.m.patch (1,941 bytes)
--- iCalDateTime.m.orig 2015-09-16 23:56:55.000000000 +0300 +++ iCalDateTime.m 2015-11-12 16:25:56.414120935 +0300 @@ -87,9 +87,13 @@ tzId = [self value: 0 ofAttribute: @"tzid"]; if ([tzId length]) { - calendar - = (iCalCalendar *) [self searchParentOfClass: [iCalCalendar class]]; - timeZone = [calendar timeZoneWithId: tzId]; + timeZone = [iCalTimeZone timeZoneForName: tzId]; + if (!timeZone) + { + calendar + = (iCalCalendar *) [self searchParentOfClass: [iCalCalendar class]]; + timeZone = [calendar timeZoneWithId: tzId]; + } //if (!timeZone) //[self logWithFormat: @"timezone '%@' not found in calendar", tzId]; } @@ -163,7 +167,7 @@ NSCalendarDate *initialDate, *dateTime; NSArray *subValues; NSMutableArray *dates; - //NSTimeZone *tz; + NSTimeZone *tz; unsigned count, i; subValues = [self valuesAtIndex: 0 forKey: @""]; @@ -172,32 +176,29 @@ for (i = 0; i < count; i++) { date = [subValues objectAtIndex: i]; - iTZ = [self timeZone]; - if (iTZ) - dateTime = [iTZ dateForDateTimeString: date]; - else + initialDate = [date asCalendarDate]; + if (initialDate) { - initialDate = [date asCalendarDate]; - if (initialDate) + if ([date hasSuffix: @"Z"] || [date hasSuffix: @"z"]) dateTime = initialDate; - /* + else { - if ([date hasSuffix: @"Z"] || [date hasSuffix: @"z"]) - dateTime = initialDate; + iTZ = [self timeZone]; + if (iTZ) + dateTime = [iTZ dateForDateTimeString: date]; else { - // same TODO as above tz = [NSTimeZone defaultTimeZone]; dateTime = [initialDate addYear: 0 month: 0 day: 0 hour: 0 minute: 0 second: -[tz secondsFromGMTForDate: initialDate]]; - } + } } - */ - else - dateTime = nil; } + else + dateTime = nil; + if (dateTime) [dates addObject: dateTime]; } |
|
Closing this one for now, we'll track only 2865 as more details are in there. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2014-04-15 09:55 | mbi | New Issue | |
2014-04-15 09:56 | mbi | Note Added: 0006899 | |
2014-04-15 10:08 | mbi | Note Added: 0006901 | |
2014-04-16 10:05 | Christian Mack | Relationship added | duplicate of 0002707 |
2014-09-12 15:26 | ludovic | Target Version | => 2.2.9 |
2014-09-26 13:37 | ludovic | Target Version | 2.2.9 => 2.2.10 |
2014-11-07 20:41 | ludovic | Target Version | 2.2.10 => 2.2.11 |
2014-12-04 19:30 | ludovic | Target Version | 2.2.11 => 2.2.12 |
2014-12-18 14:38 | ludovic | Target Version | 2.2.12 => 2.2.13 |
2014-12-30 15:28 | ludovic | Target Version | 2.2.13 => 2.2.14 |
2015-01-20 16:23 | ludovic | Target Version | 2.2.14 => 2.2.15 |
2015-01-30 18:10 | ludovic | Target Version | 2.2.15 => 2.2.16 |
2015-02-12 16:15 | ludovic | Target Version | 2.2.16 => 2.2.17 |
2015-03-24 18:25 | francis | Target Version | 2.2.17 => 2.3.0 |
2015-05-12 19:51 | ludovic | Target Version | 2.3.0 => 2.3.1 |
2015-07-23 17:44 | ludovic | Target Version | 2.3.1 => 2.3.2 |
2015-09-16 19:20 | ludovic | Target Version | 2.3.2 => 2.3.3 |
2015-11-11 14:23 | ludovic | Target Version | 2.3.3 => 2.3.4 |
2015-11-12 13:56 | Sergey Urushkin | Note Added: 0009093 | |
2015-11-12 14:01 | Sergey Urushkin | File Added: iCalDateTime.m.patch | |
2015-12-16 16:08 | ludovic | Target Version | 2.3.4 => 2.3.5 |
2016-01-07 14:56 | ludovic | Target Version | 2.3.5 => 2.3.6 |
2016-01-18 18:20 | ludovic | Target Version | 2.3.6 => 2.3.7 |
2016-12-22 20:56 | ludovic | Note Added: 0011098 | |
2016-12-22 20:56 | ludovic | Relationship added | duplicate of 0002865 |
2016-12-22 20:56 | ludovic | Status | new => resolved |
2016-12-22 20:56 | ludovic | Resolution | open => duplicate |
2016-12-22 20:56 | ludovic | Assigned To | => ludovic |