> For the complete documentation index, see [llms.txt](https://flexbook.gitbook.io/integracni-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flexbook.gitbook.io/integracni-manual/javascript-komponenty/flbeventlist.md).

# flbEventList

Zobrazí seznam všech a nebo vyspecifikovaných aktivních akcí poskytovatele, které je možné filtrovat podle střediska a nebo tagu

**Volitelné parametry:**

* **tag**: je pole textových řetězců asociované k akci nebo zdroji. Tagy se kombinují pomocí logického operátoru AND. V příkladu výše se tedy zobrazí akce označené tagem *kurt* a tagem *trener*. Tagy středisek je možné dohledat v back-officu rezervačního systému FlexBook.
  * Příklad použití parametru:
    * tag: \['kurt','trener']
* **tagOperator:** možnost předefinování defaultního logického operátoru (AND), který se aplikuje na tagy &#x20;
  * Možné hodnoty
    * or
    * and
* **center**: je pole integer hodnot, identifikující konkrétní střediska poskytovatele. Identifikátory středisek je možné dohledat v back-officu rezervačního systému FlexBook.
* **region:** pole řetězců omezující výpis akcí na akce, které jsou na střediscích v konkrétním kraji
* **organiser**: možnost omezit akce na akce konkrétního organizátora. Konkrétní organizátor se zadává pomocí emailové adresy a nebo je možné zadat místo emailové adresy speciální hodnotu ***loggedInUser***, která zajistí doplnění aktuálně nalogovaného uživatele do front-endu
* **dateMin**: možnost omezit akce podle datumu začátku akce (YYYY-MM-DD)
* **dateMax**: možnost omezit akce podle datumu konce akce (YYYY-MM-DD)
* **weekday:** možnost omezit akce pouze na ty, které začínají v určitý den v týdnu. Např.: weekday: 'mon,tue' zajistí zobrazení událostí začínajících v pondělí nebo v úterý.
* **count**: možnost omezit počet zobrazených akcí
* **onPageCount:** možnost omezit počet zobrazených akcí s možností zobrazit (dogenerovat) další pomocí buttonu&#x20;
  * Příklad použití parametru:
    * *onPageCount: 10*
* **renderText:** definice atributů, které se mají pro konkrétní akci zobrazit v detailu vybrané akce. Viz. parametr *renderText* v komponentě *flbEventDetail*
* **cycleItemTemplate:** možnost definice HTML šablony pro změnu řádku jedné lekce v cyklu zobrazované v detailu vybrané akce (typu cyklus). Viz. parametr *cycleItemTemplate* v komponentě *flbEventDetail*
* **attendeeTemplate:** možnost definice HTML šablony jednoho účastníka akce, tak jak se to má pro konkrétní akci zobrazit v detailu vybrané akce. Viz. parametr *attendeeTemplate* v komponentě *flbEventDetail*
* **eventResourcePrefix** a **eventResourcePostfix**: parametry, které se dají použít v případě, že je použit *@@EVENT\_RESOURCE* v parametru *eventTemplate*. Parametry je možné nadefinovat co se ma zobrazit před zdrojem a za zdrojem - např. někdo chce udělat seznam "\<název události> - \<název zdroje>", některé události nemusí mít zdroj a pak by tam bylo "\<název události> - ", takže řešení je nadefinovat eventResourcePrefix=' - ' a ten se přidá pouze když má událost asociovaný nějaký zdroj.
* **eventTemplate:** možnost definice HTML šablony jedné neopakující se akce v seznamu
  * Možné hodnoty: jeden string obsahující následující tagy
    * @@ID
    * @@EVENT\_NAME
    * @@EVENT\_DESCRIPTION
    * @@EVENT\_CENTER
      * @@EVENT\_CENTER\_STREET
      * @@EVENT\_CENTER\_CITY
      * @@EVENT\_CENTER\_ZIP
      * @@EVENT\_CENTER\_REGION
      * @@EVENT\_CENTER\_COUNTRY
    * @@EVENT\_START
    * @@EVENT\_END
    * @@EVENT\_START\_DATE
    * @@EVENT\_START\_TIME
    * @@EVENT\_END\_DATE
    * @@EVENT\_END\_TIME
    * @@EVENT\_ORGANISER
    * @@EVENT\_PLACES
    * @@EVENT\_FREE
    * @@EVENT\_FREE\_SUBSTITUTE
    * @@EVENT\_PRICE
    * @@EVENT\_ATTRIBUTE(\<zkratka\_atributu>)
    * @@EVENT\_RESOURCE
    * @@EVENT\_PHOTO - zobrazí první foto z externích fotek definovaných v rámci akce
    * @@EVENT\_PHOTOTHUMB - zobrazí náhled všech fotografií z externích fotek definovaných v rámci akce
  * Default: '@@EVENT\_NAME (@@EVENT\_START - @@EVENT\_END) - @@EVENT\_OVERALL\_FREE - @@EVENT\_PRICE'
* **eventCycleTemplate:** možnost definice HTML šablony jedné opakující se akce v seznamu
  * String může obsahovat stejné jako u parametru eventTemplate, ale navíc jsou implemetované následující tagy specfické pro opakující se akce (tzv. cykly)&#x20;
    * @@EVENT\_CYCLE\_COUNT - počet akcí (lekcí) v rámci cyklu&#x20;
  * Default: '@@EVENT\_NAME (@@EVENT\_START\_DATE - @@EVENT\_END\_DATE @@EVENT\_START\_TIME - @@EVENT\_END\_TIME) - @@EVENT\_OVERALL\_FREE - @@EVENT\_PRICE'
* **tag**: je pole textových řetězců asociované k akci nebo zdroji. Tagy se kombinují pomocí logického operátoru OR. V příkladu výše se tedy zobrazí akce označené tagem *kurt* nebo tagem *trener*. Tagy středisek je možné dohledat v back-officu rezervačního systému FlexBook.
  * Příklad použití parametru:
    * tag: \['kurt','trener']
* **tagOperator:** možnost předefinování defaultního logického operátoru (OR), který se aplikuje na tagy &#x20;
  * Možné hodnoty
    * or
    * and
* **center**: je integer hodnota, identifikující konkrétní středisko poskytovatele. Identifikátory středisek je možné dohledat v back-officu rezervačního systému FlexBook.
* **organiser**: možnost omezit akce na akce konkrétního organizátora. Konkrétní organizátor se zadává pomocí emailové adresy a nebo je možné zadat místo emailové adresy speciální hodnotu ***loggedInUser***, která zajistí doplnění aktuálně nalogovaného uživatele do front-endu
* **organiserCanReserveOnBehalf:** parameter, kterým je možné povolit z front-endu dělat rezervace organizátorům akcí. Pomocí hodnoty tohoto parametru se určuje, kterým uživatelům může rezervaci udělat. Jen tací uživatelé se mu nabízí ve výběru.
  * Možné hodnoty:
    * 'allUsers' - všichni uživatelé poskytovatele
    * {usersHavingReservationsOnEventWithTag: 'tag'} - uživatelé, kteří mají rezervaci na akci s uvedeným tagem
    * {usersHavingPaidReservationsOnEventWithTag: 'tag'} - uživatelé, kteří mají zaplacenou rezervaci na akci s uvedeným tagem
* **organiserCanReserveOnBehalfFunctionButtons**: parameter (pole), kterým je možné nadefinovat jaké buttony (funkce) bude mít organizátor na front-endu k dispozici.
  * Možné hodnoty:
    * 'attendeeToSubstitute'
    * 'cancelAttendee'
    * 'failAttendee'
    * 'substituteToAttendee'
    * 'cancelSubstitute'
  * Příklad použití parametru
    * *organiserCanReserveOnBehalfFunctionButtons:\[‘attendeeToSubstitute’,’cancelAttendee’,’failAttendee’,’substituteToAttendee’,’cancelSubstitute’],*
* **organiserCanReserveOnBehalfCustomColumn:** parametr (objekt / json), kterým je možné nadefinovat název a obsah třetího sloupce v AJAXovém vyhledávání.
  * Možné hodnoty:
    * 'name'
    * 'firstname'
    * 'lastname'
    * 'email'
    * 'address'
    * 'attribute\_\<XXX>', kde \<XXX> je ID uživatelského atributu z backoffice
  * Příklad použití parametru
    * *organiserCanReserveOnBehalfCustomColumn: { title: 'Custom column', value: 'attribute\_BIRTH' }*
* **organiserShowReservationAttendee**:&#x20;
  * Možné hodnoty:
    * 1 (default) - input liny pro zadání účastníků jména, příjmení a emailu se zobrazují
    * 0, false, null - input liny pro zadání účastníků jména, příjmení a emailu se nezobrazují, ale jen v případě, že jsou požadovány informace pro jednoho účastníka. V případě vstupu osobních informací pro více účastníků se input liny pro zadání účastníků zobrazují
* **dateMin**: možnost omezit akce podle datumu začátku akce (YYYY-MM-DD)
* **dateMax**: možnost omezit akce podle datumu konce akce (YYYY-MM-DD)
* **weekday:** možnost omezit akce pouze na ty, které začínají v určitý den v týdnu. Např.: weekday: 'mon,tue' zajistí zobrazení událostí začínajících v pondělí nebo v úterý.
* **count**: možnost omezit počet zobrazených akcí
* **onPageCount:** omezení počtu zobrazených akcí s možností dogenerování dalších akcí stisknutím tlačítka na konci výpisu
  * Příklad použití parametru
    * onPageCount: 10
* **renderText:** definice atributů, které se mají pro konkrétní akci zobrazit v detailu vybrané akce. Viz. parametr *renderText* v komponentě *flbEventDetail*
* **attendeeTemplate:** možnost definice HTML šablony jednoho účastníka akce, tak jak se to má pro konkrétní akci zobrazit v detailu vybrané akce. Viz. parametr *attendeeTemplate* v komponentě *flbEventDetail*
* **eventResourcePrefix** a **eventResourcePostfix**: parametry, které se dají použít v případě, že je použit *@@EVENT\_RESOURCE* v parametru *eventTemplate*. Parametry je možné nadefinovat co se ma zobrazit před zdrojem a za zdrojem - např. někdo chce udělat seznam "\<název události> - \<název zdroje>", některé události nemusí mít zdroj a pak by tam bylo "\<název události> - ", takže řešení je nadefinovat eventResourcePrefix=' - ' a ten se přidá pouze když má událost asociovaný nějaký zdroj.
* **eventTemplate:** možnost definice HTML šablony jedné akce v seznamu
  * Možné hodnoty: jeden string obsahující následující parametry
    * @@ID
    * @@EVENT\_NAME
    * @@EVENT\_DESCRIPTION
    * @@EVENT\_CENTER
    * @@EVENT\_START
    * @@EVENT\_END
    * @@EVENT\_ORGANISER
    * @@EVENT\_PLACES
    * @@EVENT\_FREE
    * @@EVENT\_FREE\_SUBSTITUTE
    * @@EVENT\_PRICE
    * @@EVENT\_ATTRIBUTE(\<zkratka\_atributu>)
    * @@EVENT\_RESOURCE
  * Default: empty string
  * Příklad: ' @@EVENT\_NAME *-* @@EVENT\_START '

**Přiklad 1 - seznam akcí ze střediska s ID 153 a rendrovat komponentu v českém jazyce**&#x20;

```
flbInit('https://www.flexbook.cz/ajax.php', 4, [
{
  type: 'flbEventList',
  placeHolder: 'flb_placeholder_1',
  params: {
    lang: 'cz',
    center : [153],
  },
}
]);
```

**Přiklad** **2 - seznam akcí s tagem** *kurt* **nebo** *trener***, ale jen ze středisek s ID 1 a 2**

```
flbEventList(
'flexbook_2',    
{
  tag: ['kurt','trener'],   
  center: [1,2]
}
);
```

**Přiklad 3 - akce organizátora s emailem** *<david.pasek@flexbook.cz>* **ze střediska ID 150 a v detailu rendrovat specifické atributy**

```
<script>// <![CDATA[
flbInit('https://www.flexbook.cz/ajax.php', @@PROVIDER_ID(), [
{ type: 'flbEventList', placeHolder: 'f_3',
   params: { 
                    center: [150],
                    organiser: 'david.pasek@flexbook.cz',
                    renderText: ['name', 'center', 'start', 'end', 'description', 'organiser', 'price', 'places', 'attendees', 'reservation', 'repeat_start', 'resource'],
                 },
}
]);
// ]]></script>
```

**Přiklad** **4 - akce organizátora, který je aktuálně nalogován do front-endu**

```
<script>// <![CDATA[
flbInit('https://www.flexbook.cz/ajax.php', @@PROVIDER_ID(), [
{ type: 'flbEventList', placeHolder: 'f_3',
   params: { 
                    organiser: 'loggedInUser',
                 },
}
]);
// ]]></script>
```

**Přiklad 5** **- omezení počtu akcí na stránce s možností přigenerování dalších akcí**

```
<div id="flb_placeholder_1">&nbsp;</div>
<script>// <![CDATA[
flbInit('https://www.flexbook.cz/ajax.php', @@PROVIDER_ID(), [
{ type: 'flbEventList', placeHolder: 'flb_placeholder_1',
   params: {
     format: { datetime: '<b>D</b> d.m. H:i', time: 'H:i' }, 
     lang: 'cz',
     onPageCount: 10,
     renderText: ['name','center','start','end','description','organiser','price','places','attendees','reservation'],
     eventTemplate: '@@EVENT_NAME - @@EVENT_CENTER - @@EVENT_START - @@EVENT_FREE - @@EVENT_PRICE'
   },
}
]);
// ]]></script>
```
