-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support use of timezones specified in ICS #579
Support use of timezones specified in ICS #579
Conversation
73e1714
to
1d3e74b
Compare
Pull Request Test Coverage Report for Build 4377790006
💛 - Coveralls |
1d3e74b
to
70d6702
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, with one comment. I imagine that in a large file we may have quite a few timezone lookups, caching on the root element avoids reinstanciating the Timezone
each time.
70d6702
to
b0443a9
Compare
if (prop.parent.name === 'standard' || prop.parent.name === 'daylight') { | ||
// Per RFC 5545 3.8.2.4 and 3.8.2.2, start/end date-times within | ||
// these components MUST be specified in local time. | ||
zone = Timezone.floating; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is Timezone.floating
defined?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may be an error on my part; it should probably be Timezone.localTimezone
.
There is currently no support in ical.js for using a timezone defined within an ICS file for datetimes within that same ICS file. Instead, we are reliant on the TZID used in the file matching one in our time zone database.
In order to prevent bloating the timezone service with one-off time zones or using conflicting definitions, this patch restricts time zones to a single component tree, storing them on the root component and retrieving them from there when referenced.