Forráskód Böngészése

renderEventsPayload

Adam Shaw 8 éve
szülő
commit
155848aa66

+ 3 - 3
src/agenda/AgendaView.js

@@ -297,7 +297,7 @@ var AgendaView = FC.AgendaView = View.extend({
 
 
 	// Renders events onto the view and populates the View's segment array
-	renderEvents: function(eventsPayload) {
+	renderEventsPayload: function(eventsPayload) {
 		var dayEventsPayload = {};
 		var timedEventsPayload = {};
 		var daySegs = [];
@@ -317,9 +317,9 @@ var AgendaView = FC.AgendaView = View.extend({
 		}
 
 		// render the events in the subcomponents
-		timedSegs = this.timeGrid.renderEvents(timedEventsPayload);
+		timedSegs = this.timeGrid.renderEventsPayload(timedEventsPayload);
 		if (this.dayGrid) {
-			daySegs = this.dayGrid.renderEvents(dayEventsPayload);
+			daySegs = this.dayGrid.renderEventsPayload(dayEventsPayload);
 		}
 
 		// the all-day area is flexible and might have a lot of events, so shift the height

+ 2 - 2
src/basic/BasicView.js

@@ -253,8 +253,8 @@ var BasicView = FC.BasicView = View.extend({
 
 
 	// Renders the given events onto the view and populates the segments array
-	renderEvents: function(eventsPayload) {
-		this.dayGrid.renderEvents(eventsPayload);
+	renderEventsPayload: function(eventsPayload) {
+		this.dayGrid.renderEventsPayload(eventsPayload);
 
 		// must compensate for events that overflow the row
 		// TODO: how will ChronoComponent handle this?

+ 4 - 3
src/common/ChronoComponent.js

@@ -166,8 +166,9 @@ var ChronoComponent = Model.extend({
 
 
 	// Renders the events onto the view.
-	renderEvents: function(eventsPayload) {
-		this.callChildren('renderEvents', eventsPayload);
+	// TODO: eventually rename to `renderEvents` once legacy is gone.
+	renderEventsPayload: function(eventsPayload) {
+		this.callChildren('renderEventsPayload', eventsPayload);
 	},
 
 
@@ -176,7 +177,7 @@ var ChronoComponent = Model.extend({
 		this.callChildren('unrenderEvents');
 
 		// we DON'T need to call updateHeight() because
-		// a renderEvents() call always happens after this, which will eventually call updateHeight()
+		// a renderEventsPayload() call always happens after this, which will eventually call updateHeight()
 	},
 
 

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

@@ -15,7 +15,7 @@ Grid.mixin({
 	segs: null, // the *event* segments currently rendered in the grid. TODO: rename to `eventSegs`
 
 
-	renderEvents: function(eventsPayload) {
+	renderEventsPayload: function(eventsPayload) {
 		var unzonedRange = new UnzonedRange(this.view.activeRange.start, this.view.activeRange.end);
 		var id, eventRangeGroup;
 		var eventRenderRanges;
@@ -194,7 +194,7 @@ Grid.mixin({
 		var _this = this;
 
 		el.on(name, this.segSelector, function(ev) {
-			var seg = $(this).data('fc-seg'); // grab segment data. put there by View::renderEvents
+			var seg = $(this).data('fc-seg'); // grab segment data. put there by View::renderEventsPayload
 
 			// only call the handlers if there is not a drag/resize in progress
 			if (seg && !_this.isDraggingSeg && !_this.isResizingSeg) {

+ 30 - 1
src/common/View.js

@@ -616,7 +616,13 @@ var View = FC.View = ChronoComponent.extend({
 
 	executeEventsRender: function(eventsPayload) {
 
-		this.renderEvents(eventsPayload);
+		if (this.renderEvents) { // for legacy custom views
+			this.renderEvents(convertEventsPayloadToLegacyArray(eventsPayload));
+		}
+		else {
+			this.renderEventsPayload(eventsPayload);
+		}
+
 		this.isEventsRendered = true;
 
 		this.onEventsRender();
@@ -952,3 +958,26 @@ View.watch('displayingEvents', [ 'displayingDates', 'hasEvents' ], function() {
 }, function() {
 	this.requestEventsUnrender();
 });
+
+
+function convertEventsPayloadToLegacyArray(eventsPayload) {
+	var legacyEvents = [];
+	var id;
+
+	function iterRangeGroup(rangeGroup) {
+		var eventRanges = rangeGroup.eventRanges;
+		var i;
+
+		for (i = 0; i < eventRanges.length; i++) {
+			legacyEvents.push(
+				eventRanges[i].eventInstance.toLegacy()
+			);
+		}
+	}
+
+	for (id in eventsPayload) {
+		iterRangeGroup(eventsPayload[id]);
+	}
+
+	return legacyEvents;
+}