Browse Source

Grid::renderHighlight accepts segs. eventRangeToSegs, selectionRangeToSegs

Adam Shaw 11 năm trước cách đây
mục cha
commit
e0f7bdf23d

+ 2 - 4
src/common/DayGrid.js

@@ -320,9 +320,7 @@ var DayGrid = Grid.extend({
 	renderDrag: function(dropLocation, seg) {
 	renderDrag: function(dropLocation, seg) {
 
 
 		// always render a highlight underneath
 		// always render a highlight underneath
-		this.renderHighlight(
-			this.view.calendar.ensureVisibleEventRange(dropLocation) // needs to be a proper range
-		);
+		this.renderHighlight(this.eventRangeToSegs(dropLocation));
 
 
 		// if a segment from the same calendar but another component is being dragged, render a helper event
 		// if a segment from the same calendar but another component is being dragged, render a helper event
 		if (seg && !seg.el.closest(this.el).length) {
 		if (seg && !seg.el.closest(this.el).length) {
@@ -348,7 +346,7 @@ var DayGrid = Grid.extend({
 
 
 	// Renders a visual indication of an event being resized
 	// Renders a visual indication of an event being resized
 	renderEventResize: function(range, seg) {
 	renderEventResize: function(range, seg) {
-		this.renderHighlight(range);
+		this.renderHighlight(this.eventRangeToSegs(range));
 		this.renderRangeHelper(range, seg);
 		this.renderRangeHelper(range, seg);
 	},
 	},
 
 

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

@@ -889,6 +889,8 @@ Grid.mixin({
 		var segs;
 		var segs;
 		var i, seg;
 		var i, seg;
 
 
+		eventRange = this.view.calendar.ensureVisibleEventRange(eventRange);
+
 		if (rangeToSegsFunc) {
 		if (rangeToSegsFunc) {
 			segs = rangeToSegsFunc(eventRange);
 			segs = rangeToSegsFunc(eventRange);
 		}
 		}

+ 9 - 4
src/common/Grid.js

@@ -441,7 +441,7 @@ var Grid = fc.Grid = RowRenderer.extend({
 
 
 	// Renders a visual indication of a selection. Will highlight by default but can be overridden by subclasses.
 	// Renders a visual indication of a selection. Will highlight by default but can be overridden by subclasses.
 	renderSelection: function(range) {
 	renderSelection: function(range) {
-		this.renderHighlight(range);
+		this.renderHighlight(this.selectionRangeToSegs(range));
 	},
 	},
 
 
 
 
@@ -478,13 +478,18 @@ var Grid = fc.Grid = RowRenderer.extend({
 	},
 	},
 
 
 
 
+	selectionRangeToSegs: function(range) {
+		return this.rangeToSegs(range);
+	},
+
+
 	/* Highlight
 	/* Highlight
 	------------------------------------------------------------------------------------------------------------------*/
 	------------------------------------------------------------------------------------------------------------------*/
 
 
 
 
-	// Renders an emphasis on the given date range. `start` is inclusive. `end` is exclusive.
-	renderHighlight: function(range) {
-		this.renderFill('highlight', this.rangeToSegs(range));
+	// Renders an emphasis on the given date range. Given an array of segments.
+	renderHighlight: function(segs) {
+		this.renderFill('highlight', segs);
 	},
 	},
 
 
 
 

+ 2 - 4
src/common/TimeGrid.js

@@ -344,9 +344,7 @@ var TimeGrid = Grid.extend({
 		}
 		}
 		else {
 		else {
 			// otherwise, just render a highlight
 			// otherwise, just render a highlight
-			this.renderHighlight(
-				this.view.calendar.ensureVisibleEventRange(dropLocation) // needs to be a proper range
-			);
+			this.renderHighlight(this.eventRangeToSegs(dropLocation));
 		}
 		}
 	},
 	},
 
 
@@ -427,7 +425,7 @@ var TimeGrid = Grid.extend({
 			this.renderRangeHelper(range);
 			this.renderRangeHelper(range);
 		}
 		}
 		else {
 		else {
-			this.renderHighlight(range);
+			this.renderHighlight(this.selectionRangeToSegs(range));
 		}
 		}
 	},
 	},