Получить события из календаря Google и базы данных, чтобы появиться в fullcalendar - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь показать события из базы данных сущностей и из общедоступного календаря Google.

Я перепробовал все опции, показанные в переполнении стека, но безрезультатно.Я могу получить события для загрузки в два разных календаря на разных страницах, используя примеры Пример календаря Google (github) и Пример базы данных (YouTube)

Однако я могуне заставить их загружать в тот же календарь на одной HTML-странице.Я использую приложение MVC5 на vs 2017. Я просто хобби и не квалифицированный программист, поэтому любая помощь очень ценится.

вот как я получаю событие из базы данных:

$(document).ready(function () {
    var events = [];
    var selectedEvent = null;
    FetchEventAndRenderCalendar();
    function FetchEventAndRenderCalendar() {
        events = [];
        $.ajax({
            type: "GET",
            url: "/home/ListEvents",
            success: function (data) {
                $.each(data, function (i, v) {
                    events.push({
                        eventID: v.EventID,
                        title: v.Subject,
                        description: v.Description,
                        start: moment(v.Start),
                        end: v.End != null ? moment(v.End) : null,
                        color: v.ThemeColor,
                        allDay: v.IsFullDay
                    });
                })

                GenerateCalender(events);
            },
            error: function (error) {
                alert('failed');
            }
        })
    }

и вот как я получаю событие из базы данных и Google (следующий код выше):

function GenerateCalender(events) {
    $('#calender').fullCalendar('destroy');
    $('#calender').fullCalendar({
        contentHeight: 400,
        defaultDate: new Date(),
        timeFormat: 'h(:mm)a',
        plugins: ['interaction', 'dayGrid', 'list', 'googleCalendarPlugin'],
        header: {
            left: 'prevYear,prev,next,nextYear today',
            center: 'title',
            right: 'listMonth,month,basicWeek,basicDay'
        },
        eventLimit: true,
        eventColor: '#378006',
        eventRender: function (event, element, view) {
            element.find('#txtSubject');
            element.find('#txtSubject');
            element.find('.fc-list-item-title');
            element.find('.fc-list-item-title');
            //return ['all', event.conferencier].indexOf($('#filter-conferencier').val()) >= 0;
            return ['All events', event.title].indexOf($('#numero').val()) >= 0 || ['', event.color].indexOf($('#color').val()) >= 0;
        },
        googleCalendarApiKey: '*************************',
        eventSources: [
            events,
            {
                googleCalendarId:'blah...blah' 
            }
        ],
        eventClick: ETC ETC
    });

Я также попытался добавить эти строки:

    $('#calendar').fullCalendar('addEventSource', 'https://calendar.google.com/calendar/embed?src=BLAH.......BLAH');
    }
})
...