瀏覽代碼

move Grid event rendering away from legacy event object

Adam Shaw 8 年之前
父節點
當前提交
f99925c9d2
共有 5 個文件被更改,包括 21 次插入20 次删除
  1. 6 6
      src/common/DayGrid.events.js
  2. 1 1
      src/common/Grid.events.js
  3. 4 5
      src/common/TimeGrid.events.js
  4. 1 1
      src/common/View.js
  5. 9 7
      src/list/ListView.js

+ 6 - 6
src/common/DayGrid.events.js

@@ -91,12 +91,12 @@ DayGrid.mixin({
 	// Builds the HTML to be used for the default element for an individual segment
 	fgSegHtml: function(seg, disableResizing) {
 		var view = this.view;
-		var event = seg.event; // TODO: kill
 		var eventDef = seg.footprint.eventDef;
+		var isAllDay = seg.footprint.componentFootprint.isAllDay;
 		var isDraggable = view.isEventDefDraggable(eventDef);
-		var isResizableFromStart = !disableResizing && event.allDay &&
+		var isResizableFromStart = !disableResizing && isAllDay &&
 			seg.isStart && view.isEventDefResizableFromStart(eventDef);
-		var isResizableFromEnd = !disableResizing && event.allDay &&
+		var isResizableFromEnd = !disableResizing && isAllDay &&
 			seg.isEnd && view.isEventDefResizableFromEnd(eventDef);
 		var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);
 		var skinCss = cssToStr(this.getSegSkinCss(seg));
@@ -116,12 +116,12 @@ DayGrid.mixin({
 
 		titleHtml =
 			'<span class="fc-title">' +
-				(htmlEscape(event.title || '') || '&nbsp;') + // we always want one line of height
+				(htmlEscape(eventDef.title || '') || '&nbsp;') + // we always want one line of height
 			'</span>';
 		
 		return '<a class="' + classes.join(' ') + '"' +
-				(event.url ?
-					' href="' + htmlEscape(event.url) + '"' :
+				(eventDef.url ?
+					' href="' + htmlEscape(eventDef.url) + '"' :
 					''
 					) +
 				(skinCss ?

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

@@ -257,7 +257,7 @@ Grid.mixin({
 
 	handleSegTouchStart: function(seg, ev) {
 		var view = this.view;
-		var event = seg.event; // TODO: kill
+		var event = seg.event; // TODO: kill, but retrofit isEventSelected first
 		var eventDef = seg.footprint.eventDef;
 		var isSelected = view.isEventSelected(event);
 		var isDraggable = view.isEventDefDraggable(eventDef);

+ 4 - 5
src/common/TimeGrid.events.js

@@ -248,7 +248,6 @@ TimeGrid.mixin({
 		var view = this.view;
 		var componentFootprint = seg.footprint.componentFootprint;
 		var isAllDay = componentFootprint.isAllDay;
-		var event = seg.event; // TODO: kill
 		var eventDef = seg.footprint.eventDef;
 		var isDraggable = view.isEventDefDraggable(eventDef);
 		var isResizableFromStart = !disableResizing && seg.isStart && view.isEventDefResizableFromStart(eventDef);
@@ -280,8 +279,8 @@ TimeGrid.mixin({
 		}
 
 		return '<a class="' + classes.join(' ') + '"' +
-			(event.url ?
-				' href="' + htmlEscape(event.url) + '"' :
+			(eventDef.url ?
+				' href="' + htmlEscape(eventDef.url) + '"' :
 				''
 				) +
 			(skinCss ?
@@ -299,9 +298,9 @@ TimeGrid.mixin({
 						'</div>' :
 						''
 						) +
-					(event.title ?
+					(eventDef.title ?
 						'<div class="fc-title">' +
-							htmlEscape(event.title) +
+							htmlEscape(eventDef.title) +
 						'</div>' :
 						''
 						) +

+ 1 - 1
src/common/View.js

@@ -21,7 +21,7 @@ var View = FC.View = ChronoComponent.extend({
 	queuedScroll: null,
 
 	isSelected: false, // boolean whether a range of time is user-selected or not
-	selectedEvent: null,
+	selectedEvent: null, // TODO: move away from legacy event!
 
 	eventOrderSpecs: null, // criteria for ordering events when they have same date/time
 

+ 9 - 7
src/list/ListView.js

@@ -237,20 +237,22 @@ var ListViewGrid = Grid.extend({
 		var view = this.view;
 		var classes = [ 'fc-list-item' ].concat(this.getSegCustomClasses(seg));
 		var bgColor = this.getSegBackgroundColor(seg);
-		var event = seg.event;
-		var url = event.url;
+		var eventFootprint = seg.footprint;
+		var eventDef = eventFootprint.eventDef;
+		var componentFootprint = eventFootprint.componentFootprint;
+		var url = eventDef.url;
 		var timeHtml;
 
-		if (event.allDay) {
+		if (componentFootprint.isAllDay) {
 			timeHtml = view.getAllDayHtml();
 		}
 		// if the event appears to span more than one day
-		else if (view.isMultiDayRange(seg.footprint.componentFootprint.unzonedRange)) {
+		else if (view.isMultiDayRange(componentFootprint.unzonedRange)) {
 			if (seg.isStart || seg.isEnd) { // outer segment that probably lasts part of the day
 				timeHtml = htmlEscape(this._getEventTimeText(
 					seg.start,
 					seg.end,
-					seg.footprint.componentFootprint.isAllDay
+					componentFootprint.isAllDay
 				));
 			}
 			else { // inner segment that lasts the whole day
@@ -259,7 +261,7 @@ var ListViewGrid = Grid.extend({
 		}
 		else {
 			// Display the normal time text for the *event's* times
-			timeHtml = htmlEscape(this.getEventTimeText(seg.footprint));
+			timeHtml = htmlEscape(this.getEventTimeText(eventFootprint));
 		}
 
 		if (url) {
@@ -281,7 +283,7 @@ var ListViewGrid = Grid.extend({
 			'</td>' +
 			'<td class="fc-list-item-title ' + view.widgetContentClass + '">' +
 				'<a' + (url ? ' href="' + htmlEscape(url) + '"' : '') + '>' +
-					htmlEscape(seg.event.title || '') +
+					htmlEscape(eventDef.title || '') +
 				'</a>' +
 			'</td>' +
 		'</tr>';