FC - jsonp

by slicedtoad

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.6/fullcalendar.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.6/fullcalendar.min.js"></script>
<div id='fullcalendar'></div>

JavaScript

$('#fullcalendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    eventTextColor: "Black",
    eventSources: [{
        events: function (start, end, timezone, callback) { //
            callback([{
                title: "local event",
                start: moment()
            }]);
        },
        /*url: actionUrl,
        data: function () {
            return {
                campusIds: getCampusIds(),
                lectureRoomIds: getLectureRoomsIds(),
                lecturerIds: getLecturerIds(),
                eventTypeIds: getEventTypeIds(),
            }
        },
        error: function () {
            alert('there was an error while fetching events!');
        },
        traditional: true,*/
    }, {
        events: function (start, end, timezone, callback) {
            console.log(start.format('YYYY-MMM'));
            $.ajax({
                type: "get",
                url: 'http://kayaposoft.com/enrico/json/v1.0/?action=getPublicHolidaysForDateRange&jsonp=?',
                data: {
                    country: "zaf",
                    fromDate: start.format('DD-MM-YYYY'),
                    toDate: end.format('DD-MM-YYYY')
                },
                dataType: 'jsonp',
                contentType: 'application/json',
                success: function (data) {
                    var events = [];
                    $.each(data, function (i, holiday) {
                        events.push({
                            start: moment({
                                year: holiday.date.year,
                                month: holiday.date.month - 1, //momentjs uses base 0 months
                                day: holiday.date.day
                            }),
                            title: holiday.englishName,
                            allDay: true
                        });
                    });
                   ...