Kaynağa Gözat

dateProfile/_getDateProfile fixes

Adam Shaw 8 yıl önce
ebeveyn
işleme
0d511f8aa9

+ 1 - 1
src/View.js

@@ -168,7 +168,7 @@ var View = FC.View = InteractiveDateComponent.extend({
 		else if (currentRangeUnit == 'month') {
 		else if (currentRangeUnit == 'month') {
 			return this.opt('monthYearFormat'); // like "September 2014"
 			return this.opt('monthYearFormat'); // like "September 2014"
 		}
 		}
-		else if (this.currentRangeAs('days') > 1) {
+		else if (dateProfile.currentUnzonedRange.as('days') > 1) {
 			return 'll'; // multi-day range. shorter, like "Sep 9 - 10 2014"
 			return 'll'; // multi-day range. shorter, like "Sep 9 - 10 2014"
 		}
 		}
 		else {
 		else {

+ 5 - 2
src/component/DateComponent.js

@@ -181,8 +181,6 @@ var DateComponent = FC.DateComponent = Component.extend({
 	},
 	},
 
 
 
 
-
-
 	// Unrenders previously-rendered business-hours
 	// Unrenders previously-rendered business-hours
 	unrenderBusinessHours: function() {
 	unrenderBusinessHours: function() {
 		this.callChildren('unrenderBusinessHours', arguments);
 		this.callChildren('unrenderBusinessHours', arguments);
@@ -643,6 +641,11 @@ var DateComponent = FC.DateComponent = Component.extend({
 
 
 	_getView: function() { // TODO: strip out. move to generic parent.
 	_getView: function() { // TODO: strip out. move to generic parent.
 		return this.view;
 		return this.view;
+	},
+
+
+	_getDateProfile: function() {
+		return this._getView().get('dateProfile');
 	}
 	}
 
 
 });
 });

+ 1 - 7
src/component/DateComponent.util.js

@@ -107,13 +107,7 @@ DateComponent.mixin({
 	// Compute the number of the give units in the "current" range.
 	// Compute the number of the give units in the "current" range.
 	// Will return a floating-point number. Won't round.
 	// Will return a floating-point number. Won't round.
 	currentRangeAs: function(unit) {
 	currentRangeAs: function(unit) {
-		var currentUnzonedRange = this._getView().get('dateProfile').currentUnzonedRange;
-
-		return moment.utc(currentUnzonedRange.endMs).diff(
-			moment.utc(currentUnzonedRange.startMs),
-			unit,
-			true
-		);
+		return this._getDateProfile().currentUnzonedRange.as(unit);
 	},
 	},
 
 
 
 

+ 1 - 1
src/component/renderers/BusinessHourRenderer.js

@@ -19,7 +19,7 @@ var BusinessHourRenderer = FC.BusinessHourRenderer = Class.extend({
 
 
 	render: function(businessHourGenerator) {
 	render: function(businessHourGenerator) {
 		var component = this.component;
 		var component = this.component;
-		var unzonedRange = component._getView().get('dateProfile').activeUnzonedRange;
+		var unzonedRange = component._getDateProfile().activeUnzonedRange;
 
 
 		var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(
 		var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(
 			component.hasAllDayBusinessHours,
 			component.hasAllDayBusinessHours,

+ 2 - 1
src/component/renderers/EventRenderer.js

@@ -52,6 +52,7 @@ var EventRenderer = FC.EventRenderer = Class.extend({
 
 
 
 
 	render: function(eventsPayload) {
 	render: function(eventsPayload) {
+		var dateProfile = this.component._getDateProfile();
 		var eventDefId;
 		var eventDefId;
 		var instanceGroup;
 		var instanceGroup;
 		var eventRanges;
 		var eventRanges;
@@ -62,7 +63,7 @@ var EventRenderer = FC.EventRenderer = Class.extend({
 			instanceGroup = eventsPayload[eventDefId];
 			instanceGroup = eventsPayload[eventDefId];
 
 
 			eventRanges = instanceGroup.sliceRenderRanges(
 			eventRanges = instanceGroup.sliceRenderRanges(
-				this.component._getView().get('dateProfile').activeUnzonedRange // :(
+				dateProfile.activeUnzonedRange
 			);
 			);
 
 
 			if (instanceGroup.getEventDef().hasBgRendering()) {
 			if (instanceGroup.getEventDef().hasBgRendering()) {

+ 9 - 0
src/models/UnzonedRange.js

@@ -132,6 +132,15 @@ var UnzonedRange = FC.UnzonedRange = Class.extend({
 		if (this.endMs !== null) {
 		if (this.endMs !== null) {
 			return FC.moment.utc(this.endMs).stripZone();
 			return FC.moment.utc(this.endMs).stripZone();
 		}
 		}
+	},
+
+
+	as: function(unit) {
+		return moment.utc(this.endMs).diff(
+			moment.utc(this.startMs),
+			unit,
+			true
+		);
 	}
 	}
 
 
 });
 });