Adam Shaw 8 лет назад
Родитель
Сommit
3ddf8ad589

+ 1 - 1
src/common/ChronoComponent.js

@@ -525,7 +525,7 @@ var ChronoComponent = Model.extend({
 		var classes = [];
 		var today;
 
-		if (!isDateWithinRange(date, view.activeRange)) {
+		if (!view.activeUnzonedRange.containsDate(date)) {
 			classes.push('fc-disabled-day'); // TODO: jQuery UI theme?
 		}
 		else {

+ 1 - 1
src/common/DayGrid.js

@@ -141,7 +141,7 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
 	renderNumberCellHtml: function(date) {
 		var view = this.view;
 		var html = '';
-		var isDateValid = isDateWithinRange(date, view.activeRange); // TODO: called too frequently. cache somehow.
+		var isDateValid = view.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.
 		var isDayNumberVisible = view.dayNumbersVisible && isDateValid;
 		var classes;
 		var weekCalcFirstDoW;

+ 2 - 2
src/common/DayTableMixin.js

@@ -294,7 +294,7 @@ var DayTableMixin = FC.DayTableMixin = {
 	// (colspan should be no different)
 	renderHeadDateCellHtml: function(date, colspan, otherAttrs) {
 		var view = this.view;
-		var isDateValid = isDateWithinRange(date, view.activeRange); // TODO: called too frequently. cache somehow.
+		var isDateValid = view.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.
 		var classNames = [
 			'fc-day-header',
 			view.widgetHeaderClass
@@ -372,7 +372,7 @@ var DayTableMixin = FC.DayTableMixin = {
 
 	renderBgCellHtml: function(date, otherAttrs) {
 		var view = this.view;
-		var isDateValid = isDateWithinRange(date, view.activeRange); // TODO: called too frequently. cache somehow.
+		var isDateValid = view.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.
 		var classes = this.getDayClasses(date);
 
 		classes.unshift('fc-day', view.widgetContentClass);

+ 1 - 2
src/common/Grid.events.js

@@ -16,7 +16,6 @@ Grid.mixin({
 
 
 	renderEventsPayload: function(eventsPayload) {
-		var unzonedRange = new UnzonedRange(this.view.activeRange.start, this.view.activeRange.end);
 		var id, eventInstanceGroup;
 		var eventRenderRanges;
 		var eventFootprints;
@@ -27,7 +26,7 @@ Grid.mixin({
 		for (id in eventsPayload) {
 			eventInstanceGroup = eventsPayload[id];
 
-			eventRenderRanges = eventInstanceGroup.sliceRenderRanges(unzonedRange);
+			eventRenderRanges = eventInstanceGroup.sliceRenderRanges(this.view.activeUnzonedRange);
 			eventFootprints = this.eventRangesToEventFootprints(eventRenderRanges);
 			eventSegs = this.eventFootprintsToSegs(eventFootprints);
 

+ 1 - 6
src/common/Grid.js

@@ -162,12 +162,7 @@ var Grid = FC.Grid = ChronoComponent.extend({
 	getSafeHitFootprint: function(hit) {
 		var footprint = this.getHitFootprint(hit);
 
-		if (
-			!isRangeWithinRange(
-				footprint.unzonedRange.getRange(),
-				this.view.activeRange
-			)
-		) {
+		if (!this.view.activeUnzonedRange.contains(footprint.unzonedRange)) {
 			return null;
 		}
 

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

@@ -13,7 +13,7 @@ View.mixin({
 	renderUnzonedRange: null, // was renderRange
 
 	// dates that display events and accept drag-n-drop
-	activeRange: null,
+	activeUnzonedRange: null,
 
 	// constraint for where prev/next operations can go and where events can be dragged/resized to.
 	// an object with optional start and end properties.
@@ -24,11 +24,11 @@ View.mixin({
 
 	minTime: null, // Duration object that denotes the first visible time of any given day
 	maxTime: null, // Duration object that denotes the exclusive visible end time of any given day
-	usesMinMaxTime: false, // whether minTime/maxTime will affect the activeRange. Views must opt-in.
+	usesMinMaxTime: false, // whether minTime/maxTime will affect the activeUnzonedRange. Views must opt-in.
 
 	// DEPRECATED
-	start: null, // use activeRange.start
-	end: null, // use activeRange.end
+	start: null, // use activeUnzonedRange.getStart
+	end: null, // use activeUnzonedRange.getEnd
 	intervalStart: null, // use currentUnzonedRange.getStart
 	intervalEnd: null, // use currentUnzonedRange.getEnd
 
@@ -42,7 +42,7 @@ View.mixin({
 		this.currentRangeUnit = dateProfile.currentRangeUnit;
 		this.isRangeAllDay = dateProfile.isRangeAllDay;
 		this.renderUnzonedRange = new UnzonedRange(dateProfile.renderRange.start, dateProfile.renderRange.end);
-		this.activeRange = dateProfile.activeRange;
+		this.activeUnzonedRange = new UnzonedRange(dateProfile.activeRange.start, dateProfile.activeRange.end);
 		this.validRange = dateProfile.validRange;
 		this.dateIncrement = dateProfile.dateIncrement;
 		this.minTime = dateProfile.minTime;

+ 2 - 2
src/common/View.js

@@ -149,10 +149,10 @@ var View = FC.View = ChronoComponent.extend({
 
 		// for views that span a large unit of time, show the proper interval, ignoring stray days before and after
 		if (/^(year|month)$/.test(this.currentRangeUnit)) {
-			range = this.currentUnzonedRange.getRange();
+			range = this.currentUnzonedRange.getZonedRange(this.calendar, this.isRangeAllDay);
 		}
 		else { // for day units or smaller, use the actual day range
-			range = this.activeRange;
+			range = this.activeUnzonedRange.getZonedRange(this.calendar, this.isRangeAllDay);
 		}
 
 		return this.formatRange(

+ 5 - 0
src/models/UnzonedRange.js

@@ -81,6 +81,11 @@ var UnzonedRange = FC.UnzonedRange = Class.extend({
 	},
 
 
+	equals: function(otherRange) { // needed?
+		return this.startMs === otherRange.startMs && this.endMs === otherRange.endMs;
+	},
+
+
 	// hopefully we'll remove these...
 
 	getStart: function() {

+ 3 - 2
tests/view-dates/ViewDateUtils.js

@@ -11,9 +11,10 @@ var ViewDateUtils = {
 
 	expectActiveRange: function(start, end) {
 		var currentView = currentCalendar.getView();
+		var activeRange = currentView.activeUnzonedRange.getZonedRange(currentCalendar, currentView.isRangeAllDay);
 
-		expect(currentView.activeRange.start).toEqualMoment(start);
-		expect(currentView.activeRange.end).toEqualMoment(end);
+		expect(activeRange.start).toEqualMoment(start);
+		expect(activeRange.end).toEqualMoment(end);
 	}
 
 };