[TASK] Allow to show label text next to a button 17/43817/5
authorMathias Schreiber <mathias.schreiber@wmdb.de>
Mon, 5 Oct 2015 17:33:25 +0000 (19:33 +0200)
committerFrank Nägler <frank.naegler@typo3.org>
Mon, 5 Oct 2015 19:08:59 +0000 (21:08 +0200)
Releases: master
Resolves: #70383
Change-Id: Ie7d144866ac0550df0e88b893a44a01633c74c01
Reviewed-on: http://review.typo3.org/43817
Reviewed-by: Michael Oehlhof <typo3@oehlhof.de>
Tested-by: Michael Oehlhof <typo3@oehlhof.de>
Reviewed-by: Frank Nägler <frank.naegler@typo3.org>
Tested-by: Frank Nägler <frank.naegler@typo3.org>
typo3/sysext/backend/Classes/Template/Components/Buttons/AbstractButton.php
typo3/sysext/backend/Classes/Template/Components/Buttons/InputButton.php
typo3/sysext/backend/Classes/Template/Components/Buttons/LinkButton.php

index e5d8bdb..4bd9a8a 100644 (file)
@@ -37,6 +37,34 @@ class AbstractButton extends AbstractControl implements ButtonInterface {
        protected $type;
 
        /**
+        * Defines whether to show the title as a label within the button
+        *
+        * @var bool
+        */
+       protected $showLabelText = FALSE;
+
+       /**
+        * Show Label text
+        *
+        * @return bool
+        */
+       public function getShowLabelText() {
+               return $this->showLabelText;
+       }
+
+       /**
+        * Show Label text
+        *
+        * @param bool $showLabelText
+        *
+        * @return $this
+        */
+       public function setShowLabelText($showLabelText) {
+               $this->showLabelText = $showLabelText;
+               return $this;
+       }
+
+       /**
         * Get icon
         *
         * @return Icon
index f3ea95e..93bdd1f 100644 (file)
@@ -121,6 +121,10 @@ class InputButton extends AbstractButton implements ButtonInterface {
                        'value' => $this->getValue(),
                        'title' => $this->getTitle()
                );
+               $labelText = '';
+               if ($this->showLabelText) {
+                       $labelText = ' ' . $this->title;
+               }
                foreach ($this->dataAttributes as $attributeName => $attributeValue) {
                        $attributes['data-' . htmlspecialchars($attributeName)] = $attributeValue;
                }
@@ -129,7 +133,7 @@ class InputButton extends AbstractButton implements ButtonInterface {
                        $attributesString .= ' ' . htmlspecialchars($key) . '="' . htmlspecialchars($value) . '"';
                }
                return '<button' . $attributesString . '">'
-                       . $this->getIcon()->render()
+                       . $this->getIcon()->render() . htmlspecialchars($labelText)
                . '</button>';
        }
 
index 54bac96..72195c6 100644 (file)
@@ -90,6 +90,10 @@ class LinkButton extends AbstractButton implements ButtonInterface {
                        'class' => 'btn btn-default btn-sm ' . $this->getClasses(),
                        'title' => $this->getTitle()
                );
+               $labelText = '';
+               if ($this->showLabelText) {
+                       $labelText = ' ' . $this->title;
+               }
                foreach ($this->dataAttributes as $attributeName => $attributeValue) {
                        $attributes['data-' . htmlspecialchars($attributeName)] = $attributeValue;
                }
@@ -102,7 +106,7 @@ class LinkButton extends AbstractButton implements ButtonInterface {
                }
 
                return '<a ' . $attributesString . '>'
-                       . $this->getIcon()->render()
+                       . $this->getIcon()->render() . htmlspecialchars($labelText)
                . '</a>';
        }