diff --git a/Form/Extension/ButtonTypeExtension.php b/Form/Extension/ButtonTypeExtension.php
new file mode 100644
index 0000000..ea56b76
--- /dev/null
+++ b/Form/Extension/ButtonTypeExtension.php
@@ -0,0 +1,46 @@
+
+ * @copyright 2014 André Püschel
+ * @license http://opensource.org/licenses/MIT The MIT License
+ * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2
+ */
+class ButtonTypeExtension extends AbstractTypeExtension
+{
+ /**
+ * {@inheritDoc}
+ */
+ public function buildView(FormView $view, FormInterface $form, array $options)
+ {
+ $view->vars['button_class'] = $form->getConfig()->getOption('button_class');
+ $view->vars['as_link'] = $form->getConfig()->getOption('as_link');
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function setDefaultOptions(OptionsResolverInterface $resolver)
+ {
+ $resolver->setOptional(array('button_class', 'as_link'));
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getExtendedType()
+ {
+ return 'button';
+ }
+}
\ No newline at end of file
diff --git a/Resources/config/services/form.xml b/Resources/config/services/form.xml
index b8165ac..050e45e 100644
--- a/Resources/config/services/form.xml
+++ b/Resources/config/services/form.xml
@@ -8,6 +8,7 @@
Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType
Braincrafted\Bundle\BootstrapBundle\Form\Type\FormActionsType
Braincrafted\Bundle\BootstrapBundle\Form\Extension\TypeSetterExtension
+ Braincrafted\Bundle\BootstrapBundle\Form\Extension\ButtonTypeExtension
Braincrafted\Bundle\BootstrapBundle\Form\Extension\InputGroupButtonExtension
@@ -29,6 +30,10 @@
+
+
+
+
diff --git a/Resources/views/Form/bootstrap.html.twig b/Resources/views/Form/bootstrap.html.twig
index 2e58d77..a3cf85b 100644
--- a/Resources/views/Form/bootstrap.html.twig
+++ b/Resources/views/Form/bootstrap.html.twig
@@ -502,11 +502,15 @@
{% set label = name|humanize %}
{% endif %}
{% if type is defined and type == 'submit' %}
- {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' btn btn-'~attr.type|default('primary'))|trim }) %}
+ {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' btn btn-'~button_class|default('primary'))|trim }) %}
{% else %}
- {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' btn btn-'~attr.type|default('default'))|trim }) %}
+ {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' btn btn-'~button_class|default('default'))|trim }) %}
+ {% endif %}
+ {% if as_link is defined and as_link == true %}
+ {% if attr.icon is defined and attr.icon != '' %}{{ icon(attr.icon) }}{% endif %}{{ label|trans({}, translation_domain) }}
+ {% else %}
+
{% endif %}
-
{% endspaceless %}
{% endblock button_widget %}