Fullcalander.js Удалить событие с помощью календаря Google API - PullRequest
0 голосов
/ 13 мая 2019

Я использую библиотеку FullCalendar для загрузки событий в моем календаре из Google Calendars. И Календарь действительно отображает события, но теперь я хочу иметь возможность удалить / удалить событие, которое синхронизируется с календарем Google. Я уже пару дней ищу, как это сделать, но не могу найти ответ.

(я знаю пару человек, у которых была такая же проблема, но она не работает для меня) Я надеюсь, что кто-то может помочь мне найти решение.

document.addEventListener('DOMContentLoaded', function() {
                var calendarEl = document.getElementById('calendar');

                var calendar = new FullCalendar.Calendar(calendarEl, {
                    plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list', 'bootstrap', 'googleCalendar'],
                    customButtons: {
                        myCustomButton: {
                            text: 'custom!',
                            click: function() {
                                alert('clicked the custom button!');
                            }
                        }
                    },
                    header: {  right:  'prev,next today,list,dayGridDay,timeGridWeek,dayGridMonth', left: 'prev,next today myCustomButton' }, // buttons for switching between views
                    defaultView: 'timeGridWeek',
                    themeSystem: 'bootstrap',
                    editable: true,
                    eventLimit: true,
                    eventRender: function(eventObj, el) {

                    },
                    // Showing events
                    events:  {!! json_encode($events) !!},
                });

                calendar.render();
            });

Вот как я загружаю события:

$request->validate([ 'calendar_id' => 'required', ]); 
$gclient = new Gclient; $client = $gclient->client(); 
$cal = Calendar::find($request['calendar_id']); 
$client->setAccessToken($cal->gmail->token); 
$gcal_id = isset($cal->calendar_id) ? $cal->calendar_id : env('GOOGLE_DEFAULT'); 
$g_cal = new \Google_Service_Calendar($client); 
$eventlist = $g_cal->events->listEvents($gcal_id)->getItems();
$events = []; 

foreach ($eventlist as $event) { 
  if ($event->summary == NULL ) { 
    if ($event->location == NULL ) {
      $title = 'default';
    }
    else { 
      $title = $event->location; 
    } 
  }
  else { 
    $title = $event->summary; 
  }

  $events[] = [ 
    'title' => $title, 
    'start' => $event->start->dateTime, 
    'end' => $event->end->dateTime, 
    'id' => $event->id 
  ]; 
}
...