fixed issue 757 (removeEvents bug)

This commit is contained in:
Adam Shaw 2011-01-01 13:09:41 -08:00
parent 61d663d461
commit 679b9e48d6
2 changed files with 101 additions and 4 deletions

View file

@ -28,7 +28,6 @@ function EventManager(options, sources) {
var currentFetchID = 0; var currentFetchID = 0;
var pendingSourceCnt = 0; var pendingSourceCnt = 0;
var loadingLevel = 0; var loadingLevel = 0;
var dynamicEventSource = [];
var cache = []; var cache = [];
@ -111,7 +110,8 @@ function EventManager(options, sources) {
-----------------------------------------------------------------------------*/ -----------------------------------------------------------------------------*/
sources.push(dynamicEventSource); // first event source is reserved for "sticky" events
sources.unshift([]);
function addEventSource(source) { function addEventSource(source) {
@ -175,8 +175,8 @@ function EventManager(options, sources) {
normalizeEvent(event); normalizeEvent(event);
if (!event.source) { if (!event.source) {
if (stick) { if (stick) {
dynamicEventSource.push(event); sources[0].push(event);
event.source = dynamicEventSource; event.source = sources[0];
} }
cache.push(event); cache.push(event);
} }
@ -205,6 +205,7 @@ function EventManager(options, sources) {
for (var i=0; i<sources.length; i++) { for (var i=0; i<sources.length; i++) {
if (typeof sources[i] == 'object') { if (typeof sources[i] == 'object') {
sources[i] = $.grep(sources[i], filter, true); sources[i] = $.grep(sources[i], filter, true);
// TODO: event objects' sources will no longer be correct reference :(
} }
} }
} }

View file

@ -0,0 +1,96 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type='text/javascript' src='../src/_loader.js?debug'></script>
<script type='text/javascript'>
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,basicWeek,agendaDay,basicDay'
},
editable: true,
//isRTL: true,
year: 2011,
month: 0,
events: [
{
title: 'All Day Event',
start: new Date(y, m, 1)
},
{
title: 'Long Event',
start: new Date(y, m, d-5),
end: new Date(y, m, d-2)
},
{
id: 999,
title: 'Repeating Event',
start: new Date(y, m, d-3, 16, 0),
allDay: false
},
{
id: 999,
title: 'Repeating Event',
start: new Date(y, m, d+4, 16, 0),
allDay: false
},
{
title: 'Meeting',
start: new Date(y, m, d, 10, 30),
allDay: false
},
{
title: 'Lunch',
start: new Date(y, m, d, 12, 5),
end: new Date(y, m, d, 14, 43),
allDay: false
},
{
title: 'Birthday Party',
start: new Date(y, m, d+1, 19, 0),
end: new Date(y, m, d+1, 22, 30),
allDay: false
},
{
title: 'Click for Google',
start: new Date(y, m, 28),
end: new Date(y, m, 29),
url: 'http://google.com/'
}
]
});
});
</script>
<style type='text/css'>
body {
margin-top: 40px;
text-align: center;
font-size: 13px;
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
}
#calendar {
width: 900px;
margin: 0 auto;
}
</style>
</head>
<body>
<button onclick="$('#calendar').fullCalendar('removeEvents')">removeEvents</button>
<button onclick="$('#calendar').fullCalendar('renderEvent', { title:'hey', start:'2011-01-09' }, true)">addEvent (with stick)</button>
<div id='calendar'></div>
</body>
</html>