2010-10-01 11 views
0

J'ai une implémentation de FullCalendar tirant un flux Google Calendar pour une patinoire communautaire.Manquant des événements à la fin de la semaine (après 19h00) avec gcalFeed

Tout semble bien fonctionner, sauf les deux derniers événements de la semaine manquent à partir de 19h00 le samedi. J'ai essayé de supprimer les événements, en ajoutant un événement différent. Renommer des événements, en supprimant d'autres événements pour voir s'il y en a trop.

Le flux XML est valide. Je ne sais pas quoi faire d'autre. Il n'y a pas d'erreur javascript.

Ceci est l'URL du calendrier (http://www.google.com/calendar/feeds/0vf900bq0u01v826rjvirb02b4%40group.calendar.google.com/public/basic) et c'est le code que j'utilise:

$(function() { 
    $('#fullcal').fullCalendar({ 

     events:   
      $.fullCalendar.gcalFeed('http://www.google.com/calendar/feeds/0vf900bq0u01v826rjvirb02b4%40group.calendar.google.com/public/basic', 
      { 
       // put your options here 
       className:  'gcal-event', 
       currentTimezone: 'America/Denver' 
      } 
     ), 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     defaultView: 'agendaWeek', 
     eventClick: function(event) { 
      window.open(event.url, 'gcalevent', 'width=700,height=600'); 
      return false; 
     }, 

     loading: function(bool) { 
      if (bool) { 
       $('#loading').show(); 
      } else { 
       $('#loading').hide(); 
      } 
     } 
    }); 
}); 
+0

Dans quel fuseau horaire êtes-vous? :) –

+0

MST, et par coïncidence, si je supprime currentTimezone, il montre réellement les événements, mais au mauvais moment. – user463997

+0

Le site est situé ici: http://www.stumptowniceden.com/ et il semble que si je reviens et fort entre les vues et passer des semaines et revenir à la semaine en question, je peux le faire apparaître de temps en temps, n'ont pas pu pour le clouer encore. – user463997

Répondre

0

Je sais que cela a été demandé il y a plusieurs années, mais je viens de croiser et j'avoir un solution de contournement laide qui peut aider les autres avec ce problème.

Voici comment je suis arrivé à la recherche de choses à droite avec agendaViews:

Dans l'initialisation du Fullcalendar, réglez le defaultView au « mois ». Ensuite, définissez lazyFetching sur true. Maintenant, définissez la méthode 'loading' pour changer le type de vue. L'initialisation devrait ressembler à ceci:

$('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: '' 
     },  
     defaultView: 'month', 
     allDayDefault: false, 
     timeFormat: '', 
     allDaySlot: false, 
     editable: false, 
     lazyFetching: true, 
     eventLimit: false,   

     events: 'https://www.google.com/calendar/feeds/mycalendarURL', 

     loading: function(bool) { 
      $('#calendar').fullCalendar('changeView', 'agendaWeek'); 
      } 

    }); 

Croyez-le ou non, la vue 'mois' originale n'apparaît pas; la vue agendaWeek est la seule qui apparaisse - du moins comme je la teste ici en ce moment dans Safari sur mon Mac.

Fondamentalement, cette méthode de piratage définit la vue à une vue qui semble rassembler tous les événements correctement, puis, la vue est passée à ce que nous voulons vraiment voir. En activant lazyFetching, les événements déjà chargés sont conservés.

Notez que si l'utilisateur navigue vers des événements lointains ou passés, d'autres événements devront être chargés. Lorsque cela se produit, tout se passe une fois de plus, même si l'utilisateur revient à l'endroit où il a commencé. Pour mon application, je limite la visualisation à une petite plage de dates, donc c'est bien. Pour d'autres applications, cela pourrait poser problème.

Espérons qu'une solution appropriée apparaîtra un jour parce que j'ai trouvé au moins trois autres personnes qui ont vu ce problème après avoir parcouru Internet en essayant de trouver une solution. J'espère que ma solution de piratage aidera les autres jusqu'à ce que cela soit officiellement fixé.