public function createButton() { if ($this->button) { return FALSE; } /** @var Nette\Forms\Container $container */ $container = $this->control->lookup('Nette\\Forms\\Container'); $name = $this->control->getName() . self::$buttonSuffix; $this->button = new SubmitButton("Apply"); $this->button->setValidationScope(false); $container->addComponent($this->button, $name); $this->control->getControlPrototype()->addAttributes(array('data-apply-button' => $this->button->getHtmlId())); return TRUE; }
/** * Create button if no button is attached to control * @return Was button created or not? */ public function createButton() { if ($this->button !== null) { return false; } if ($this->isAnyButtonAttached()) { $this->button = $this->getAnyAttachedButton(true); $this->buttonText = $this->button->getLabel(); $this->buttonPosition = self::POSITION_UNDEFINED; return false; } // add $this->controlClass to $this->control if not added yet $this->updateControlClass(); // create button if ($this->buttonText === null) { throw new InvalidArgumentException("Null caption of button is crappy *** !!! (ajax not working properly)"); } $container = $this->control->lookup('Nette\\Forms\\Container'); $this->button = new SubmitButton($this->buttonText); $this->button->setValidationScope(false); $this->button->getControlPrototype()->class($this->controlClass . self::$buttonSuffix); $this->button->setHtmlId($this->control->getHtmlId() . self::$buttonSuffix); $buttonName = $this->formatButtonName($this->control->getName()); switch ($this->buttonPosition) { case self::POSITION_DEFAULT: $container->addComponent($this->button, $buttonName); break; case self::POSITION_BEFORE_CONTROL: $container->addComponent($this->button, $buttonName, $this->control->getName()); break; case self::POSITION_AFTER_CONTROL: // Uhm :( $findName = $this->control->getName(); $nextName = null; $found = false; $components = $container->getComponents(true); foreach ($components as $name => $component) { if ($found === true) { $nextName = $name; break; } if ($name == $findName) { $found = true; } } if ($nextName === null) { $container->addComponent($this->button, $buttonName); } else { $container->addComponent($this->button, $buttonName, $nextName); } break; default: throw new InvalidArgumentException("Ivalid position value !"); } return true; }