Переглянути джерело

renderHelper-related methods now return elements. Grids not responsible for setting drag opacity on helpers

Adam Shaw 10 роки тому
батько
коміт
f7057585c2

+ 5 - 6
src/common/DayGrid.js

@@ -273,10 +273,7 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
 		// 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) {
 
 
-			this.renderEventLocationHelper(eventLocation, seg);
-			this.applyDragOpacity(this.helperEls);
-
-			return true; // a helper has been rendered
+			return this.renderEventLocationHelper(eventLocation, seg); // returns mock event elements
 		}
 		}
 	},
 	},
 
 
@@ -295,7 +292,7 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
 	// Renders a visual indication of an event being resized
 	// Renders a visual indication of an event being resized
 	renderEventResize: function(eventLocation, seg) {
 	renderEventResize: function(eventLocation, seg) {
 		this.renderHighlight(this.eventToSpan(eventLocation));
 		this.renderHighlight(this.eventToSpan(eventLocation));
-		this.renderEventLocationHelper(eventLocation, seg);
+		return this.renderEventLocationHelper(eventLocation, seg); // returns mock event elements
 	},
 	},
 
 
 
 
@@ -341,7 +338,9 @@ var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, {
 			helperNodes.push(skeletonEl[0]);
 			helperNodes.push(skeletonEl[0]);
 		});
 		});
 
 
-		this.helperEls = $(helperNodes); // array -> jQuery set
+		return ( // must return the elements rendered
+			this.helperEls = $(helperNodes) // array -> jQuery set
+		);
 	},
 	},
 
 
 
 

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

@@ -529,6 +529,7 @@ Grid.mixin({
 	// `dropLocation` contains hypothetical start/end/allDay values the event would have if dropped. end can be null.
 	// `dropLocation` contains hypothetical start/end/allDay values the event would have if dropped. end can be null.
 	// `seg` is the internal segment object that is being dragged. If dragging an external element, `seg` is null.
 	// `seg` is the internal segment object that is being dragged. If dragging an external element, `seg` is null.
 	// A truthy returned value indicates this method has rendered a helper element.
 	// A truthy returned value indicates this method has rendered a helper element.
+	// Must return elements used for any mock events.
 	renderDrag: function(dropLocation, seg) {
 	renderDrag: function(dropLocation, seg) {
 		// subclasses must implement
 		// subclasses must implement
 	},
 	},
@@ -682,6 +683,7 @@ Grid.mixin({
 
 
 	// Renders a visual indication of an event being resized.
 	// Renders a visual indication of an event being resized.
 	// `range` has the updated dates of the event. `seg` is the original segment object involved in the drag.
 	// `range` has the updated dates of the event. `seg` is the original segment object involved in the drag.
+	// Must return elements used for any mock events.
 	renderEventResize: function(range, seg) {
 	renderEventResize: function(range, seg) {
 		// subclasses must implement
 		// subclasses must implement
 	},
 	},

+ 3 - 1
src/common/Grid.js

@@ -301,10 +301,11 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
 
 
 
 
 	// Renders a mock event at the given event location, which contains zoned start/end properties.
 	// Renders a mock event at the given event location, which contains zoned start/end properties.
+	// Returns all mock event elements.
 	renderEventLocationHelper: function(eventLocation, sourceSeg) {
 	renderEventLocationHelper: function(eventLocation, sourceSeg) {
 		var fakeEvent = this.fabricateHelperEvent(eventLocation, sourceSeg);
 		var fakeEvent = this.fabricateHelperEvent(eventLocation, sourceSeg);
 
 
-		this.renderHelper(fakeEvent, sourceSeg); // do the actual rendering
+		return this.renderHelper(fakeEvent, sourceSeg); // do the actual rendering
 	},
 	},
 
 
 
 
@@ -332,6 +333,7 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
 
 
 
 
 	// Renders a mock event. Given zoned event date properties.
 	// Renders a mock event. Given zoned event date properties.
+	// Must return all mock event elements.
 	renderHelper: function(eventLocation, sourceSeg) {
 	renderHelper: function(eventLocation, sourceSeg) {
 		// subclasses must implement
 		// subclasses must implement
 	},
 	},

+ 1 - 1
src/common/TimeGrid.events.js

@@ -101,7 +101,7 @@ TimeGrid.mixin({
 			}
 			}
 		}
 		}
 
 
-		this.helperSegs = segs;
+		return (this.helperSegs = segs); // must return rendered helpers
 	},
 	},
 
 
 
 

+ 5 - 8
src/common/TimeGrid.js

@@ -367,13 +367,10 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 	renderDrag: function(eventLocation, seg) {
 	renderDrag: function(eventLocation, seg) {
 
 
 		if (seg) { // if there is event information for this drag, render a helper event
 		if (seg) { // if there is event information for this drag, render a helper event
-			this.renderEventLocationHelper(eventLocation, seg);
 
 
-			for (var i = 0; i < this.helperSegs.length; i++) {
-				this.applyDragOpacity(this.helperSegs[i].el);
-			}
-
-			return true; // signal that a helper has been rendered
+			// returns mock event elements
+			// signal that a helper has been rendered
+			return this.renderEventLocationHelper(eventLocation, seg);
 		}
 		}
 		else {
 		else {
 			// otherwise, just render a highlight
 			// otherwise, just render a highlight
@@ -395,7 +392,7 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 
 
 	// Renders a visual indication of an event being resized
 	// Renders a visual indication of an event being resized
 	renderEventResize: function(eventLocation, seg) {
 	renderEventResize: function(eventLocation, seg) {
-		this.renderEventLocationHelper(eventLocation, seg);
+		return this.renderEventLocationHelper(eventLocation, seg); // returns mock event elements
 	},
 	},
 
 
 
 
@@ -411,7 +408,7 @@ var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, {
 
 
 	// Renders a mock "helper" event. `sourceSeg` is the original segment object and might be null (an external drag)
 	// Renders a mock "helper" event. `sourceSeg` is the original segment object and might be null (an external drag)
 	renderHelper: function(event, sourceSeg) {
 	renderHelper: function(event, sourceSeg) {
-		this.renderHelperSegs(this.eventToSegs(event), sourceSeg);
+		return this.renderHelperSegs(this.eventToSegs(event), sourceSeg); // returns mock event elements
 	},
 	},
 
 
 
 

+ 2 - 1
src/common/View.js

@@ -794,7 +794,8 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
 
 
 
 
 	// Renders a visual indication of a event or external-element drag over the given drop zone.
 	// Renders a visual indication of a event or external-element drag over the given drop zone.
-	// If an external-element, seg will be `null`
+	// If an external-element, seg will be `null`.
+	// Must return elements used for any mock events.
 	renderDrag: function(dropLocation, seg) {
 	renderDrag: function(dropLocation, seg) {
 		// subclasses must implement
 		// subclasses must implement
 	},
 	},