Bladeren bron

fix a bunch of gcal bugs

Adam Shaw 7 jaren geleden
bovenliggende
commit
98e6d65016
2 gewijzigde bestanden met toevoegingen van 13 en 18 verwijderingen
  1. 12 17
      plugins/gcal/main.ts
  2. 1 1
      tests/automated/legacy/events-gcal.js

+ 12 - 17
plugins/gcal/main.ts

@@ -1,5 +1,5 @@
 import * as request from 'superagent'
-import { registerEventSourceDef, refineProps, addDays } from 'fullcalendar'
+import { registerEventSourceDef, refineProps, addDays, DateEnv } from 'fullcalendar'
 
 // TODO: expose somehow
 const API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'
@@ -104,7 +104,7 @@ function buildUrl(meta) {
 }
 
 
-function buildRequestParams(range, apiKey: string, extraParams, dateEnv) {
+function buildRequestParams(range, apiKey: string, extraParams, dateEnv: DateEnv) {
   let params
   let startStr
   let endStr
@@ -130,31 +130,27 @@ function buildRequestParams(range, apiKey: string, extraParams, dateEnv) {
     maxResults: 9999
   }
 
+  if (dateEnv.timeZone !== 'local') {
+    params.timeZone = dateEnv.timeZone
+  }
+
   return params
 }
 
 
-function gcalItemsToRawEventDefs(items, gcalTimeZone) {
+function gcalItemsToRawEventDefs(items, gcalTimezone) {
   return items.map((item) => {
-    return gcalItemToRawEventDef(item, gcalTimeZone)
+    return gcalItemToRawEventDef(item, gcalTimezone)
   })
 }
 
 
-function gcalItemToRawEventDef(item, gcalTimeZone) {
+function gcalItemToRawEventDef(item, gcalTimezone) {
   let url = item.htmlLink || null
-  let extendedProps = {}
 
   // make the URLs for each event show times in the correct timezone
-  if (url && gcalTimeZone) {
-    url = injectQsComponent(url, 'ctz=' + gcalTimeZone)
-  }
-
-  if (
-    typeof item.extendedProperties === 'object' &&
-    typeof item.extendedProperties.shared === 'object'
-  ) {
-    extendedProps = item.extendedProperties.shared
+  if (url && gcalTimezone) {
+    url = injectQsComponent(url, 'ctz=' + gcalTimezone)
   }
 
   return {
@@ -164,8 +160,7 @@ function gcalItemToRawEventDef(item, gcalTimeZone) {
     end: item.end.dateTime || item.end.date, // same
     url: url,
     location: item.location,
-    description: item.description,
-    extendedProps
+    description: item.description
   }
 }
 

+ 1 - 1
tests/automated/legacy/events-gcal.js

@@ -81,7 +81,7 @@ describe('Google Calendar plugin', function() {
   it('request/receives correctly when named timezone, defaults to not editable', function(done) {
     options.googleCalendarApiKey = API_KEY
     options.events = { googleCalendarId: HOLIDAY_CALENDAR_ID }
-    options.timeZone = 'America/New York'
+    options.timeZone = 'America/New_York'
     options._eventsPositioned = function() {
       var events = currentCalendar.getEvents()
       var eventEls = $('.fc-event')