Przeglądaj źródła

more fixed. for external event dragging mostly

Adam Shaw 8 lat temu
rodzic
commit
2b0658d0ba
3 zmienionych plików z 18 dodań i 5 usunięć
  1. 12 4
      src/common/Grid.events.js
  2. 5 0
      src/common/Grid.js
  3. 1 1
      src/models/EventManager.js

+ 12 - 4
src/common/Grid.events.js

@@ -656,33 +656,41 @@ Grid.mixin({
 	// DOES NOT consider overlap/constraint.
 	computeExternalDrop: function(componentFootprint, meta) {
 		var calendar = this.view.calendar;
+		var isAllDay = componentFootprint.isAllDay;
 		var start = calendar.moment(componentFootprint.dateRange.startMs);
 		var end;
 		var eventDef;
 
 		// if dropped on an all-day span, and element's metadata specified a time, set it
-		if (meta.startTime && componentFootprint.isAllDay) {
+		if (meta.startTime && isAllDay) {
 			start.time(meta.startTime);
+			isAllDay = false;
 		}
 
 		if (meta.duration) {
 			end = start.clone().add(meta.duration);
 		}
 
-		if (componentFootprint.isAllDay) {
+		// TODO: make DRY with fabricateEventFootprint!
+		if (isAllDay) {
 			start.stripTime();
-
 			if (end) {
 				end.stripTime();
 			}
 		}
+		else if (!calendar.opt('timezone')) {
+			start.stripZone();
+			if (end) {
+				end.stripZone();
+			}
+		}
 
 		eventDef = SingleEventDef.parse(
 			$.extend({}, meta.eventProps, {
 				start: start,
 				end: end
 			}),
-			calendar
+			calendar.eventManager.stickySource
 		);
 
 		return eventDef;

+ 5 - 0
src/common/Grid.js

@@ -476,10 +476,15 @@ var Grid = FC.Grid = ChronoComponent.extend({
 		dummyEvent.start = calendar.moment(componentFootprint.dateRange.startMs);
 		dummyEvent.end = calendar.moment(componentFootprint.dateRange.endMs);
 
+		// TODO: make DRY with computeExternalDrop!
 		if (componentFootprint.isAllDay) {
 			dummyEvent.start.stripTime();
 			dummyEvent.end.stripTime();
 		}
+		else if (!calendar.opt('timezone')) {
+			dummyEvent.start.stripZone();
+			dummyEvent.end.stripZone();
+		}
 
 		dummyInstance = dummyEvent.buildInstances()[0];
 

+ 1 - 1
src/models/EventManager.js

@@ -3,7 +3,7 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 
 	currentPeriod: null,
 
-	stickySource: null,
+	stickySource: null, // TODO: move this into Calendar?
 	otherSources: null, // does not include sticky source