FullCalendar – přesměrování na stránku po kliknutí na událost

ver07
Člen | 5
+
0
-

Ahoj,

potřebovala bych poradit, jak docílit přesměrování na stránku po kliknutí na událost, potřebuji při tom přenášet i id dané události.

Události načítám do kalendáře pomocí následujícího kódu:

public function getTrenink()
  {
    $result = $this->trainingModel->getTrainings()->order('id');
    foreach ($result as $row){
          $data[] = [
            'id'   => $row['id'],
            'title' => $row->ref('tym', 'id_tymu')->nazev,
            'start' => DateTime::from($row['datum_zacatku'])->format('Y-m-d H:i'),
            'end' => DateTime::from($row['datum_konce'])->format('Y-m-d H:i'),
      ];
     }

    return $data;
  }

  public function handleLoadTreninky(){
      $data = $this->getTrenink();
      $this->redrawControl('calendar');
      bdump($data);
      return $this->sendJson($data);
   }

Následně pak v šabloně vykresluji události v kalendáři tímto způsobem:

`<script>
     $(document).ready(function() {
         $('#calendar').fullCalendar({
            height: 500,
            defaultView: 'agendaWeek',
            minTime: '12:00:00',
            locale: 'cs',
            header: {
                 title: 'MMMM YYYY',
                 left: 'prev,next today',
                 right: 'month,agendaWeek,agendaDay,listMonth',
                 center: 'title'
             },
             events: {link loadTreninky! },

         });
     });

 </script>
<div id='calendar'></div>`

Přesměrování na jinou stránku potřebuji z důvodu podrobných informací o daném tréninku (účast/neúčast apod.). Jsem v nete začátečník a na tomto jsem se zasekla a opravdu nevím, jak postupovat.

Předem děkuji za případné odpovědi.

David Matějka
Moderator | 6445
+
+2
-

ahoj, to nesouvisí tak s nette, jako s fullCalendar. konkrétně ty jednotlivé události maji krom id, title, start a end ještě další properties, tebe zajímá „url“. takže jak generuješ seznam těch událostí, tak tam přidej něco jako 'url' => $this->link('EventDetail:default', ['id' => $row['id']]) (samozřejmě se správnou destinací :) )

mimochodem, jak máš return $this->sendJson($data);, tak ten return je zbytečný. při zavolání sendJson se ukončí běh presenteru.

ver07
Člen | 5
+
0
-

David Matějka napsal(a):

ahoj, to nesouvisí tak s nette, jako s fullCalendar. konkrétně ty jednotlivé události maji krom id, title, start a end ještě další properties, tebe zajímá „url“. takže jak generuješ seznam těch událostí, tak tam přidej něco jako 'url' => $this->link('EventDetail:default', ['id' => $row['id']]) (samozřejmě se správnou destinací :) )

mimochodem, jak máš return $this->sendJson($data);, tak ten return je zbytečný. při zavolání sendJson se ukončí běh presenteru.

Funguje to, moc děkuji za odpověď, myslela jsem, že to bude složitější.