2011-05-15 3 views
4

Je me demande s'il y a une option qui me manque dans FullCalendar. J'ai actuellement l'affichage par défaut pour être «mois». Mais ce que je voudrais arriver, c'est que si l'utilisateur consulte la vue "semaine", la prochaine fois que l'utilisateur visite le site Web que la vue "semaine" affichera au lieu du mois. Je m'interroge sur la mise en place sans utiliser de base de données.FullCalendar "view" cacheable

Je sais que les onglets de l'interface utilisateur jQuery ont cette capacité en utilisant la fonction 'cache' ... est-ce quelque chose que je peux implémenter ici aussi? Si c'est le cas, comment?

Toute direction serait appréciable.

Répondre

7

ChangeView ne fonctionne pas, comme viewDisplay est appelée avant quand le calendrier est configuré.

voici ce qui fonctionne:

dans l'objet de l'initialisation, ajoutez:

defaultView: $.cookie('fullcalendar_defaultView') || 'month', 

viewDisplay: function(view) { $.cookie('fullcalendar_defaultView', view.name); } 
2

Vous pouvez stocker ce paramètre dans un cookie en utilisant jQuery.cookie qui est la bibliothèque utilisée par les onglets. La façon dont vous gérez cela et où elle est configurée est plus une question à laquelle vous devez répondre, puisque vous n'avez fourni aucun code.

0

Dans votre cas, vous devez mettre du code dans l'événement viewDisplay. http://arshaw.com/fullcalendar/docs/display/viewDisplay/

Quelque chose de pareil.

$('#calendar').fullCalendar({ 
    viewDisplay: function(view) { 
     setCookie("lastView", view.name); 
    } 
}); 

Vous pouvez obtenir plus d'informations sur ce inforamtion les vue magasins ici http://arshaw.com/fullcalendar/docs/views/View_Object/

Alors, tout ce que vous avez à faire est d'utiliser le la ChangeView lorsque la page se charge avec une méthode (par exemple dans le jQuery prêt ou quelque chose)

http://arshaw.com/fullcalendar/docs/views/changeView/

quelque chose de similaire à

.fullCalendar('changeView', getCookie("lastView")) 

Il y a beaucoup de plugins cookie à jQuery mais ils fonctionnent tous un peu différent. J'ai basé ma réponse sur un code de pureJS trouvé au http://jquery-howto.blogspot.com/2010/09/jquery-cookies-getsetdelete-plugin.html, il pourrait y en avoir beaucoup mieux.

+0

Merci pour votre réponse, cela semble prometteur, je vous ferai savoir comment ça se passe. – Justin

0

Dans la version: 3.0.0 viewDisplay a été renommé viewRender, donc le code actuel voudrais que:

defaultView: $.cookie('fullcalendar_defaultView') || 'month', viewRender: function(view) { $.cookie('fullcalendar_defaultView', view.name); }