Kdyby Replicator – jQuery QueryBuilder

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
vladoha
Člen | 3
+
0
-

Ahoj, používam Kdyby/Relicator a neviem prísť na to ako nasimulovať podobné chovanie ako toto:
http://querybuilder.js.org/demo.html
Potrebujem dynamicky vytvárať skupiny, v nich pravidlá a v rámci pravidla mať možnosť znovu vytvoriť skupinu s pravidlami.
Je na toto použitie replicator stavaný, alebo na to idem úplne zle? ak ma niekto vie nasmerovať má u mňa pivo :-)
ďakujem.
priklad:

<?php
public function createComponentTestForm() {
 	$presenter = $this;
    $invalidateCallback = function() use($presenter) {
            /** @var \Nette\Application\UI\Presenter $presenter */
      $presenter->redrawControl('repForm');
    };
	$form = new Form();
	$replicator = $form->addDynamic('group', function (Container $group)use( $invalidateCallback, $cols) {
            $group->addRadioList('OP', 'GROUP', ['AND'=>'AND', 'OR'=>'OR'])
                    ->getSeparatorPrototype()->setName(NULL);
            $group->addSubmit('RemoveGroup', 'RemoveGroup')->setValidationScope(FALSE)
                    ->addRemoveOnClick($invalidateCallback);

            $rep = $group->addDynamic('rule', function (Container $rule) use($invalidateCallback, $cols){
                $rule->addSelect('field', 'COLUMN')->setItems(['COL1'=>'COL1', 'COL2'=>'COL2', 'COL3'=>'COL3']);
               $rule->addText('value', 'Value');
               $rule->addSubmit('RemoveRule', 'RemoveRule')->setValidationScope(FALSE)
                    ->addRemoveOnClick($invalidateCallback);
/*
Tu potrebujem aby sa po kliknuti na tlacitko addSubgroup pridala do danej grupy a pravidla nova grupa s pravidlami proste potrebujem zanorovat replicator container do nadradeneho replikatora
*/
               $rule->addSubmit('addSubgroup', 'addSubgroup')->setValidationScope(FALSE)
                    ->addCreateOnClick($invalidateCallback);
            }, 1,TRUE);
            $rep->addSubmit('AddRule', 'AddRule')->setValidationScope(FALSE)
                    ->addCreateOnClick($invalidateCallback);
        }, 1,TRUE);
	$replicator->addSubmit('add', 'AddGroup')->setValidationScope(FALSE)
                ->addCreateOnClick($invalidateCallback);

    $form->addSubmit('send', 'OK');
	return $form;
}
?>