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
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;
}
?>