Adam Shaw 8 лет назад
Родитель
Сommit
3a96131c12
2 измененных файлов с 23 добавлено и 11 удалено
  1. 18 6
      src/Calendar.events-api.js
  2. 5 5
      src/models/EventManager.js

+ 18 - 6
src/Calendar.events-api.js

@@ -26,17 +26,29 @@ Calendar.mixin({
 	},
 
 
-	removeEventSources: function(sourceQuery) {
-		if (sourceQuery == null) {
+	removeEventSources: function(sourceMultiQuery) {
+		var eventManager = this.eventManager;
+		var sources;
+		var i;
+
+		if (sourceMultiQuery == null) {
 			this.eventManager.removeAllSources();
 		}
 		else {
-			this.removeEventSource(sourceQuery);
+			sources = eventManager.multiQuerySources(sourceMultiQuery);
+
+			eventManager.freeze();
+
+			for (i = 0; i < sources.length; i++) {
+				eventManager.removeSource(sources[i]);
+			}
+
+			eventManager.thaw();
 		}
 	},
 
 
-	removeEventSource: function(sourceQuery) { // can do multiple
+	removeEventSource: function(sourceQuery) {
 		var eventManager = this.eventManager;
 		var sources = eventManager.querySources(sourceQuery);
 		var i;
@@ -51,9 +63,9 @@ Calendar.mixin({
 	},
 
 
-	refetchEventSources: function(sourceQuery) {
+	refetchEventSources: function(sourceMultiQuery) {
 		var eventManager = this.eventManager;
-		var sources = eventManager.querySources(sourceQuery);
+		var sources = eventManager.multiQuerySources(sourceMultiQuery);
 		var i;
 
 		eventManager.freeze();

+ 5 - 5
src/models/EventManager.js

@@ -96,8 +96,8 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 	},
 
 
-	// like getEventSourcesByMatch, but accepts multple match criteria (like multiple IDs)
-	querySources: function(matchInputs) {
+	// like querySources, but accepts multple match criteria (like multiple IDs)
+	multiQuerySources: function(matchInputs) {
 
 		// coerce into an array
 		if (!matchInputs) {
@@ -114,7 +114,7 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 		for (i = 0; i < matchInputs.length; i++) {
 			matchingSources.push.apply( // append
 				matchingSources,
-				this.querySourceMatch(matchInputs[i])
+				this.querySources(matchInputs[i])
 			);
 		}
 
@@ -124,7 +124,7 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 
 	// matchInput can either by a real event source object, an ID, or the function/URL for the source.
 	// returns an array of matching source objects.
-	querySourceMatch: function(matchInput) {
+	querySources: function(matchInput) {
 		var sources = this.otherSources;
 		var i, source;
 
@@ -144,7 +144,7 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 		}
 
 		// parse as an event source
-		matchInput = EventSourceParser.parse(matchInput);
+		matchInput = EventSourceParser.parse(matchInput, this.stickySource.calendar); // ugh!!!
 		if (matchInput) {
 
 			return $.grep(sources, function(source) {