{% set default_variants = [] %} {% if buttons|length == 2 %} {% set default_variants = ['primary', 'secondary'] %} {% else %} {% set default_variants = ['primary'] %} {% for i in 1..(buttons|length - 1) %} {% set default_variants = default_variants|merge(['tertiary']) %} {% endfor %} {% endif %} {% for button in buttons %} {% set variant = button.variant is defined ? button.variant : default_variants[loop.index0] %} {% set icon_only = button.icon_only is defined and button.icon_only ? 'btn-icon' : '' %} {% set danger_modifier = button.danger is defined and button.danger ? 'btn-danger' : '' %} {% set wide_modifier = button.wide is defined and button.wide ? 'btn-block' : '' %} {% set spin = button.spin is defined and button.spin ? '' : 'btn-nospin' %} {% set button_classes = ['btn', 'btn-' ~ variant] %} {% if icon_only %} {% set button_classes = button_classes|merge([icon_only]) %} {% endif %} {% if danger_modifier %} {% set button_classes = button_classes|merge([danger_modifier]) %} {% endif %} {% if wide_modifier %} {% set button_classes = button_classes|merge([wide_modifier]) %} {% endif %} {% if spin %} {% set button_classes = button_classes|merge([spin]) %} {% endif %} {% set extra_classes = button.attributes.class is defined ? button.attributes.class|split(' ') : [] %} {% set button_classes = button_classes|merge(extra_classes) %} {% set custom_attributes = '' %} {% if button.attributes is defined %} {% for attribute, value in button.attributes %} {% if attribute != 'class' %} {% set custom_attributes = custom_attributes ~ ' ' ~ attribute ~ '="' ~ value|e('html_attr') ~ '"' %} {% endif %} {% endfor %} {% endif %} {# Add generated ID if not defined in attributes #} {% if button.attributes is not defined or button.attributes.id is not defined %} {% set label_split = button.label|split('.') %} {% set last_two = label_split|slice(-2, 2) %} {% set id = last_two|join('-')|replace({'_': '-'}) %} {% set custom_attributes = custom_attributes ~ ' id="' ~ id ~ '"' %} {% endif %} {% if button.size is defined %} {% set custom_attributes = custom_attributes ~ ' size="' ~ button.size ~ '"' %} {% endif %} {% if button.icon_only is defined and button.icon_only %} {% set tooltip_placement = button.tooltip_placement is defined ? button.tooltip_placement : 'top' %} {% set icon_attributes = ' data-toggle="tooltip" title="' ~ button.label|trans ~ '" data-placement="' ~ tooltip_placement ~ '"' %} {% else %} {% set icon_attributes = '' %} {% endif %} {% if button.href is defined %} {% if button.icon is defined %} {% endif %} {% if button.label is defined and not (button.icon_only is defined and button.icon_only) %} {{ button.label|trans }} {% endif %} {% else %} {% set button_type = button.attributes.type is defined ? button.attributes.type : (button.onclick is defined and button.onclick != '' ? 'button' : 'submit') %} {% endif %} {% endfor %}