浏览代码

fix for timezone changing with static arrays

Adam Shaw 9 年之前
父节点
当前提交
ac4ca27da9
共有 2 个文件被更改,包括 29 次插入2 次删除
  1. 1 0
      src/Calendar.js
  2. 28 2
      src/EventManager.js

+ 1 - 0
src/Calendar.js

@@ -1009,6 +1009,7 @@ function Calendar_constructor(element, overrides) {
 				return;
 			}
 			else if (optionName === 'timezone') {
+				t.rezoneArrayEventSources();
 				refetchEvents();
 				return;
 			}

+ 28 - 2
src/EventManager.js

@@ -582,7 +582,7 @@ function EventManager() { // assumed to be a calendar
 
 		reportEvents(cache);
 	}
-	
+
 	
 	function clientEvents(filter) {
 		if ($.isFunction(filter)) {
@@ -596,7 +596,33 @@ function EventManager() { // assumed to be a calendar
 		}
 		return cache; // else, return all
 	}
-	
+
+
+	// Makes sure all array event sources have their internal event objects
+	// converted over to the Calendar's current timezone.
+	t.rezoneArrayEventSources = function() {
+		var i;
+		var events;
+		var j;
+
+		for (i = 0; i < sources.length; i++) {
+			events = sources[i].events;
+			if ($.isArray(events)) {
+
+				for (j = 0; j < events.length; j++) {
+					rezoneEventDates(events[j]);
+				}
+			}
+		}
+	};
+
+	function rezoneEventDates(event) {
+		event.start = t.moment(event.start);
+		if (event.end) {
+			event.end = t.moment(event.end);
+		}
+		backupEventDates(event);
+	}
 	
 	
 	/* Event Normalization