Fullcalendar s nette a ajaxem
- ALLSSA
- Člen | 4
Zdravím, mám problém s invalidováním fullcalenar.
Nette v0.9.6 prefixed
PHP v5.3.13
Apatche v2.2.22
Fullcalendar v1.6.4
jQuery v1.9.1
Jen k obraně projektu. Jeho vývoj začal už před několika lety a k upgradu na novější verzi jsme se ještě neodhodlali, protože to je obrovský.
V php mám kód, který funguje, přijdou správná data po ajaxovém požadavku (ověřeno pomocí Firebugu), ale nedaří se mi je dostat do kalendáře, resp. stále zůstávají ty staré.
{snippet test}
<script>
$(document).ready(function() {
$.nette.updateSnippet = function(){
var source = {$events};
$('#calendar').fullCalendar( 'removeEvents' );
$('#calendar').fullCalendar( 'addEventSource', source );
$('#calendar').fullCalendar( 'refetchEvents' );
$('#calendar').fullCalendar( 'rerenderEvents' );
};
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: false,
allDaySlot:false,
events: {$events}
</script>
<div id='calendar'></div>
{/snippet}
CHYBA: zde je chyba v tom, že se proměnná $events natáhne původní, když se tvoří dokument
Napadlo mě ještě několik řešení a vyzkoušel jsem toho hodně, ale nic nefunguje. Čili co potřebuji. Buď řešení, jak dynamicky přenačítat proměnou events s následně měnit nebo nějaké jiné, které jsem přehlédl.
Jen pro upřesnění. Data odesílám ajaxem jiným kódem a v handlu mám toto:
<?php
public function handleMoveCalendar($data)
{
...
$this->template->events = $this->modifyEventsForCalendar($events);
if($this->isAjax())
{
$this->invalidateControl();
}
}
?>
Předem díky