diff --git a/README.md b/README.md index bb25ab83..7e1b096b 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,7 @@ php bin/console assets:install --symlink web You can customize the default button look by using these variables to add one or more CSS classes to them: +- `craue_formflow_wrapper_class` will apply for the wrapper div - `craue_formflow_button_class_last` will apply either to the __next__ or __finish__ button - `craue_formflow_button_class_finish` will specifically apply to the __finish__ button - `craue_formflow_button_class_next` will specifically apply to the __next__ button diff --git a/Resources/views/FormFlow/buttons.html.twig b/Resources/views/FormFlow/buttons.html.twig index 1ce70a86..a8458a48 100644 --- a/Resources/views/FormFlow/buttons.html.twig +++ b/Resources/views/FormFlow/buttons.html.twig @@ -1,13 +1,14 @@ -{% set renderBackButton = flow.getFirstStepNumber() < flow.getLastStepNumber() and flow.getCurrentStepNumber() in (flow.getFirstStepNumber() + 1) .. flow.getLastStepNumber() %} -{% set renderResetButton = craue_formflow_button_render_reset is defined ? craue_formflow_button_render_reset : true %} -{% set buttonCount = 1 + (renderBackButton ? 1 : 0) + (renderResetButton ? 1 : 0) %} +{%- set renderBackButton = flow.getFirstStepNumber() < flow.getLastStepNumber() and flow.getCurrentStepNumber() in (flow.getFirstStepNumber() + 1) .. flow.getLastStepNumber() -%} +{%- set renderResetButton = craue_formflow_button_render_reset is defined ? craue_formflow_button_render_reset : true -%} +{%- set buttonCount = 1 + (renderBackButton ? 1 : 0) + (renderResetButton ? 1 : 0) -%} +{%- set craue_formflow_wrapper_class = craue_formflow_wrapper_class is defined ? ' ' ~ craue_formflow_wrapper_class : '' -%} -
- {# +
+ {#- Default button (the one trigged by pressing the enter/return key) must be defined first. Thus, all buttons are defined in reverse order and will be reversed again via CSS. See http://stackoverflow.com/questions/1963245/multiple-submit-buttons-specifying-default-button - #} + -#} {%- set isLastStep = flow.getCurrentStepNumber() == flow.getLastStepNumber() -%} {%- set craue_formflow_button_class_last = craue_formflow_button_class_last | default('craue_formflow_button_last') -%} {%- set craue_formflow_button_class_last = isLastStep @@ -44,11 +45,11 @@ }, ] -%} - {% for button in craue_buttons %} - {% if button.render %} + {%- for button in craue_buttons -%} + {%- if button.render -%} - {% endif %} - {% endfor %} + {%- endif -%} + {%- endfor -%}
diff --git a/Tests/Resources/TemplateRenderingTest.php b/Tests/Resources/TemplateRenderingTest.php index 68a7e4a3..ccfa2251 100644 --- a/Tests/Resources/TemplateRenderingTest.php +++ b/Tests/Resources/TemplateRenderingTest.php @@ -67,9 +67,10 @@ public function testButtons_noResetButton() { $renderedTemplate = $this->getTwig()->render(self::BUTTONS_TEMPLATE, [ 'craue_formflow_button_render_reset' => false, + 'craue_formflow_wrapper_class' => 'foo-wrap', 'flow' => $flow, ]); - $this->assertStringContainsString('
', $renderedTemplate); + $this->assertStringContainsString('
', $renderedTemplate); $this->assertStringNotContainsString('', $renderedTemplate); }