Sfoglia il codice sorgente

kill some getStart/getEnd

Adam Shaw 8 anni fa
parent
commit
a7a6856816

+ 3 - 2
src/agenda/AgendaView.js

@@ -370,15 +370,16 @@ var agendaTimeGridMethods = {
 	// Generates the HTML that will go before the day-of week header cells
 	renderHeadIntroHtml: function() {
 		var view = this.view;
+		var weekStart = view.calendar.msToUtcMoment(this.unzonedRange.startMs);
 		var weekText;
 
 		if (this.opt('weekNumbers')) {
-			weekText = this.start.format(this.opt('smallWeekFormat'));
+			weekText = weekStart.format(this.opt('smallWeekFormat'));
 
 			return '' +
 				'<th class="fc-axis fc-week-number ' + view.widgetHeaderClass + '" ' + view.axisStyleAttr() + '>' +
 					view.buildGotoAnchorHtml( // aside from link, important for matchCellWidths
-						{ date: this.start, type: 'week', forceOff: this.colCnt > 1 },
+						{ date: weekStart, type: 'week', forceOff: this.colCnt > 1 },
 						htmlEscape(weekText) // inner HTML
 					) +
 				'</th>';

+ 3 - 2
src/common/DayTableMixin.js

@@ -17,8 +17,9 @@ var DayTableMixin = FC.DayTableMixin = {
 	// Populates internal variables used for date calculation and rendering
 	updateDayTable: function() {
 		var view = this.view;
-		var date = this.unzonedRange.getStart();
-		var end = this.unzonedRange.getEnd();
+		var calendar = view.calendar;
+		var date = calendar.msToUtcMoment(this.unzonedRange.startMs, true);
+		var end = calendar.msToUtcMoment(this.unzonedRange.endMs, true);
 		var dayIndex = -1;
 		var dayIndices = [];
 		var dayDates = [];

+ 2 - 1
src/common/TimeGrid.js

@@ -67,6 +67,7 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 	// Generates the HTML for the horizontal "slats" that run width-wise. Has a time axis on a side. Depends on RTL.
 	renderSlatRowHtml: function() {
 		var view = this.view;
+		var calendar = view.calendar;
 		var isRTL = this.isRTL;
 		var html = '';
 		var slotTime = moment.duration(+this.view.minTime); // wish there was .clone() for durations
@@ -76,7 +77,7 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 
 		// Calculate the time for each slot
 		while (slotTime < this.view.maxTime) {
-			slotDate = this.unzonedRange.getStart().time(slotTime); // will have locale problems :(
+			slotDate = calendar.msToUtcMoment(this.unzonedRange.startMs).time(slotTime);
 			isLabeled = isInt(divideDurationByDuration(slotTime, this.labelInterval));
 
 			axisHtml =

+ 6 - 6
src/common/View.date-range.js

@@ -27,10 +27,10 @@ View.mixin({
 	usesMinMaxTime: false, // whether minTime/maxTime will affect the activeUnzonedRange. Views must opt-in.
 
 	// DEPRECATED
-	start: null, // use activeUnzonedRange.getStart
-	end: null, // use activeUnzonedRange.getEnd
-	intervalStart: null, // use currentUnzonedRange.getStart
-	intervalEnd: null, // use currentUnzonedRange.getEnd
+	start: null, // use activeUnzonedRange
+	end: null, // use activeUnzonedRange
+	intervalStart: null, // use currentUnzonedRange
+	intervalEnd: null, // use currentUnzonedRange
 
 
 	/* Date Range Computation
@@ -165,7 +165,7 @@ View.mixin({
 			unzonedRange = this.buildRangeFromDayCount(date, direction, dayCount);
 		}
 		else if ((unzonedRange = this.buildCustomVisibleRange(date))) {
-			unit = computeGreatestUnit(zonedRange.getStart(), zonedRange.getEnd());
+			unit = computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd());
 		}
 		else {
 			duration = this.getFallbackDuration();
@@ -281,7 +281,7 @@ View.mixin({
 	buildCustomVisibleRange: function(date) {
 		var visibleUnzonedRange = this.getUnzonedRangeOption(
 			'visibleRange',
-			this.calendar.moment(date) // correct zone. also generates new obj that avoids mutations
+			this.calendar.applyTimezone(date) // correct zone. also generates new obj that avoids mutations
 		);
 
 		if (visibleUnzonedRange && (visibleUnzonedRange.startMs === null || visibleUnzonedRange.endMs === null)) {

+ 6 - 3
src/list/ListView.js

@@ -68,12 +68,14 @@ var ListViewGrid = Grid.extend({
 	// slices by day
 	componentFootprintToSegs: function(footprint) {
 		var view = this.view;
-		var dayStart = this.start.clone().time(0); // timed, so segs get times!
+		var calendar = view.calendar;
+		var dayStart = calendar.msToUtcMoment(this.unzonedRange.startMs).time(0); // timed, so segs get times!
+		var viewEnd = calendar.msToUtcMoment(this.unzonedRange.endMs);
 		var dayIndex = 0;
 		var seg;
 		var segs = [];
 
-		while (dayStart < this.end) {
+		while (dayStart < viewEnd) {
 
 			seg = intersectRanges(footprint.unzonedRange.getRange(), {
 				start: dayStart,
@@ -152,6 +154,7 @@ var ListViewGrid = Grid.extend({
 
 	// render the event segments in the view
 	renderSegList: function(allSegs) {
+		var calendar = this.view.calendar;
 		var segsByDay = this.groupSegsByDay(allSegs); // sparse array
 		var dayIndex;
 		var daySegs;
@@ -165,7 +168,7 @@ var ListViewGrid = Grid.extend({
 
 				// append a day header
 				tbodyEl.append(this.dayHeaderHtml(
-					this.start.clone().add(dayIndex, 'days')
+					calendar.msToMoment(this.unzonedRange.startMs).add(dayIndex, 'days')
 				));
 
 				this.sortEventSegs(daySegs);

+ 1 - 0
src/models/event/RecurringEventDef.js

@@ -23,6 +23,7 @@ var RecurringEventDef = EventDef.extend({
 			// if everyday, or this particular day-of-week
 			if (!this.dowHash || this.dowHash[date.day()]) {
 
+				// TODO: make these same zone as calendar?
 				instanceStart = date.clone();
 				instanceEnd = null;
 

+ 8 - 6
tests/view-dates/ViewDateUtils.js

@@ -3,18 +3,20 @@ var ViewDateUtils = {
 
 	expectRenderRange: function(start, end) {
 		var currentView = currentCalendar.getView();
-		var renderRange = currentView.renderUnzonedRange.getZonedRange(currentCalendar, currentView.isRangeAllDay);
+		var renderRangeStart = currentCalendar.msToUtcMoment(currentView.renderUnzonedRange.startMs, currentView.isRangeAllDay);
+		var renderRangeEnd = currentCalendar.msToUtcMoment(currentView.renderUnzonedRange.endMs, currentView.isRangeAllDay);
 
-		expect(renderRange.start).toEqualMoment(start);
-		expect(renderRange.end).toEqualMoment(end);
+		expect(renderRangeStart).toEqualMoment(start);
+		expect(renderRangeEnd).toEqualMoment(end);
 	},
 
 	expectActiveRange: function(start, end) {
 		var currentView = currentCalendar.getView();
-		var activeRange = currentView.activeUnzonedRange.getZonedRange(currentCalendar, currentView.isRangeAllDay);
+		var activeRangeStart = currentCalendar.msToUtcMoment(currentView.activeUnzonedRange.startMs, currentView.isRangeAllDay);
+		var activeRangeEnd = currentCalendar.msToUtcMoment(currentView.activeUnzonedRange.endMs, currentView.isRangeAllDay);
 
-		expect(activeRange.start).toEqualMoment(start);
-		expect(activeRange.end).toEqualMoment(end);
+		expect(activeRangeStart).toEqualMoment(start);
+		expect(activeRangeEnd).toEqualMoment(end);
 	}
 
 };