Jelajahi Sumber

make TimeGrid use ms times for segs

Adam Shaw 8 tahun lalu
induk
melakukan
9af2f3ce3a
2 mengubah file dengan 13 tambahan dan 9 penghapusan
  1. 8 5
      src/common/TimeGrid.events.js
  2. 5 4
      src/common/TimeGrid.js

+ 8 - 5
src/common/TimeGrid.events.js

@@ -246,6 +246,7 @@ TimeGrid.mixin({
 	// Renders the HTML for a single event segment's default rendering
 	fgSegHtml: function(seg, disableResizing) {
 		var view = this.view;
+		var calendar = view.calendar;
 		var componentFootprint = seg.footprint.componentFootprint;
 		var isAllDay = componentFootprint.isAllDay;
 		var eventDef = seg.footprint.eventDef;
@@ -266,9 +267,11 @@ TimeGrid.mixin({
 			// That would appear as midnight-midnight and would look dumb.
 			// Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)
 			if (seg.isStart || seg.isEnd) {
-				timeText = this._getEventTimeText(seg.start, seg.end, isAllDay);
-				fullTimeText = this._getEventTimeText(seg.start, seg.end, isAllDay, 'LT');
-				startTimeText = this._getEventTimeText(seg.start, seg.end, isAllDay, null, false); // displayEnd=false
+				var zonedStart = calendar.msToMoment(seg.startMs);
+				var zonedEnd = calendar.msToMoment(seg.endMs);
+				timeText = this._getEventTimeText(zonedStart, zonedEnd, isAllDay);
+				fullTimeText = this._getEventTimeText(zonedStart, zonedEnd, isAllDay, 'LT');
+				startTimeText = this._getEventTimeText(zonedStart, zonedEnd, isAllDay, null, false); // displayEnd=false
 			}
 		}
 		else {
@@ -341,8 +344,8 @@ TimeGrid.mixin({
 			seg = segs[i];
 			dayDate = this.dayDates[seg.dayIndex];
 
-			seg.top = this.computeDateTop(seg.start, dayDate);
-			seg.bottom = this.computeDateTop(seg.end, dayDate);
+			seg.top = this.computeDateTop(seg.startMs, dayDate);
+			seg.bottom = this.computeDateTop(seg.endMs, dayDate);
 		}
 	},
 

+ 5 - 4
src/common/TimeGrid.js

@@ -293,8 +293,8 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 
 			if (segRange) {
 				segs.push({
-					start: segRange.getStart(),
-					end: segRange.getEnd(),
+					startMs: segRange.startMs,
+					endMs: segRange.endMs,
 					isStart: segRange.isStart,
 					isEnd: segRange.isEnd,
 					dayIndex: dayIndex
@@ -327,11 +327,12 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 
 
 	// Computes the top coordinate, relative to the bounds of the grid, of the given date.
+	// `ms` can be a millisecond UTC time OR a UTC moment.
 	// A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.
-	computeDateTop: function(date, startOfDayDate) {
+	computeDateTop: function(ms, startOfDayDate) {
 		return this.computeTimeTop(
 			moment.duration(
-				date - startOfDayDate.clone().stripTime()
+				ms - startOfDayDate.clone().stripTime()
 			)
 		);
 	},