Fullcalendar v Salesforce

Pro neziskovou organizaci zabývající se péči o tělesně postižené, jsme vytvořili aplikaci, která umí plánovat práci lékařských asistentů u klientů doma. Jelikož každý klient má rozdílné požadavky na asistenta, v rozdílných časech, pro efektivní plánování se jevil nejvhodnější kalendářový pohled, který by šel filtrovat dle klientů, asistentů či dalších kritérií. Pro tento požadavek jsme využili Fullcalendar, který je nejrozšířenějším javascriptovým kalendářem na trhu.

Jak se dá propojit Fullcalendar se Salesforce ukážeme v následujících odstavcích.

  1. VisualForce Page 

Prvním krokem je vytvoření VisualForce Page, která bude obsahovat FullCalendar a volání metod v Controlleru, který budeme tvořit posléze. Pro to, aby FullCalendar správně fungoval, musíme dotáhnout jeho knihovny, jquery a moment.js. Je lepší tyto zdroje mít uložené jako statické zdroje v Salesforce, ale pro ukázku využijeme CDN umístěni, viz níže:

 Následně přidáme nastavení samotného Fullcalendar. Jednotlivá nastavení můžete nalézt v dokumentaci, podstatné je umístění kalendáře na stránce do místa s id #calendar a pak ještě apex:repeat, který zobrazí seznam událostí z Controlleru a jeho proměnné ‚events‘.

Nakonec přidáme ještě pole pro filtry dle Klienta a Asistenta, která jsou napojená na temp objekt v Salesforcu a slouží pro dohledání seznamu hodnotu. Při změně hodnoty je pak volána funkce changeFilter(), která následně volá funkci v Controlleru ‚changeFilterInController‘. Všimněte si i divu s id=’calendar‘. To je místo, kam se bude generovat náš kalendář.

 2. Controller

FullCalendar komunikuje a získává data z Controlleru, který je popsaný níže. Jeho základní prvky:

  • events – tady se natahají všechny události odpovídající filtru
  • tmpJob – tmp objekt pro vykreslení Lookup polí a předávání hodnot mezi VisualForce a Controllerem
  • metoda pageLoad – zpracuje podmínku a načte všechny události z databáze
  • metoda changeFilterInController – volá se při změně jmen čili volbě jiného filtru. Překresluje FullCalendar dle nových parametrů
  • class calEvent – pomocný objekt pro uložení dat události

One Comment

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *