Issue 2111: Error when switching months on full calendar
Status:  Invalid
Owner: ----
Closed:  Jun 2014
Reported by DuanBr...@gmail.com, Mar 11, 2014
I got a strange problem with fullcalendar. When I click on < > buttons, the same ajax actions was executed moren than once, like the image on link: http://snag.gy/VQfEU.jpg

If I keep clicking, more and more ajax calls are made. My code is:

$(document).ready(function () {

        var sourceFullView = { url: '/Agenda/GetDiaryEvents/' };
        var sourceSummaryView = { url: '/Agenda/GetDiarySummary/' };
        var CalLoading = true;

        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            defaultView: 'month',
            editable: true,
            allDaySlot: false,
            selectable: true,
            slotMinutes: 15,

            events: '/Agenda/GetDiaryEvents/',

            eventClick: function (calEvent, jsEvent, view) {
                ClearPopupFormValues();
                $('#eventID').val(calEvent.id);
                $('#eventTitle').val(calEvent.title);
                $('#eventDate').val($.fullCalendar.formatDate(calEvent.start, 'dd/MM/yyyy'));
                $('#eventTime').val($.fullCalendar.formatDate(calEvent.start, 'HH:mm'));
                //Calculando timespan
                var start = new Date(calEvent.start.getFullYear(), calEvent.start.getMonth(), calEvent.start.getDate(), calEvent.start.getHours(), calEvent.start.getMinutes(), 0, 0);
                var end = new Date(calEvent.end.getFullYear(), calEvent.end.getMonth(), calEvent.end.getDate(), calEvent.end.getHours(), calEvent.end.getMinutes(), 0, 0);

                var weeks = 1000 * 60 * 60 * 24 * 7;
                var days = 1000 * 60 * 60 * 24;
                var hours = 1000 * 60 * 60;
                var mins = 1000 * 60;
                var secs = 1000;

                var diffWeeks = Math.ceil((start.getTime() - end.getTime()) / (weeks));
                var diffDays = Math.ceil((start.getTime() - end.getTime()) / (days));
                var diffHours = Math.ceil((start.getTime() - end.getTime()) / (hours));
                var diffMinutes = Math.ceil((start.getTime() - end.getTime()) / (mins));
                var diffSeconds = Math.ceil((start.getTime() - end.getTime()) / (secs));

                $('#eventDuration').val(Math.abs(diffMinutes));
                alert()
                $("#someKey").val(calEvent.someKey);
                $('#popupEventForm').modal('show');
                $('#eventTitle').focus();
                $('#btnPopupDelete').css('display', 'inline');
            },

            eventDrop: function (event, dayDelta, minuteDelta, allDay, revertFunc) {
                if (confirm("Confirma mudança no evento?")) {
                    UpdateEvent(event.id, event.start);
                }
                else {
                    revertFunc();
                }
            },

            eventResize: function (event, dayDelta, minuteDelta, revertFunc) {

                if (confirm("Confirma alteração na duração do evento?")) {
                    UpdateEvent(event.id, event.start, event.end);
                }
                else {
                    revertFunc();
                }
            },

            dayClick: function (date, allDay, jsEvent, view) {
                $('#descricao').val("");
                $('#eventDate').val($.fullCalendar.formatDate(date, 'dd/MM/yyyy'));
                $('#eventTime').val($.fullCalendar.formatDate(date, 'HH:mm'));

                ShowEventPopup(date);
                $('#btnPopupDelete').css('display', 'none');
            },

            eventRender: function (event, element) {
                element.find('.fc-event-time').text($.fullCalendar.formatDate(event.start, 'HH:mm'));
            },


            viewRender: function (view, element) {

                if (!CalLoading) {
                    if (view.name == 'month') {
                        $('#calendar').fullCalendar('removeEventSource', sourceFullView);
                        $('#calendar').fullCalendar('removeEvents');
                        $('#calendar').fullCalendar('addEventSource', sourceSummaryView);
                    }
                    else {
                        $('#calendar').fullCalendar('removeEventSource', sourceSummaryView);
                        $('#calendar').fullCalendar('removeEvents');
                        $('#calendar').fullCalendar('addEventSource', sourceFullView);
                    }
                }
            }

        });

        CalLoading = false;


    });

Anyone can help?

Thanks
Apr 21, 2014
#1 david.me...@gmail.com
When the property Allday default = false or reading of data base Allday and treat the "eventRender" event, nothing is displayed. 
The "compileSlotSegs" fullcalendar.js function has an error in the "colSegs" object. 
The "colSegs' object has no data. 
This happens in version 2.0.0-beta2. 
In version 1.6.4 works correctly. 
Does anyone know why or have a solution? 
thanks
Jun 7, 2014
Project Member #2 adamrs...@gmail.com
(No comment was entered for this change.)
Status: Invalid