{% macro renderTransitionButton(workflow, transition, workflowItem, transitionData, onlyLink, noIcon, noIconText, aClass) %} {% import '@OroUI/macros.html.twig' as ui %} {% if transition.displayType == 'dialog' and transition.hasForm() %} {% if transitionData['dialog-url'] is not defined or not transitionData['dialog-url'] %} {% set transitionData = transitionData|merge({ 'dialog-url': path( 'oro_workflow_widget_transition_form', { workflowItemId: workflowItem.id, transitionName: transition.name } ) }) %} {% endif %} {% if transitionData['jsDialogWidget'] is not defined or not transitionData['jsDialogWidget'] %} {% set transitionData = transitionData|merge({ 'jsDialogWidget': constant('Oro\\Bundle\\WorkflowBundle\\Button\\AbstractTransitionButton::TRANSITION_JS_DIALOG_WIDGET') }) %} {% endif %} {% endif %} {% if transitionData['transition-url'] is not defined or not transitionData['transition-url'] %} {% set transitionData = transitionData|merge({'transition-url': path( 'oro_api_workflow_transit', { workflowItemId: workflowItem.id, transitionName: transition.name } ) }) %} {% endif %} {% if transitionData['transition-condition-messages'] is defined %} {% set conditionMessages = [] %} {% for error in transitionData['transition-condition-messages'] %} {% set conditionMessages = conditionMessages|merge(['
  • ' ~ error.message|trans(error.parameters) ~ '
  • ']) %} {% endfor %} {% if conditionMessages|length %} {% set transitionData = transitionData|merge({ 'transition-condition-messages': '
      ' ~ conditionMessages|join ~ '
    ' }) %} {% else %} {% set transitionData = transitionData|merge({ 'transition-condition-messages': '' }) %} {% endif %} {% endif %} {% set data = transitionData|merge({ 'page-component-module': transitionData['page-component-module']|default('oroworkflow/js/app/components/button-component'), 'page-component-options': transitionData['page-component-options']|default({})|merge({'displayType': transition.displayType})|json_encode, }) %} {% if transition.frontendOptions is defined and transition.frontendOptions.dialog is defined %} {% set data = data|merge({ 'dialog-options': transition.frontendOptions.dialog|json_encode|raw }) %} {% endif %} {% set label = transition.buttonLabel|trans({},'workflows') %} {% set title = transition.buttonTitle|trans({},'workflows') %} {% if transition.frontendOptions.message is defined and transition.frontendOptions.message.content is defined %} {% set frontendMessage = transition.frontendOptions.message %} {% set transitionMessage = frontendMessage.content|trans(frontendMessage.message_parameters, 'workflows') %} {% if transitionMessage and transitionMessage != frontendMessage.content %} {# if no translation for message then do not show message #} {% set message = frontendMessage|merge({ content: transitionMessage|nl2br, title: frontendMessage.title|default(title), }) %} {% endif %} {% endif %} {% set data = data|merge({ message: (message|default({}))|json_encode, 'transition-label': label }) %} {% set class %} {{ aClass }} icons-holder-text {% if not onlyLink|default(false) %}btn btn-sm workflow-transition-buttons{% endif %} {% if transition.displayType == 'dialog' %}no-hash{% endif %} {% if not transitionData.enabled %}disabled{% endif %} {{ transition.frontendOptions.class|default('') }} {% endset %} {% set iCss = noIcon|default(false) ? false : transition.frontendOptions.icon|default('') %} {# Transaltions temporary disabled due to BAP-5355 #} {{ ui.link({ 'path': '#', 'id': 'transition-%s-%s-%s'|format(workflow.name, transition.name, random()), 'iCss': iCss, 'title': title, 'role': 'button', 'class': class, 'data': data, 'label': label, 'role': 'button', 'noIconText': noIconText|default(true), }) }} {% endmacro %} {% macro renderGoToTranslationsIconByLink(link, large) %} {% endmacro %}