소스 검색

improvements to eventmanager

Adam Shaw 8 년 전
부모
커밋
73b2bbf852
1개의 변경된 파일16개의 추가작업 그리고 15개의 파일을 삭제
  1. 16 15
      src/Calendar.constraints.js

+ 16 - 15
src/Calendar.constraints.js

@@ -1,7 +1,3 @@
-/*
-TODO: caching. dont want to regenerate all these ranges
-twice if there are two events being dragged at once.
-*/
 
 
 Calendar.prototype.isEventFootprintAllowed = function(eventFootprint) {
 Calendar.prototype.isEventFootprintAllowed = function(eventFootprint) {
 	var eventDef = eventFootprint.eventInstance.eventDefinition;
 	var eventDef = eventFootprint.eventInstance.eventDefinition;
@@ -39,11 +35,13 @@ Calendar.prototype.isEventFootprintAllowed = function(eventFootprint) {
 Calendar.prototype.isSelectionFootprintAllowed = function(componentFootprint) {
 Calendar.prototype.isSelectionFootprintAllowed = function(componentFootprint) {
 	var selectAllowFunc;
 	var selectAllowFunc;
 
 
-	if (this.isFootprintAllowed(
-		componentFootprint,
-		this.opt('selectConstraint'),
-		this.opt('selectOverlap')
-	)) {
+	if (
+		this.isFootprintAllowed(
+			componentFootprint,
+			this.opt('selectConstraint'),
+			this.opt('selectOverlap')
+		)
+	) {
 		selectAllowFunc = this.opt('selectAllow');
 		selectAllowFunc = this.opt('selectAllow');
 
 
 		if (selectAllowFunc) {
 		if (selectAllowFunc) {
@@ -75,6 +73,7 @@ Calendar.prototype.isFootprintAllowed = function(
 		}
 		}
 	}
 	}
 
 
+	// TODO: somehow cache this for multiple calls that all share the same EventDefinition
 	overlapEventFootprints = this.getOverlappingEventFootprints(componentFootprint, subjectEventInstance);
 	overlapEventFootprints = this.getOverlappingEventFootprints(componentFootprint, subjectEventInstance);
 
 
 	if (overlapVal === false) {
 	if (overlapVal === false) {
@@ -158,15 +157,17 @@ Calendar.prototype.constraintValToFootprints = function(constraintVal) {
 
 
 
 
 Calendar.prototype.getOverlappingEventFootprints = function(componentFootprint, subjectEventInstance) {
 Calendar.prototype.getOverlappingEventFootprints = function(componentFootprint, subjectEventInstance) {
-	var peerEventFootprints = this.getPeerEventFootprints(componentFootprint, subjectEventInstance);
+	var peerEventFootprints = this.getPeerEventFootprints(subjectEventInstance);
 	var overlapEventFootprints = [];
 	var overlapEventFootprints = [];
 	var i;
 	var i;
 
 
 	for (i = 0; i < peerEventFootprints.length; i++) {
 	for (i = 0; i < peerEventFootprints.length; i++) {
-		if (this.footprintsIntersect(
-			componentFootprint,
-			peerEventFootprints[i].componentFootprint
-		)) {
+		if (
+			this.footprintsIntersect(
+				componentFootprint,
+				peerEventFootprints[i].componentFootprint
+			)
+		) {
 			overlapEventFootprints.push(peerEventFootprints[i]);
 			overlapEventFootprints.push(peerEventFootprints[i]);
 		}
 		}
 	}
 	}
@@ -175,7 +176,7 @@ Calendar.prototype.getOverlappingEventFootprints = function(componentFootprint,
 };
 };
 
 
 
 
-Calendar.prototype.getPeerEventFootprints = function(componentFootprint, subjectEventInstance) {
+Calendar.prototype.getPeerEventFootprints = function(subjectEventInstance) {
 	var peerEventDefs = subjectEventInstance ?
 	var peerEventDefs = subjectEventInstance ?
 		this.getUnrelatedEventDefs(subjectEventInstance.eventDefinition) :
 		this.getUnrelatedEventDefs(subjectEventInstance.eventDefinition) :
 		this.eventDefCollection.eventDefs.slice(); // all. clone
 		this.eventDefCollection.eventDefs.slice(); // all. clone