Pārlūkot izejas kodu

resolveRangesForDate

Adam Shaw 9 gadi atpakaļ
vecāks
revīzija
9cef20a544
1 mainītis faili ar 21 papildinājumiem un 13 dzēšanām
  1. 21 13
      src/common/View.js

+ 21 - 13
src/common/View.js

@@ -151,25 +151,21 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
 	// Will return a boolean about whether there was some sort of change.
 	setRangeFromDate: function(date) {
 
-		this.validRange = this.buildValidRange();
+		var ranges = this.resolveRangesForDate(date);
 
-		var currentRange = this.computeCurrentRange(date);
-		var renderRange = this.computeRenderRange(currentRange);
-		var visibleRange = this.computeVisibleRange(renderRange, currentRange);
-
-		if (!this.visibleRange || !isRangesEqual(this.visibleRange, visibleRange)) {
+		if (!this.visibleRange || !isRangesEqual(this.visibleRange, ranges.visibleRange)) {
 			// some sort of change
 
-			this.currentRange = currentRange;
-			this.renderRange = renderRange;
-			this.visibleRange = visibleRange;
+			this.currentRange = ranges.currentRange;
+			this.renderRange = ranges.renderRange;
+			this.visibleRange = ranges.visibleRange;
 
 			// DEPRECATED, but we need to keep it updated
 			// TODO: run automated tests with this commented out
-			this.start = visibleRange.start;
-			this.end = visibleRange.end;
-			this.intervalStart = currentRange.start;
-			this.intervalEnd = currentRange.end;
+			this.start = ranges.visibleRange.start;
+			this.end = ranges.visibleRange.end;
+			this.intervalStart = ranges.currentRange.start;
+			this.intervalEnd = ranges.currentRange.end;
 
 			this.updateTitle();
 			this.calendar.updateToolbarButtons();
@@ -181,6 +177,18 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
 	},
 
 
+	resolveRangesForDate: function(date) {
+		var ranges = {};
+
+		ranges.currentRange = this.computeCurrentRange(date);
+		ranges.renderRange = this.computeRenderRange(ranges.currentRange);
+		ranges.visibleRange = this.computeVisibleRange(ranges.renderRange, ranges.currentRange);
+		ranges.validRange = this.buildValidRange();
+
+		return ranges;
+	},
+
+
 	computeCurrentRange: function(date) {
 		var intervalStart = date.clone().startOf(this.intervalUnit);
 		var intervalEnd = intervalStart.clone().add(this.intervalDuration);