2
0
Эх сурвалжийг харах

eventOrder for when events have same date/time

Adam Shaw 10 жил өмнө
parent
commit
695cbb677e

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

@@ -920,12 +920,7 @@ Grid.mixin({
 		return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first
 			seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first
 			seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
-			this.compareEvents(seg1.event, seg2.event);
-	},
-
-
-	compareEvents: function(event1, event2) {
-		return (event1.title || '').localeCompare(event2.title); // tie? alphabetically by title
+			compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
 	}
 
 });

+ 4 - 0
src/common/View.js

@@ -31,6 +31,8 @@ var View = fc.View = Class.extend({
 	isRTL: false,
 	isSelected: false, // boolean whether a range of time is user-selected or not
 
+	eventOrderSpecs: null, // criteria for ordering events when they have same date/time
+
 	// subclasses can optionally use a scroll container
 	scrollerEl: null, // the element that will most likely scroll when content is too tall
 	scrollTop: null, // cached vertical scroll value
@@ -60,6 +62,8 @@ var View = fc.View = Class.extend({
 		this.initHiddenDays();
 		this.isRTL = this.opt('isRTL');
 
+		this.eventOrderSpecs = parseFieldSpecs(this.opt('eventOrder'));
+
 		this.documentMousedownProxy = proxy(this, 'documentMousedown');
 
 		this.initialize();

+ 2 - 0
src/defaults.js

@@ -77,6 +77,8 @@ Calendar.defaults = {
 	
 	dropAccept: '*',
 
+	eventOrder: 'title',
+
 	eventLimit: false,
 	eventLimitText: 'more',
 	eventLimitClick: 'popover',