PluginProbe
Packeta / 2.1
Packeta v2.1
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
← All changes | deps/nette/forms/src/Forms/Controls/Button.php +16 -4 1.6.12.1 View file →
@@ -6,9 +6,9 @@
6 6 */
7 7 declare (strict_types=1);
8 8 namespace Packetery\Nette\Forms\Controls;
9 9
10 -use Packetery\Nette;
10 +use Packetery\Nette\Utils\Html;
11 11 /**
12 12 * Push button control with no default behavior.
13 13 */
14 14 class Button extends BaseControl
@@ -36,15 +36,27 @@
36 36 public function getLabel($caption = null)
37 37 {
38 38 return null;
39 39 }
40 + /** @return static */
41 + public function renderAsButton(bool $state = \true)
42 + {
43 + $this->control->setName($state ? 'button' : 'input');
44 + return $this;
45 + }
40 46 /**
41 47 * Generates control's HTML element.
42 48 * @param string|object $caption
43 49 */
44 - public function getControl($caption = null) : \Packetery\Nette\Utils\Html
50 + public function getControl($caption = null) : Html
45 51 {
46 52 $this->setOption('rendered', \true);
47 - $el = clone $this->control;
48 - return $el->addAttributes(['name' => $this->getHtmlName(), 'disabled' => $this->isDisabled(), 'value' => $this->translate($caption ?? $this->getCaption())]);
53 + $caption = $this->translate($caption ?? $this->getCaption());
54 + $el = (clone $this->control)->addAttributes(['name' => $this->getHtmlName(), 'disabled' => $this->isDisabled()]);
55 + if ($caption instanceof Html || $caption !== null && $el->getName() === 'button') {
56 + $el->setName('button')->setText($caption);
57 + } else {
58 + $el->value = $caption;
59 + }
60 + return $el;
49 61 }
50 62 }