Ver Fonte

eventmanager prunedCache

Adam Shaw há 9 anos atrás
pai
commit
07f702eab9
2 ficheiros alterados com 12 adições e 5 exclusões
  1. 11 4
      src/EventManager.js
  2. 1 1
      src/common/View.js

+ 11 - 4
src/EventManager.js

@@ -43,6 +43,7 @@ function EventManager() { // assumed to be a calendar
 	var sources = [ stickySource ];
 	var rangeStart, rangeEnd;
 	var cache = []; // holds events that have already been expanded
+	var prunedCache; // like cache, but only events that intersect with rangeStart/rangeEnd
 
 
 	$.each(
@@ -62,16 +63,22 @@ function EventManager() { // assumed to be a calendar
 			return fetchEvents(start, end);
 		}
 		else {
-			return Promise.resolve(cache);
+			return Promise.resolve(prunedCache);
 		}
 	}
 
 
 	function reportEventChange() {
-		t.trigger('eventsReset', filterEventsWithinRange(cache));
+		prunedCache = filterEventsWithinRange(cache);
+		t.trigger('eventsReset', prunedCache);
 	}
 
 
+	t.getPrunedEventCache = function() {
+		return prunedCache;
+	};
+
+
 	function filterEventsWithinRange(events) {
 		var filteredEvents = [];
 		var i, event;
@@ -152,9 +159,9 @@ function EventManager() { // assumed to be a calendar
 					sourcesResults[i]);
 			}
 
-			reportEventChange();
+			reportEventChange(); // updates prunedCache
 
-			return cache;
+			return prunedCache;
 		});
 	}
 

+ 1 - 1
src/common/View.js

@@ -846,7 +846,7 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
 
 
 	getCurrentEvents: function() {
-		return this.calendar.clientEvents();
+		return this.calendar.getPrunedEventCache();
 	},