ublaboo/datagrid: mocný, rychlý, rozšiřitelný, hezký, anglicky dokumentovaný datagrid

před 2 měsíci

n3t
Člen | 26
+
0
-

Cca před třemi týdny jsem rozjížděl projekt na Nette 3 / DataGrid 6, můj první projekt v Nette a v celku bez problémů jsem Datagrid rozchodil. Pravda nepoužil jsem bower, ale skripty a CSS jsem si pořešil ručně.

před 2 měsíci

nanuqcz
Člen | 823
+
0
-

@n3t Díky, tohle mě konečně nakoplo správným směrem. Takže v čem byl problém:

  1. Kvůli tomu, že pořád používám Nette 2.4, mi composer stáhl Datagrid ve verzi 5.7.4.
  2. O tom Bower samozřejmě nevěděl, a tak příkazem bower install ublaboo-datagrid stáhl nejnovější JS+CSS (pro verzi 6.2.5).

Oprava / úprava instalace pro verzi 5.* tedy spočívá ve stáhnutí staršího bower balíčku:

bower uninstall --save ublaboo-datagrid
bower install --save ublaboo-datagrid@5 happy@1 bootstrap-select font-awesome@4

a úpravě cest k JS+CSS souborům tak, aby pasovaly. Taky doporučuju downgradovat happy.js (v nové verzi chybí adresář dist), doinstalovat bootstrap-select a natáhnout font-awesome (verzi 4, protože s 5 a výše není tato verze DataGridu v základu kompatibilní).

Oprava suma sumárum v jednom commitu:
https://gitlab.com/…830a984f9049?w=1

Editoval nanuqcz (11. 12. 2019 17:03)

před 2 měsíci

Failips
Člen | 46
+
0
-

Ahoj,

mám stránku s tlačítkami, na ktoré keď sa klikne, tak sa cez JS ajaxom zavolá handle metóda v presenteri. Tá vykoná istú akciu a zmenia sa dáta slúžiace na filtrovanie obsahu načítavaného v datasource gridu. Následne sa zavolá $this[‚myGrid‘]->redrawControl() a očakávam, že sa obsah v tabuľkách zmení. K tomu však nedôjde aj napriek domu, že výsledné dáta vo funkcii build sa zmenili (zistené pomocou volania bdump). {control myGrid} nie je obalený v žiadnom snippete ani v snippetArea.

Nevie niekto ako to spojazdniť? Ďakujem :)

před 2 měsíci

nanuqcz
Člen | 823
+
0
-

@Failips Datagrid používám krátce, ale není ta metoda $this['myGrid']->reload()? Co pak ten AJAX požadavek vrací prohlížeči za data, když se podíváš do konzole prohlížeče?

před 2 měsíci

Failips
Člen | 46
+
0
-

nanuqcz napsal(a):

@Failips Datagrid používám krátce, ale není ta metoda $this['myGrid']->reload()? Co pak ten AJAX požadavek vrací prohlížeči za data, když se podíváš do konzole prohlížeče?

Skúšal som aj reload() s rovnakým výsledkom. To isté platilo aj pre obalenie control do snippetu/snippetArea a následným redraw snippetu. V build funkcii boli vždy nové data avšak stránka sa neprekreslila. Nakoniec som prišiel na chybu. Spôsobovalo to volanie handleFunkcie pomocou klasického jQuery AJAXu, a teda keď som ho nahradil Nette AJAXom tak už všetko išlo ako malo. Takže opäť ďalšia chyba z nepozornosti.

před 2 měsíci

rumcais1
Člen | 79
+
0
-

Ahoj,
nevíte jak udělat, aby se group action otevřelo v novém okně. Mám tam pdfResponse a potřebovali by to do nového okna. Díky

před měsícem

pavelinnuendo
Člen | 13
+
0
-

Asi mi odpovíte, že je to špatný použití, ale lze při inline editaci nějak zalomit řádek? Respektive mám sloupců víc, než se mi pohodlně vejde na stránku a potřeboval bych je nějak inline editovat, tedy ideálně aby byl záznam na dva řádky. Díky.

před měsícem

Aleksandr
Člen | 14
+
0
-

Zdravím mám problém s Datagrid items
nemůžu zobrazit jakýkoliv ItemDetails, přitom AJAX request proběhne a např. při sortování funguje…
Verze datagridu: 6.2.5
Verze Nette 3.0
Takový nepodstatný detail, co by nic neměl ovlivnit, data si táhám z API a ne z DB
Druhy nepodstatny detail, v zoufalosti jsem si docesne pustil online knihovny z DEMA

Presenter:

public function createComponentDatagrid()
  {
    $grid = new DataGrid;

    $grid->setDataSource($this->userManager->getUsers());
    //columns
    $grid->addColumnNumber('id', 'ID');
    $grid->addColumnText('name', 'Jmeno')->setSortable();
    $grid->addColumnText('superuser', 'Admin');
    $grid->addColumnText('email', 'E-mail');
    $grid->addColumnDateTime('lastLoginDate', 'Naposled přihlašen');
    $grid->addColumnStatus('state', 'Status');
    //filters
    $grid->addFilterSelect('state', 'Status', State::ALL);
    $grid->addFilterText('name', 'Jmeno');
    $grid->setItemsDetail();

    $grid->setTemplateFile(__DIR__ . '/../templates/datagrid/item-detail-grid.latte');

    return $grid;
  }

template pro detail, ostatní věci mi měnit přes {block} jdou, ale detail se jako jedinej nezobrazuje

{extends $originalTemplate}
{block detail}
	<button class="btn btn-default btn-secondary btn-sm">Just a button</button>
{/}

template Presentru

{block content}
<div class="container">
  <h1 n:block="title" class="text-center">Titulek nefunkcni stranky</h1>
    {control datagrid}
</div>

před měsícem

galab
Člen | 38
+
0
-

Aleksandr napsal(a):

Zdravím mám problém s Datagrid items
nemůžu zobrazit jakýkoliv ItemDetails, přitom AJAX request proběhne a např. při sortování funguje…

bower update jsi dělal?

před měsícem

Aleksandr
Člen | 14
+
0
-

galab napsal(a):

Aleksandr napsal(a):

Zdravím mám problém s Datagrid items
nemůžu zobrazit jakýkoliv ItemDetails, přitom AJAX request proběhne a např. při sortování funguje…

bower update jsi dělal?

Jo zkoušel jsem to tahat i přes bower a nikdy se nic nezmění…ChromeDev konzole je stále bez chyb

před měsícem

galab
Člen | 38
+
0
-

A?

$grid->setItemsDetail(__DIR__ . '/../templates/datagrid/item-detail-grid.latte');

před měsícem

Aleksandr
Člen | 14
+
0
-

galab napsal(a):

A?

$grid->setItemsDetail(__DIR__ . '/../templates/datagrid/item-detail-grid.latte');

Tohle jsem taky zkoušel…

před měsícem

Aleksandr
Člen | 14
+
0
-

Tak jsem tady s dalším reportem, kdyby někdo prosím dokázal pomoct…
Stáhnul jsem si playground ukázku z GITu se vším všudy…a pořád mi nejde zobrazit Detail u row.
V ChromeDevu jsem si prohlížel jaký data vrací online ukázka a můj localhost s playgroundem

Tohle je localhost s repositařem z playgroundem

{
  "_datagrid_toggle_detail": "1",
  "_datagrid_name": "grid",
  "state": {
    "grid-page": null,
    "grid-perPage": "100",
    "grid-sort": {
      "email": "ASC"
    },
    "grid-filter": null
  }
}

Tohle je online ukázka

{
  "_datagrid_toggle_detail": "29",
  "_datagrid_name": "grid",
  "state": {
    "grid-page": null,
    "grid-sort": null,
    "grid-filter": null
  },
  "_datagrid_redrawItem_class": "",
  "_datagrid_redrawItem_id": 29,
  "snippets": {
    "snippet-grid-item-29-detail": "\t\t\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t\t\t\t\t<td colspan=\"5\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"item-detail-content\">\n\t<h3>29 - Beautiful Boar <small>7. 7. 1987 12:30:12</small></h3>\n\n\t<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur vitae diam non enim vestibulum interdum. Nulla quis diam. Integer in sapien. Nullam dapibus fermentum ipsum. Curabitur bibendum justo non orci. Etiam neque. Nullam dapibus fermentum ipsum. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Etiam posuere lacus quis dolor. Aliquam ornare wisi eu metus. Nulla non lectus sed nisl molestie malesuada. Vivamus ac leo pretium faucibus. Aliquam ante. Aliquam erat volutpat.</p>\n\n\t<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur vitae diam non enim vestibulum interdum. Nulla quis diam. Integer in sapien. Nullam dapibus fermentum ipsum. Curabitur bibendum justo non orci. Etiam neque. Nullam dapibus fermentum ipsum. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Etiam posuere lacus quis dolor. Aliquam ornare wisi eu metus. Nulla non lectus sed nisl molestie malesuada. Vivamus ac leo pretium faucibus. Aliquam ante. Aliquam erat volutpat.</p>\n\n\t<button class=\"btn btn-default btn-secondary btn-sm\">Just a button</button>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n"
  }
}

před měsícem

Pavel Janda
Backer | 885
+
0
-

@Aleksandr No jo, taky se mi to děje. Hodím na to oko

před měsícem

Pavel Janda
Backer | 885
+
0
-

@Aleksandr Hm, tak jsem měl chybu v něčem jiném 😅všechno mi funguje OK

před měsícem

Aleksandr
Člen | 14
+
0
-

Ahoj Pavle (@PavelJanda),

mám ještě jeden dotaz. Jak získám id aktulní row, prosím, potřebuji to do actiony.

public function create(): DataGrid
{
    $grid = $this->dataGrid->create();

    //columns
    $grid->addColumnNumber('id', 'ID')
        ->setSortable();
    $grid->addColumnText('name', 'Jméno')
        ->setSortable()
        ->setFilterText();
    $grid->addColumnText('superuser', 'Admin')
        ->setSortable();
    $grid->addColumnText('email', 'E-mail')
        ->setSortable()
        ->setFilterText();
    $grid->addColumnDateTime('lastLoginDate', 'Naposled přihlášen')
        ->setSortable();
    $grid->addColumnText('state', 'Status')
        ->setSortable()
        ->setReplacement(State::ALL)
        ->setFilterSelect(State::ALL);
    $multiAction = $grid->addMultiAction('subjects', 'Subjekty');

    foreach ($userSubjects as $subject) {
        $multiAction->addAction($this->getUserSubject($semChciIDaktualniROW), $subject, 'this', ['id']);
    }

    //sets details for user
    $grid->setDataSource($this->userManager->getUsers());

    return $grid;
}

před měsícem

Pavel Janda
Backer | 885
+
+1
-

@Aleksandr Asi si bude# muset udělat vlastní renderer callback, do kterého ti přijde celá row.

https://contributte.org/…columns.html#api

Editoval Pavel Janda (9. 1. 22:24)

před měsícem

janvacek
Člen | 6
+
0
-

Ahoj,

chci se zeptat, je tu možnost ručně určit, kdy se má datagrid inicializovat? Konkrétně tedy datagrid.js, kdy potřebuji aby se načetl až po tom, co se načte Naja v údálosti DOMContentLoaded

Díky :)

Editoval janvacek (15. 1. 8:19)

před měsícem

semi
Člen | 4
+
+1
-

Ahoj,

řeším asi něco podobného jako @janvacek
Mám v projektu Nette 3.0, Naja 1.7.0, a snažím se rozchodit Ublaboo datagrit 6.0.1

dostávám se k chybě

TypeError: naja.addEventListener(...).bind is not a function

Předpokládám, že se to snaží zaregistrovat listener dřív, než je Naja inicializovaná?

před měsícem

jiri.pudil
Člen | 890
+
+2
-

Předpokládám, že se to snaží zaregistrovat listener dřív, než je Naja inicializovaná?

Předně je tam podle mě chyba. Listenery můžeš registrovat teoreticky kdykoliv, s výjimkou init, kterážto událost se vyvolává jen v momentě, kdy se Naja inicializuje. Beru zpět. Pravda to sice je, ale v datagrid.js se listenery navěšují v extensioně, ta musí být zaregistrovaná před inicializací.

Editoval jiri.pudil (15. 1. 13:16)

před měsícem

Pavel Janda
Backer | 885
+
+2
-

@Semik .bind() fixed in 6.2.6.

před měsícem

semi
Člen | 4
+
0
-

@PavelJanda @jiripudil Díky za odpověď, povýšení verze pomohlo. Nepochopil jsem, proč se mi composerem nainstalovala ta stará verze datagridu, ikdyž jsem měl v composer.json verzi ^6.2

před měsícem

TonnyVlcek
Člen | 32
+
0
-

TL;DR:
Používáte někdo (ideálně na produkci) editovatelný datagrid s 30+ sloupci?


Na projektu kde používáme contributte/datagrid téměř na všechno, přišlo oddělení obchoďáků s iniciativou, které říkají „Excelifikace“. Cílem je spravovat entity s relativně velkým množstvím parametrů v rámci jednoho inline-editovatelného datagridu. Některé sloupce budou potřebovat callback rendery atp…

Než se pustím do nějakého testování a „benchmarků“, tak jsem se chtěl zeptat tady, máte-li s tím někdo zkušenost. Případě nějaké zkušenosti, jak jste se s něčím podobným vypořádali?

Díky moc :)

před měsícem

Pavel Janda
Backer | 885
+
0
-

@TonnyVlcek Myslím, že by to nemusel být problém. Dělal jsem i docela velké gridy, šlo to easy.
Spíš bych se zamyslel nad tím, abyste neměli v rámci kódu „nepořádek“. Třeba bych factory gridu rozdělil mezí víc factories (na akce, na sloupce, atd).
Nicméně výkonnostně by to asi neměl být problém. Navíc inline edit callback se volá pouze pro jednu položku jednoho sloupce, easy..

Spíš zkus obchoďákům říct, ať pošlou pořádnou donation, ať se zas vývoj datagridu pohne. :D Můžeš to obhájit třeba tak, že se opraví nějakej superzávažnej bug, kterej vám hrozně brání v práci. :D

Každopádně, až to budete mít hotovo, poděl se o výsledky benchmarku! Rád se na ně mrknu, pokud to nebude tajné.

Editoval Pavel Janda (17. 1. 10:50)

před měsícem

TonnyVlcek
Člen | 32
+
0
-

@PavelJanda
Pecka, díky!
Nějak to zkusím ukecat ;) A dám vědět, jak to nakonec dopadne.

před 26 dny

Failips
Člen | 46
+
0
-

Ahoj, chceli by sme urobiť ukladanie stavu jednej tabuľky (grid state) per užívateľ. Ide o to, že po prihlásení by užívateľ mal tabuľku v takom rozložení ako ju naposledy zanechal. Pôvodný nápad bol vytiahnuť z gridu jeho stav napr. vo forme JSONu a uložiť to do databáze, následne pri prihlásení a otvorení stránky s touto tabuľkou by sme načítali tieto hodnoty z DB.

Vie niekto o spôsobe, ktorým pri každej zmene rozloženia (filtre, zobrazené stĺpce, max. počet riadkov) dalo získať tieto hodnoty nejakým jednoduchým spôsobom? Vďaka :)

před 26 dny

Pavel Janda
Backer | 885
+
+1
-

@Failips Myslím, že to úplně nesouvisí s datagridem, ale jako nejjednodušší způsob vidím toto: udělal bych si nějaký session handler, který budu umět dobře ovládat (já s oblibou používám https://github.com/…/Handler.php). Těsně před odhlášením uživatele bych vzal jeho data session týkající se datagridu/ů a to bych někam uložil. A po přihlášení bych to zase do session prdnul. Asi bude muset někdo víc zasvěcený říct, jestli je to blbý nápad či nikoliv. :P

před 26 dny

chemikus
Člen | 47
+
0
-

Ahoj,
prosím pomoc, jsem zoufalý! :-)

Měl jsem funkční administraci pro můj projekt. Používám poslední dostupné Nette 3.0 (staženo přes composer cca 3 týdny zpět). Nainstaloval jsem si tam přes composer ještě pár plug-inů (kdyby/translation a tomaj/nette-bootstrap-form). Vše mi fungovalo v pořádku.

Dnes jsem přes příkaz composer require ublaboo/datagrid stáhl tenhle DataGrid a po aktualizaci prohlížeče (aniž bych cokoli kdekoli měnil ve zdrojových souborech) mám následující chybovou hlášku:

Fatal error: Uncaught Error: Class 'App\Bootstrap' not found in C:\xampp\htdocs\admin.deskovia.cz\www\index.php:7 Stack trace: #0 {main} thrown in C:\xampp\htdocs\admin.deskovia.cz\www\index.php on line 7

Což mě teda tak trochu navádí k tomu, že App\Bootstrap nebylo nalezeno, ale Bootstrap.php soubor je v namespace App

<?php
declare(strict_types=1);
namespace App;
use Nette\Configurator;
class Bootstrap {
...
?>

Tak já nevím co mám zle :( Můžete mi prosím někdo hodit pomocné lano, jak zprovoznit DataGrid / nebo odinstalovat, abych měl zas zpět funkční administraci? :)

PS: composer uninstall --save ublaboo/datagrid nefunguje a vyhodí hlášku [Symfony\Component\Console\Exception\CommandNotFoundException] Command "uninstall" is not defined.

před 26 dny

Gappa
Člen | 118
+
0
-

@chemikus

Bootstrap se autoloaduje pomocí composeru:

Zkusit tedy dát něco jako composer dump-autoload? :)

před 25 dny

chemikus
Člen | 47
+
0
-

Gappa napsal(a):

@chemikus

Bootstrap se autoloaduje pomocí composeru:

Zkusit tedy dát něco jako composer dump-autoload? :)

Dobře, napsal jsem do příkazového řádku …

c:\xampp\htdocs\admin.deskovia.cz>composer dump-autoload

napsalo to …

Generating autoload files

A chyba stále stejná :(

Fatal error: Uncaught Error: Class 'App\Bootstrap' not found in C:\xampp\htdocs\admin.deskovia.cz\www\index.php

Co dělám špatně teď? :)

před 25 dny

Gappa
Člen | 118
+
0
-

@chemikus

Pro kontrolu – ta odkazovaná část v composer.json v něm je? :)

před 25 dny

chemikus
Člen | 47
+
0
-

Gappa napsal(a):

@chemikus

Pro kontrolu – ta odkazovaná část v composer.json v něm je? :)

Velmi dobrá poznámka :) Když se podívám do composer.json hned v kořenovém adresáři, tak je tam napsáno pouze:

{
    "require": {
        "ublaboo/datagrid": "^6.2"
    }
}

Takže nyní asi soutěžní otázka zní, proč? A jak tam dostat ten zbytek? :)

před 25 dny

Gappa
Člen | 118
+
+1
-

chemikus napsal(a):

Gappa napsal(a):

@chemikus

Pro kontrolu – ta odkazovaná část v composer.json v něm je? :)

Velmi dobrá poznámka :) Když se podívám do composer.json hned v kořenovém adresáři, tak je tam napsáno pouze:

{
    "require": {
        "ublaboo/datagrid": "^6.2"
    }
}

Takže nyní asi soutěžní otázka zní, proč? A jak tam dostat ten zbytek? :)

Tam je jen a pouze tohle? Nic z nette? Jak se ti ho pak ale podařilo nainstalovat? :)

Btw, možná lepší založit nové vlákno někde na foru, téma se poněkud stočilo od datagridu někam úplně jinam.

před 25 dny

chemikus
Člen | 47
+
0
-

Tam je jen a pouze tohle? Nic z nette? Jak se ti ho pak ale podařilo nainstalovat? :)

Ano ano, jen a pouze toto. Asi při instalaci dataGrid nějaká chybka. No, nicméně už vím, kde je problém, moc děkuju za pomoc!

Btw, možná lepší založit nové vlákno někde na foru, téma se poněkud stočilo od datagridu někam úplně jinam.

Možná navrhuji smazat všechny moje/tvoje komentáře, ať tím zbytečně nebereme místo?

před 25 dny

Gappa
Člen | 118
+
0
-

chemikus napsal(a):

Tam je jen a pouze tohle? Nic z nette? Jak se ti ho pak ale podařilo nainstalovat? :)

Ano ano, jen a pouze toto. Asi při instalaci dataGrid nějaká chybka. No, nicméně už vím, kde je problém, moc děkuju za pomoc!

V tom případě by stálo za to se podělit o příčinu a řešení :)

Btw, možná lepší založit nové vlákno někde na foru, téma se poněkud stočilo od datagridu někam úplně jinam.

Možná navrhuji smazat všechny moje/tvoje komentáře, ať tím zbytečně nebereme místo?

Když už se to podařilo vyřešit, tak už to asi může zůstat – ale jak jsem psal výše, důležité je napsat řešení :)

před 24 dny

Peca
Člen | 2
+
0
-

Ahoj,
prosím o radu,
existuje nějaká možnost, jak tento kód doplnit o třetí parametr funkce groupParamUpdate?

$grid->addGroupTextAction("Nazev")->onSelect[] = [$this, 'groupParamUpdate'];

abych se dostal k zavolání např.

groupParamUpdate($ids, $value, $treti_parametr)

Předem díky moc za rady!

před 20 dny

pp
Člen | 24
+
0
-

Ahoj,
poprosil bych o radu,

V gridu zobrazuju seznam lokalit s atributy ‚latitude‘, ‚longitude‘.
Mam takovou predstavu, abych vyberem jedne lokality a zadanim parametru ‚maxdistance‘ prefiltroval zdroj dat a zobrazil jen ty, ktere spadaji do kruhu o zadanem polomeru a s vysledkem mohl dal pracovat.

Nabizi se mi k tomu „action“ – tam si zbrazim form k zadani parametru, vytahnu nova data, nastavim novy datasource a prekreslim grid.
Jenze pak pri jakekoli dalsi filtraci se mi datasource „prepise“ na ten puvodni (vsechny lokality).
Jak docilit toho, aby se novy datasource stal platnym (treba do resetu filteru) ?

před 20 dny

Ivorius
Nette Blogger | 115
+
0
-

Lze v rámci inlineEdit nebo inlineAdd zobrazit chybu formuláře? Např. při definování Form::addRule a odeslání s chybnou hodnotou?

Datagrid v5.7.4

před 19 dny

Aleksandr
Člen | 14
+
0
-

Zdravím,

chci se zeptat, zda by někdo poradil, jak udělat custom filtraci pro něco co má custom column a z toho plyne i custom render?

před 18 dny

Pavel Janda
Backer | 885
+
0
-

@Aleksandr Vše by mělo být popsáno zde:

Renderer: https://contributte.org/…columns.html#…
Custom filter: https://contributte.org/…filters.html#…

Tímhle vyrenderuješ úplně custom data a aplikuješ úplně custom podmínku pro filtraci nad tím sloupcem.

před 18 dny

kamil_v
Člen | 133
+
0
-

Mám v gridu sloupec s datem a časem, chci nad ním filtrovat „od – do“:

$grid->addColumnDateTime('timestamp', 'Datum a čas')
            ->setFormat('d.m.Y H:i')
            ->setSortable()
            ->setFilterDateRange();

Funguje to dobře, problém nastane ve chvíli, kdy se mi filtry triggerují automaticky např. po 3 znacích.
Chci např. do filtru napsat datum „22.01.2020“, ale jakmile zadám „22.“, ajax vykopne exceptionu, protože datagrid/src/Utils/DateTimeHelper.php#tryConvertToDate() se pokusí nachroustat „22.“, což zatím ještě neodpovídá žádnému formátu data, takže to propadne až na: throw new DataGridDateTimeHelperException();

Takže v důsledku ani nemám možnost to datum dopsat do úplné podoby, ačkoliv bych chtěl :)

Vrátit null místo throw new DataGridDateTimeHelperException() není možné, protože pak to zahučí na volání tuším ->setFormat() on null. Zatím to řeším tak, že místo throw new DataGridDateTimeHelperException() vracím new \DateTime.

Zdá se to být jako možné řešení, ale nevím, zda to nemá někde jiné konsekvence.

Editoval kamil_v (29. 1. 11:55)

před 18 dny

Gappa
Člen | 118
+
0
-

@kamil_v Tohle by vyřešil nějaký JS kalendář, ne? :)

před 17 dny

kamil_v
Člen | 133
+
0
-

@Gappa ano i ne, je mnoho uživatelů (a já je chápu), kteří raději ťuknou do klávesnice, než proklikávají kalendář, je to mnohem rychlejší

před 5 dny

Aleksandr
Člen | 14
+
0
-

Ahoj,

chci se zeptat jak dát tlačítko Reset filtrů nahoru, myslim jak to vyřešit nejčistejc (css, toolbar tlačítko nebo…)?
 – chci, aby se zobrazovalo jenom nahoře a jenom za podmínky, kdy je filter vyplněn

Editoval Aleksandr (11. 2. 11:39)

před 5 dny

Pavel Janda
Backer | 885
+
+1
-

@Aleksandr Tlačítko se teď zobrazuje jen a pouze v případě, kdy se něco ve filtru vyplněno. Umístění budeš muset upravit asi sám v poděděné šabloně.