Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions DynamicContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,8 @@ protected function createRow($name = null) {
if ($this->useAjax)
$button->getControlPrototype()->class($this->ajaxClass);
}

return $innerContainer;
}

/**
Expand Down
17 changes: 17 additions & 0 deletions DynamicContainerCore.php
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,23 @@ protected function fireOnChange() {

// </editor-fold>


/**
* Override: set values for this container while adding rows for it
* (needs https://github.com/nette/nette/pull/217 implemented in Nette)
*
* @param array $values
* @param bool $erase
* @return void
*/
public function setValues($values, $erase = FALSE) {
$this->clearRows();
foreach($values as $key => $sub) {
$this->createRow($key)->setValues($sub, $erase);
}
}


// <editor-fold defaultstate="collapsed" desc="register helpers">

public static function FormContainer_addDynamicContainerCore(FormContainer $_this, $name = null, $factoryCallback = null) {
Expand Down
18 changes: 17 additions & 1 deletion FormMacros.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,17 @@ public static function input($name, $modifiers) {
echo $input;
}

public static function macroPair($content) {
list($name, $modifiers) = self::fetchNameAndModifiers($content);
return "Addons\Forms\FormMacros::pair($name, $modifiers)";
}
public static function pair($name, $modifiers) {
$control = self::getControl($name);
echo self::getForm()->getRenderer()->renderPair($control);
}



// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="{label}">
Expand Down Expand Up @@ -162,7 +173,11 @@ public static function inputValue($name, $modifiers = array()) {

public static function macroBeginDynamicContainer($content) {
list($name) = self::fetchNameAndModifiers($content);
return '$dynamicContainers = Addons\Forms\FormMacros::getControl('.$name.')->getComponents(); Addons\Forms\FormMacros::beginContainer('.$name.'); foreach($dynamicContainers as $dynamicContainerName => $dynamicContainer): Addons\Forms\FormMacros::beginContainer($dynamicContainerName);';
return
'$dynamicContainers = Addons\Forms\FormMacros::getControl('.$name.')->getComponents();
Addons\Forms\FormMacros::beginContainer('.$name.');
foreach($dynamicContainers as $dynamicContainerName => $dynamicContainer):
Addons\Forms\FormMacros::beginContainer($dynamicContainerName);';
}
public static function macroEndDynamicContainer($content) {
return "Addons\Forms\FormMacros::endContainer(); endforeach; Addons\Forms\FormMacros::endContainer();";
Expand All @@ -178,6 +193,7 @@ public static function register() {

LatteMacros::$defaultMacros["formErrors"] = '<?php %Addons\Forms\FormMacros::macroFormErrors% ?>';

LatteMacros::$defaultMacros["pair"] = '<?php %Addons\Forms\FormMacros::macroPair% ?>';
LatteMacros::$defaultMacros["input"] = '<?php %Addons\Forms\FormMacros::macroInput% ?>';
LatteMacros::$defaultMacros["label"] = '<?php %Addons\Forms\FormMacros::macroLabel% ?>';
LatteMacros::$defaultMacros["inputValue"] = '<?php %Addons\Forms\FormMacros::macroInputValue% ?>';
Expand Down