contributte / forms-bootstrap

👾 Bootstrap 4 + 5 forms for Nette framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chyba ve vykreslování formuláře, pokud Groups obsahují BootstrapRows

yosieu opened this issue · comments

Ahoj,

objevil jsem chybu při vykreslování formuláře. Pokud Groups obsahují rows dochází k opakovanému vykreslení řádky a to tak, že se nejprve vykreslí několikrát řádka s inputy (konkrétně = Počet řádek * Počet Buněk * Počet inputů) a až poté se vykreslí Group.

Prozkoumal jsem kód a chyba je prostá. Pro elementy třídy BootstrapRow se nenastavuje RenderOption::_RENDERED na true. Vzhledem k tomu, že je metoda BoostrapRow::setOption označena jako @internal, bude potřeba fixnout metodu BootstrapRow::render a přidat do ní příslušné volání BootstrapRow::setOption(RenderOption::_RENDERED, true).

Zatím si to řeším tak, že jsem si podědil BoostrapRenderer a řeším si to v něm.

Díky za fix.

Příklad:

   $row1 = $this->addRow("line1");
    $row1->addCell(6)
            ->addSelect('category', 'Kategorie', $this->category_repository->getIdNameList())
                ->setHtmlAttribute("class", "selectpicker form-control")
                ->setHtmlAttribute("title", "Vyberte ...")
                ->setRequired(true)
                ->getLabelPrototype()
                    ->setClass('required');

    $row1->addCell(6)
            ->addSelect('edition', 'Ročník', Edition::getList())
                ->setHtmlAttribute("class", "selectpicker form-control")
                ->setHtmlAttribute("title", "Vyberte ...")
                ->setRequired(true)
                ->getLabelPrototype()
                    ->setClass('required');

    $group1 = $this->addGroup('Group 1', false)
                    ->add([$row1]);

image

??? If U have some issue use English, I do not speak/understand Czech