Adam Shaw 8 лет назад
Родитель
Сommit
b8e2ad0595
5 измененных файлов с 38 добавлено и 15 удалено
  1. 2 0
      src.json
  2. 1 1
      src/common/DayGrid.js
  3. 13 14
      src/common/Grid.events.js
  4. 12 0
      src/models/EventSpan.js
  5. 10 0
      src/models/Span.js

+ 2 - 0
src.json

@@ -44,6 +44,8 @@
     "locale.js",
     "Header.js",
     "models/UnzonedRange.js",
+    "models/Span.js",
+    "models/EventSpan.js",
     "models/EventRange.js",
     "models/EventDateProfile.js",
     "models/EventDateMutation.js",

+ 1 - 1
src/common/DayGrid.js

@@ -224,7 +224,7 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
 
 	// Slices up the given span (unzoned start/end with other misc data) into an array of segments
 	spanToSegs: function(span) {
-		var segs = this.sliceRangeByRow(span);
+		var segs = this.sliceRangeByRow({ start: span.dateRange.getStart(), end: span.dateRange.getEnd() });
 		var i, seg;
 
 		for (i = 0; i < segs.length; i++) {

+ 13 - 14
src/common/Grid.events.js

@@ -1056,37 +1056,36 @@ Grid.mixin({
 	// Subclasses can override.
 	// Subclasses are obligated to forward eventRange.isStart/isEnd to the resulting spans.
 	eventRangeToSpans: function(eventRange) {
-		return [ {
-			start: eventRange.dateRange.getStart(),
-			end: eventRange.dateRange.getEnd(),
-			isStart: eventRange.dateRange.isStart,
-			isEnd: eventRange.dateRange.isEnd,
-			event: eventRange.eventInstance.toLegacy()
-		} ];
+		return [
+			new EventSpan(
+				eventRange.eventInstance,
+				new Span(eventRange.dateRange)
+			)
+		];
 	},
 
 
 	// Given an event's span (unzoned start/end and other misc data), and the event itself,
 	// slices into segments and attaches event-derived properties to them.
 	// eventSpan - { start, end, isStart, isEnd, otherthings... }
-	eventSpanToSegs: function(eventSpan, segSliceFunc) {
-		var segs = segSliceFunc ? segSliceFunc(eventSpan) : this.spanToSegs(eventSpan);
+	eventSpanToSegs: function(eventSpan) {
+		var segs = this.spanToSegs(eventSpan.span);
 		var i, seg;
 
 		for (i = 0; i < segs.length; i++) {
 			seg = segs[i];
 
 			// the eventSpan's isStart/isEnd takes precedence over the seg's
-			if (!eventSpan.isStart) {
+			if (!eventSpan.span.dateRange.isStart) {
 				seg.isStart = false;
 			}
-			if (!eventSpan.isEnd) {
+			if (!eventSpan.span.dateRange.isEnd) {
 				seg.isEnd = false;
 			}
 
-			seg.event = eventSpan.event;
-			seg.eventStartMS = +eventSpan.start; // TODO: not the best name after making spans unzoned
-			seg.eventDurationMS = eventSpan.end - eventSpan.start;
+			seg.event = eventSpan.eventInstance.toLegacy();
+			seg.eventStartMS = +eventSpan.span.dateRange.startMs; // TODO: not the best name after making spans unzoned
+			seg.eventDurationMS = eventSpan.span.dateRange.endMs - eventSpan.span.dateRange.startMs;
 		}
 
 		return segs;

+ 12 - 0
src/models/EventSpan.js

@@ -0,0 +1,12 @@
+
+var EventSpan = Class.extend({ // TODO: EventFootprint
+
+	eventInstance: null,
+	span: null, // TODO: componentFootprint
+
+	constructor: function(eventInstance, span) {
+		this.eventInstance = eventInstance;
+		this.span = span;
+	}
+
+});

+ 10 - 0
src/models/Span.js

@@ -0,0 +1,10 @@
+
+var Span = Class.extend({ // TODO: ComponentFootprint
+
+	dateRange: null,
+
+	constructor: function(dateRange) {
+		this.dateRange = dateRange;
+	}
+
+});