Skip to content
This repository was archived by the owner on Sep 8, 2020. It is now read-only.

Commit 3314ea3

Browse files
committed
Fixed onChanged for events - object passed to 'updateEvent' must be original Event Object
1 parent 3cdd780 commit 3314ea3

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

src/calendar.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,9 +289,12 @@ angular.module('ui.calendar', [])
289289
};
290290

291291
eventsWatcher.onChanged = function(event) {
292-
event._start = jQuery.fullCalendar.moment(event.start);
293-
event._end = jQuery.fullCalendar.moment(event.end);
294-
calendar.fullCalendar('updateEvent', event);
292+
var clientEvents = calendar.fullCalendar('clientEvents', event._id);
293+
for (var i = 0; i < clientEvents.length; i++) {
294+
var clientEvent = clientEvents[i];
295+
clientEvent = angular.extend(clientEvent, event);
296+
calendar.fullCalendar('updateEvent', clientEvent);
297+
}
295298
};
296299

297300
eventSourcesWatcher.subscribe(scope);

test/calendar.spec.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,20 @@ describe('uiCalendar', function () {
172172
});
173173

174174
it('should make sure that if we just change the title of the event that it updates itself', function () {
175+
var originalEvent = angular.copy(scope.events[0]);
176+
$.fn.fullCalendar.andCallFake(function(method) {
177+
if (method === 'clientEvents') {
178+
return [ originalEvent ];
179+
}
180+
});
175181
scope.events[0].title = 'change title';
176182
scope.$apply();
177183
var fullCalendarParam = $.fn.fullCalendar.mostRecentCall.args[0];
178184
var fullCalendarParam1 = $.fn.fullCalendar.mostRecentCall.args[1];
179185
expect(fullCalendarParam).toEqual('updateEvent');
180-
expect(fullCalendarParam1).toEqual(scope.events[0]);
186+
expect(fullCalendarParam1).toEqual(originalEvent);
187+
// fullCalendar 'updateEvent' need an original Event Object
188+
expect(fullCalendarParam1).toBe(originalEvent);
181189
});
182190

183191
it('should make sure that if the calendars options change then the fullcalendar method is called with the new options', function () {

0 commit comments

Comments
 (0)