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

was renamed "thaw"

Adam Shaw 8 éve
szülő
commit
65aeacfc75

+ 4 - 4
src/Calendar.events-api.js

@@ -62,7 +62,7 @@ Calendar.mixin({
 			eventManager.refetchSource(sources[i]);
 			eventManager.refetchSource(sources[i]);
 		}
 		}
 
 
-		eventManager.unfreeze();
+		eventManager.thaw();
 	},
 	},
 
 
 
 
@@ -83,7 +83,7 @@ Calendar.mixin({
 			this.renderEvent(eventInputs[i], isSticky);
 			this.renderEvent(eventInputs[i], isSticky);
 		}
 		}
 
 
-		this.eventManager.unfreeze();
+		this.eventManager.thaw();
 	},
 	},
 
 
 
 
@@ -113,7 +113,7 @@ Calendar.mixin({
 			eventManager.removeEventDefsById(eventIds[i]);
 			eventManager.removeEventDefsById(eventIds[i]);
 		}
 		}
 
 
-		eventManager.unfreeze();
+		eventManager.thaw();
 	},
 	},
 
 
 
 
@@ -159,7 +159,7 @@ Calendar.mixin({
 			this.updateEvent(eventPropsArray[i]);
 			this.updateEvent(eventPropsArray[i]);
 		}
 		}
 
 
-		this.eventManager.unfreeze();
+		this.eventManager.thaw();
 	},
 	},
 
 
 
 

+ 1 - 1
src/common/Grid.js

@@ -452,7 +452,7 @@ var Grid = FC.Grid = ChronoComponent.extend({
 	renderHelperEventRanges: function(eventRanges, sourceSeg) {
 	renderHelperEventRanges: function(eventRanges, sourceSeg) {
 		return this.renderHelperEventFootprints(
 		return this.renderHelperEventFootprints(
 			this.eventRangesToEventFootprints(eventRanges)
 			this.eventRangesToEventFootprints(eventRanges)
-		);
+		).addClass('fc-helper');
 	},
 	},
 
 
 
 

+ 16 - 4
src/common/View.js

@@ -717,13 +717,19 @@ var View = FC.View = ChronoComponent.extend({
 
 
 	reportEventDrop: function(legacyEvent, eventMutation, el, ev) {
 	reportEventDrop: function(legacyEvent, eventMutation, el, ev) {
 		var eventManager = this.calendar.eventManager;
 		var eventManager = this.calendar.eventManager;
+		var eventDef = eventManager.getEventDefByUid(legacyEvent._id);
 		var undoFunc = eventManager.mutateEventsWithId(
 		var undoFunc = eventManager.mutateEventsWithId(
-			eventManager.getEventDefByUid(legacyEvent._id).id,
+			eventDef.id,
 			eventMutation,
 			eventMutation,
 			this.calendar
 			this.calendar
 		);
 		);
 
 
-		this.triggerEventDrop(legacyEvent, eventMutation.dateDelta, undoFunc, el, ev);
+		this.triggerEventDrop(
+			eventManager.getEventInstancesById(eventDef.id)[0].toLegacy(),
+			eventMutation.dateMutation.dateDelta,
+			undoFunc,
+			el, ev
+		);
 	},
 	},
 
 
 
 
@@ -774,13 +780,19 @@ var View = FC.View = ChronoComponent.extend({
 	// Must be called when an event in the view has been resized to a new length
 	// Must be called when an event in the view has been resized to a new length
 	reportEventResize: function(legacyEvent, eventMutation, el, ev) {
 	reportEventResize: function(legacyEvent, eventMutation, el, ev) {
 		var eventManager = this.calendar.eventManager;
 		var eventManager = this.calendar.eventManager;
+		var eventDef = eventManager.getEventDefByUid(legacyEvent._id);
 		var undoFunc = eventManager.mutateEventsWithId(
 		var undoFunc = eventManager.mutateEventsWithId(
-			eventManager.getEventDefByUid(legacyEvent._id).id,
+			eventDef.id,
 			eventMutation,
 			eventMutation,
 			this.calendar
 			this.calendar
 		);
 		);
 
 
-		this.triggerEventResize(legacyEvent, eventMutation.endDelta, undoFunc, el, ev);
+		this.triggerEventResize(
+			eventManager.getEventInstancesById(eventDef.id)[0].toLegacy(),
+			eventMutation.dateMutation.endDelta,
+			undoFunc,
+			el, ev
+		);
 	},
 	},
 
 
 
 

+ 1 - 0
src/models/EventManager.js

@@ -325,6 +325,7 @@ var EventManager = Class.extend(EmitterMixin, ListenerMixin, {
 [
 [
 	'getEventDefsById',
 	'getEventDefsById',
 	'getEventInstances',
 	'getEventInstances',
+	'getEventInstancesById',
 	'getEventRanges',
 	'getEventRanges',
 	'getEventRangesWithId',
 	'getEventRangesWithId',
 	'getEventRangesWithoutId'
 	'getEventRangesWithoutId'

+ 11 - 0
src/models/EventPeriod.js

@@ -234,6 +234,17 @@ var EventPeriod = Class.extend(EmitterMixin, {
 	},
 	},
 
 
 
 
+	getEventInstancesById: function(eventDefId) {
+		var eventInstances = this.eventInstancesById[eventDefId];
+
+		if (eventInstances) {
+			return eventInstances.slice(); // clone
+		}
+
+		return [];
+	},
+
+
 	addEventInstance: function(eventInstance, eventDefId) {
 	addEventInstance: function(eventInstance, eventDefId) {
 		var eventInstancesById = this.eventInstancesById;
 		var eventInstancesById = this.eventInstancesById;
 		var eventInstances = eventInstancesById[eventDefId] ||
 		var eventInstances = eventInstancesById[eventDefId] ||

+ 4 - 2
src/models/event/SingleEventDef.js

@@ -82,8 +82,10 @@ SingleEventDef.pluckAndParse = function(rawProps, source) {
 		}
 		}
 	}
 	}
 	else if (forcedAllDay === false) {
 	else if (forcedAllDay === false) {
-		start.time(0);
-		if (end) {
+		if (!start.hasTime()) {
+			start.time(0);
+		}
+		if (end && !start.hasTime()) {
 			end.time(0);
 			end.time(0);
 		}
 		}
 	}
 	}

+ 18 - 0
tests/legacy/event-dnd.js

@@ -52,7 +52,10 @@ describe('eventDrop', function() {
 
 
 								expect(event.start).toEqualMoment('2014-06-20');
 								expect(event.start).toEqualMoment('2014-06-20');
 								expect(event.end).toBeNull();
 								expect(event.end).toBeNull();
+
 								revertFunc();
 								revertFunc();
+								event = $('#cal').fullCalendar('clientEvents')[0];
+
 								expect(event.start).toEqualMoment('2014-06-11');
 								expect(event.start).toEqualMoment('2014-06-11');
 								expect(event.end).toBeNull();
 								expect(event.end).toBeNull();
 
 
@@ -88,7 +91,10 @@ describe('eventDrop', function() {
 
 
 						expect(event.start).toEqualMoment('2014-06-16T06:00:00');
 						expect(event.start).toEqualMoment('2014-06-16T06:00:00');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
+
 						revertFunc();
 						revertFunc();
+						event = $('#cal').fullCalendar('clientEvents')[0];
+
 						expect(event.start).toEqualMoment('2014-06-11T06:00:00');
 						expect(event.start).toEqualMoment('2014-06-11T06:00:00');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
 
 
@@ -181,7 +187,10 @@ describe('eventDrop', function() {
 
 
 								expect(event.start).toEqualMoment('2014-06-12T07:30:00');
 								expect(event.start).toEqualMoment('2014-06-12T07:30:00');
 								expect(event.end).toBeNull();
 								expect(event.end).toBeNull();
+
 								revertFunc();
 								revertFunc();
+								event = $('#cal').fullCalendar('clientEvents')[0];
+
 								expect(event.start).toEqualMoment('2014-06-11T06:00:00');
 								expect(event.start).toEqualMoment('2014-06-11T06:00:00');
 								expect(event.end).toBeNull();
 								expect(event.end).toBeNull();
 
 
@@ -216,7 +225,10 @@ describe('eventDrop', function() {
 
 
 						expect(event.start).toEqualMoment('2014-06-13');
 						expect(event.start).toEqualMoment('2014-06-13');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
+
 						revertFunc();
 						revertFunc();
+						event = $('#cal').fullCalendar('clientEvents')[0];
+
 						expect(event.start).toEqualMoment('2014-06-11');
 						expect(event.start).toEqualMoment('2014-06-11');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
 
 
@@ -255,7 +267,10 @@ describe('eventDrop', function() {
 						expect(event.start).toEqualMoment('2014-06-10T01:00:00');
 						expect(event.start).toEqualMoment('2014-06-10T01:00:00');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
 						expect(event.allDay).toBe(false);
 						expect(event.allDay).toBe(false);
+
 						revertFunc();
 						revertFunc();
+						event = $('#cal').fullCalendar('clientEvents')[0];
+
 						expect(event.start).toEqualMoment('2014-06-11');
 						expect(event.start).toEqualMoment('2014-06-11');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
 						expect(event.allDay).toBe(true);
 						expect(event.allDay).toBe(true);
@@ -308,7 +323,10 @@ describe('eventDrop', function() {
 						expect(event.start).toEqualMoment('2014-06-10');
 						expect(event.start).toEqualMoment('2014-06-10');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
 						expect(event.allDay).toBe(true);
 						expect(event.allDay).toBe(true);
+
 						revertFunc();
 						revertFunc();
+						event = $('#cal').fullCalendar('clientEvents')[0];
+
 						expect(event.start).toEqualMoment('2014-06-11T01:00:00');
 						expect(event.start).toEqualMoment('2014-06-11T01:00:00');
 						expect(event.end).toBeNull();
 						expect(event.end).toBeNull();
 						expect(event.allDay).toBe(false);
 						expect(event.allDay).toBe(false);