Adam Shaw 8 лет назад
Родитель
Сommit
8b42021f44
2 измененных файлов с 28 добавлено и 21 удалено
  1. 2 21
      src/Calendar.constraints.js
  2. 26 0
      src/models/EventDefinition.js

+ 2 - 21
src/Calendar.constraints.js

@@ -1,27 +1,8 @@
 
 Calendar.prototype.isEventFootprintAllowed = function(eventFootprint) {
 	var eventDef = eventFootprint.eventInstance.eventDefinition;
-	var source = eventDef.source || {};
-	var constraintVal;
-	var overlapVal;
-
-	// TODO: use EventDef
-	constraintVal = eventDef.constraint;
-	if (constraintVal == null) {
-		constraintVal = source.constraint;
-		if (constraintVal == null) {
-			constraintVal = this.opt('eventConstraint');
-		}
-	}
-
-	// TODO: use EventDef
-	overlapVal = eventDef.overlap;
-	if (overlapVal == null) {
-		overlapVal = source.overlap;
-		if (overlapVal == null) {
-			overlapVal = this.opt('eventOverlap');
-		}
-	}
+	var constraintVal = eventDef.getConstraint(this);
+	var overlapVal = eventDef.getOverlap(this);
 
 	return this.isFootprintAllowed(
 		eventFootprint.componentFootprint,

+ 26 - 0
src/models/EventDefinition.js

@@ -54,6 +54,32 @@ var EventDefinition = Class.extend({
 		var rendering = this.getRendering();
 
 		return rendering === 'inverse-background' || rendering === 'background';
+	},
+
+
+	getConstraint: function(calendar) {
+		if (this.constraint != null) {
+			return this.constraint;
+		}
+
+		if (this.source && this.source.constraint != null) {
+			return this.source.constraint;
+		}
+
+		return calendar.opt('eventConstraint');
+	},
+
+
+	getOverlap: function(calendar) {
+		if (this.overlap != null) {
+			return this.overlap;
+		}
+
+		if (this.source && this.source.overlap != null) {
+			return this.source.overlap;
+		}
+
+		return calendar.opt('eventOverlap');
 	}