====== Splitter ====== Ke skrytí málo využívaných forem ve formuláři, nebo rozdělení stránky na dva funkční celky, je možné použít vertikální nebo horizontální oddělovač (dále jen splitter). Tento umožňuje rozdělení stránky na dva panely a jeden z nich skrývat. Výchozí nastavení zobrazení se prování ve stránce, ale při následné manipulaci se rozložení ukládá, jak do lokální uložiště prohlížeče, tak do aplikační databáze. ===== Struktura stránky ===== === HTML === Jednotlivé formy jsou uloženy do struktury DIVů. V id=SplitterFrame jsou dvě části id=SplitterFrame-master a id=SplitterFrame-slave. tyto dvě části tvoří levou/pravou nebo horní/dolní část. Jednotlivá id prvků jsou volitelná, jen je třeba je správně uvést v inicializačním skriptu.
...
...
=== SCRIPT === Inicializační skrit je nutné dát na konec stránky. Typicky na konec sekce body. .... Funkci eso9.splitterInit se předávají parametry pro vytvoření splitteru formou JSON stringu. Jednotlivé parametry jsou následující: **id** id hlavního divu splitteru **params** JSON parametry pro vytvoření spliteru za pomoci komponenty jqxSplitter https://www.jqwidgets.com/jquery-widgets-demo/demos/jqxsplitter/index.htm#demos/jqxsplitter/defaultfunctionality.htm * **width** - šířka. Pro zobrazení na celou stránku "100%" jinak velikost v px "300" = 300px * **height** - výška. Pro zobrazení na celou stránku "100%" jinak velikost v px "300" = 300px * **resizable** - true/false. jestli je povoleno uživatelské zvětšování/zmenšování panelu * **splitBarSize** - šířka rozdělovacího pruhu v px. * **touchSplitBarSize** - šířka rozdělovacího pruhu v px pro mobilní zařízení. * **orientation** - "horizontal"/"vertical" orientace rozdělení. * **panels** - definice jednotlivých panelů. jedná se o pole dvou objektů s parametry: * **size** - šířka. Zádá se v procentech nebo pixelech jen u jednoho z panelů a druhý je dynamicky dopočítán * **collapsible** - true/false Jestli je povoleno zvětšování a zmenšování. Std je levý/horní panel colapsible=true. Pokud je třeba nastavit skrývací pravý/dolní, tak se u prvního nastaví false a u druhého true. * **collapsed** true/false zda je skrývací panel defaultně otevřený nebo zavřený. **source** JSON parametry zdrojové části splitteru (levý/horní). Pokud je vyplněn V případě, že je parametr static=false, jsou veškeré url adresy v source divu jsou směrovány do target divu. * **id** - id divu * **ajaxurl** - url stránky, která se má vepsat do source divu. Používá se v případě, že nerozděluji splitterem aktivní formulář, ale mám stránku rozdělenou na dvě části a potřebuji do panelu vložit html kód. Je použito například ve stránce .ok/esoframe.htm kde jsou takto vloženy činnosti nebo navigační menu. * **contextmenu** - true/false povolí nebo zakáže kontextové menu IDC/HTX sestavy která je do splitteru vložena pomocí ajaxurl * **enablemanageurl** - true/false povolí nebo zakáže modifikaci url adres. Pokud je povoleno, každá url zobrazená v panelu se vykoná na pozadí a výsledek se zobrazí v target panelu. * **enablemanageform** - true/false povolí nebo zakáže modifikaci formy. Pokud je povoleno, submit formuláře v source, zobrazí výsledek v target panelu. **target** JSON parametry cílové části splitteru (pravý/dolní). * **id** - id divu * **contextmenu** - true/false povolí nebo zakáže kontextové menu IDC/HTX sestavy která je do splitteru vložena pomocí ajaxurl **static** - true/false určuje, jestli při inicializaci splitteru dochází k načtení obsahu panelů dle ajaxurl nebo zůstává obsah dle definice stránky. **enableSave** - true/false určuje zda se ukládá nastavení panelů. V případě true se uloží nastavení a při dalším přístupu na stránku se použije toto uložené rozložení. **bigclosebutton** Zobrazovat u splitteru button, který umožňuje zavření a otevření slitteru. Bez tohoto buttonu lze otevírat a zavírat splitter kliknutím na střední zvýrazněnou část splitteru, ale ta je u úzkých splitterů hůře viditelná a klikatelná.