{% macro query_designer_condition_builder(params) %} {% set segmentConditionOptions = { segmentChoice: { select2: { placeholder: 'oro.segment.condition_builder.choose_entity_segment'|trans, ajax: { url: 'oro_api_get_segment_items', quietMillis: 100, } }, fieldsLoaderSelector: '[data-ftid=' ~ params.entity_choice_id ~ 'oro_api_querydesigner_fields_entity]', currentSegment: params.currentSegmentId|default(null), pageLimit: params.page_limit|default(10) } } %} {% set conditionBuilderOptions = { criteriaListSelector: '#' ~ params.criteria_list_id, entityChoiceSelector: '[data-ftid=' ~ params.entity_choice_id ~ ']', onFieldsUpdate: { toggleCriteria: ['condition-item', 'condition-segment', 'conditions-group'] } } %} {% set conditionBuilderOptions = update_segment_condition_builder_options(conditionBuilderOptions) %}
{{ 'oro.query_designer.condition_builder.criteria.drag_hint'|trans }}
    {% placeholder segment_criteria_list with {params: params} %}
  • {{ 'oro.segment.condition_builder.criteria.segment_condition'|trans }}
  • {{ 'oro.query_designer.condition_builder.criteria.conditions_group'|trans }}
{% endmacro %} {% macro query_designer_segment_template(id) %} {% endmacro %} {# Renders run button for static segment if allowed @param Segment entity @param bool reloadRequired - is page reload required after run #} {% macro runButton(entity, reloadRequired = false) %} {% import 'OroUIBundle::macros.html.twig' as UI %} {% if entity.id and resource_granted('EDIT', entity) and entity.type.name == constant('Oro\\Bundle\\SegmentBundle\\Entity\\SegmentType::TYPE_STATIC') %} {{ UI.clientButton({ 'dataUrl': path('oro_api_post_segment_run', { 'id': entity.id }) , 'aCss': 'no-hash run-button btn', 'label' : 'oro.segment.action.refresh'|trans, 'iCss': 'icon-refresh', 'dataAttributes': { 'page-component-module': 'orosegment/js/app/components/refresh-button', 'page-component-options': {'reloadRequired': reloadRequired}|json_encode, } }) }} {% endif %} {% endmacro %} {# Renders save and refresh button @param Segment entity @deprecated Since 1.10, use macros saveActionButton in OroUIBUndle::macros.html.twig #} {% macro saveAndRefreshButton(entity) %} {% import 'OroUIBundle::macros.html.twig' as UI %} {% if entity.id and resource_granted('EDIT', entity) and entity.type.name == constant('Oro\\Bundle\\SegmentBundle\\Entity\\SegmentType::TYPE_STATIC') %} {{ UI.buttonType({'type': 'button', 'class': 'btn-success main-group', 'label': 'Save and refresh', 'action': 'save_and_refresh'}) }} {% endif %} {% endmacro %} {# Render JS code for report/segment init @param string type segment or report @param FormView form @param array entities @param array metadata #} {% macro initJsWidgets(type, form, entities, metadata, entityFieldsRouteParams = {}) %} {# Rendering templates #} {{ _self.query_designer_segment_template('segment-template') }} {# Rertrieving fields data(actually this code works for already saved entities that's going to edit)#} {% set fieldsData = {} %} {% if not form.entity.vars.value is empty %} {% set encodedEntityName = form.entity.vars.value|replace({'\\': '_'}) %} {% set routeParams = entityFieldsRouteParams|merge({'entityName': encodedEntityName}) %} {% set fieldsData = render(path('oro_api_querydesigner_fields_entity', routeParams)) %} {% endif %} {% set widgetOptions = { valueSource: '[data-ftid=' ~ type ~ '_form_definition]', fieldsLoader: { entityChoice: '[data-ftid=' ~ type ~ '_form_entity]', loadingMaskParent: '#' ~ form.vars.id, router: 'oro_api_querydesigner_fields_entity', routingParams: entityFieldsRouteParams, fieldsData: fieldsData, confirmMessage: type|replace('_', '.') ~ '.change_entity_confirmation', }, filters: { criteriaList: '#filter-criteria-list', conditionBuilder: '#' ~ type ~ '-condition-builder' }, column: { editor: { namePattern: '^' ~ type ~ '_form\\[column\\]\\[([\\w\\W]*)\\]$' }, form: '#' ~ type ~ '-column-form', itemContainer: '#' ~ type ~ '-column-list .item-container', itemTemplate: '#' ~ type ~ '-column-row' }, columnFieldChoiceOptions: {}, select2FieldChoiceTemplate: '#column-chain-template', select2SegmentChoiceTemplate: '#segment-template', entities: entities, metadata: metadata } %} {% if type == 'oro_report' %} {% set widgetOptions = widgetOptions|merge({ 'grouping': { editor: { mapping: { name: 'oro_report_form[grouping][columnNames]' } }, form: '#oro_report-grouping-form', itemContainer: '#oro_report-grouping-list .grouping-item-container', itemTemplate: '#oro_report-grouping-item-row' } }) %} {% else %} {% set widgetOptions = widgetOptions|merge({'columnFieldChoiceOptions': {exclude: ['relation_type']} }) %} {% endif %} {% set widgetOptions = update_segment_widget_options(widgetOptions, type) %}
{% endmacro %}